Skip to content

Commit a060fec

Browse files
committed
Detect version in check()
1 parent 554935e commit a060fec

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

modules/exploits/multi/http/cups_bash_env_exec.rb

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -83,19 +83,21 @@ def check
8383
if !res
8484
vprint_error("#{peer} - No response from host")
8585
return Exploit::CheckCode::Unknown
86-
elsif res.body =~ /Set Default Options for #{printer_name}/
86+
elsif res.headers['Server'] =~ /CUPS\/([\d\.]+)/
87+
vprint_status("#{peer} - Found CUPS version #{$1}")
88+
else
89+
print_status("#{peer} - Target is not a CUPS web server")
90+
return Exploit::CheckCode::Safe
91+
end
92+
if res.body =~ /Set Default Options for #{printer_name}/
8793
vprint_good("#{peer} - Added printer successfully")
8894
delete_printer(printer_name)
89-
return Exploit::CheckCode::Detected
9095
elsif res.code == 401 || (res.code == 426 && datastore['SSL'] == true)
9196
vprint_error("#{peer} - Authentication failed")
92-
return Exploit::CheckCode::Detected
9397
elsif res.code == 426
9498
vprint_error("#{peer} - SSL required - set SSL true")
95-
return Exploit::CheckCode::Detected
96-
else
97-
return Exploit::CheckCode::Safe
9899
end
100+
Exploit::CheckCode::Detected
99101
end
100102

101103
#

0 commit comments

Comments
 (0)