1 漏洞简介
在测试过程中遇到了,Response返回js代码中存在eval()函数,记录一下利用过程。
2 漏洞发现
测试某个网站时,无意发现该返回包JavaScript中存在eval函数
追踪一下是从哪个功能调用的
漏洞在导出功能,导出时会从params传入参数,通过JavaScript拼接执行代码,来进行下一个请求。
所以,应该是一个客户端的JavaScript的代码执行,利用流程应该如下:
-
向服务端发送恶意Java Script代码 -
服务端处理Java Script代码,返回至客户端 -
客户端执行Java Script代码,造成影响
3 漏洞利用
3.1 执行js代码
执行简单js代码,poc要URL编码一次,否则Burp会报错。
"x=100;y=200;alert(x*y)"
3.2 读取客户端文件
只有IE浏览器可以读,Chrome及其他浏览器出于安全性考虑,不支持直接读取,只能通过标签选择文件然后再读取。
var fso=new ActiveXObject("Scripting.FileSystemObject");var ts=fso.OpenTextFile("c:\windows\win.ini", 1);alert(ts.ReadLine());
IE控制台执行payload,应该会报错Automation 服务器不能创建对象
需要开启Automation 对象的引用
IE浏览器 - 设置 - Internet选项 - 安全 - 自定义级别
启用后,重新执行payload,读取出客户端文件
如果被攻击者利用,可能会组合钓鱼攻击,对漏洞URL进行短网址生成,获取用户电脑敏感文件信息等;
对此漏洞理解较浅,本文仅抛砖引玉
参考资料
更多文档: https://blog.csdn.net/Aurora_1970s/article/details/119903232
原文始发于微信公众号(薛定谔的安全):渗透中的JavaScript_eval函数
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论