Skip to content

Commit a3e1e11

Browse files
committed
Ensure necessary cookies are present in OWA 2010 login response
1 parent 9c028c1 commit a3e1e11

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

modules/auxiliary/scanner/http/owa_login.rb

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -215,12 +215,21 @@ def try_user_pass(opts)
215215
else
216216
# The authentication info is in the cookies on this response
217217
cookies = res.get_cookies
218-
sessionid_value = cookies.split('sessionid=')[1]
219-
sessionid_value = sessionid_value.to_s.split('; ')[0]
220-
sessionid_header = "sessionid=#{sessionid_value}"
221-
cadata_value = cookies.split('cadata=')[1]
222-
cadata_value = cadata_value.to_s.split('; ')[0]
223-
cadata_header = "cadata=#{cadata_value}"
218+
cookie_header = 'PBack=0'
219+
%w(sessionid cadata).each do |necessary_cookie|
220+
if cookies =~ /#{necessary_cookie}=([^;]+)/
221+
cookie_header << "; #{Regexp.last_match(1)}"
222+
else
223+
print_error("#{msg} Missing #{necessary_cookie} cookie. This is not OWA 2010")
224+
return :abort
225+
end
226+
end
227+
sessionid_value = cookies.split('sessionid=')[1]
228+
sessionid_value = sessionid_value.to_s.split('; ')[0]
229+
sessionid_header = "sessionid=#{sessionid_value}"
230+
cadata_value = cookies.split('cadata=')[1]
231+
cadata_value = cadata_value.to_s.split('; ')[0]
232+
cadata_header = "cadata=#{cadata_value}"
224233
headers['Cookie'] = 'PBack=0; ' << sessionid_header << '; ' << cadata_header
225234
end
226235

0 commit comments

Comments
 (0)