Mac下的傲游(Maxthon)其实是一个safari内核的浏览器,不过似乎阉割了太多功能,留下来的功能不多。
### 特权域XSS
首先XSS是由『智能填表』引入的。
如下POC,用户提交并点击保存为密码以后,即触发xss。
这个XSS在特权域maxthon://settings/下,所以拥有很多特权,这个后面说。
### 构造Exploit
首先要构造一个可以引入外部js文件的Xss Payload。
经过测试发现,有如下几个问题:
1.我们使用的payload中不能包含"、'、\等字符,这些字符会被转换成url编码。所以我将外部js地址放在html属性name中,然后用this.name来获取.
2.经测试不能直接插入script标签。所以我在自带的js文件中找到一个$.ajax方法,此方法可以加载jsonp,正好用来载入外部js
最后构造payload如下:
另外,这个XSS需要在设置页面下触发,所以需要自动化提转到设置页面。
可以用如下代码跳转到maxthon://域下:
跳转过去以后即可触发XSS。
所以最终完整Exploit见 http://mhz.pw/game/maxthon/log.php
表单自动提交。用户点击『保存』以后,过一会就会跳转到maxthon://setting/并触发特权域XSS。总过程用户只用点击一次。
### 特权域API
有了特权域的XSS,就可以特权域特权域API来做一些事了。http://mhz.pw/game/maxthon/maxthon.js中写入如下代码即可。
##### 后台打开URL:
##### 跨域读取信息:
##### 获取所有保存的密码
##### 获取/设置下载目录 + 任意文件写入