文章总结: 文章讲述了一次渗透测试中发现的Java反序列化漏洞。作者在文件上传功能中发现返回的filedId实际上是Base64编码的Java序列化对象,通过分析确认这是一个安全漏洞。作者使用Java-chains工具测试并成功利用该漏洞获取服务器权限。文章提供了识别Java序列化数据的特征(以rO0AB开头),建议将此特征存入指纹库以便未来检测类似漏洞。 综合评分: 94 文章分类: 渗透测试,漏洞分析,WEB安全,实战经验,漏洞POC
测试Java利用链
接下来做进一步的判断,请出我们的神器Java-chains。 项目地址:https://github.com/vulhub/java-chains 之前写过的文章:java-chains Java Payload 生成与漏洞利用 Web 平台
选择反序列化炸弹,点击生成,将生成的payload复制到请求中
从开发的角度思考
老实说,这是我第一次在文件下载的地方碰到Java反序列化漏洞。 开发可能是为了图方便,可以readObject直接获取类,从中拿到文件名,再构造读取。
但是,我比较好奇,json传递此格式,不管是Jackson还是Fastjson都能做到,为什么要自己造轮子实现这个功能呢?
总结
rO0ABX
Java 序列化对象的二进制数据经过 Base64 编码后,通常以 rO0AB 开头。
这表明它可能是一个 Java Serializable 对象的序列化结果
我们可以把这个特征存入指纹库中,以后匹配到了,可以怀疑存在Java反序列化漏洞。
查看原文:《从失败的文件上传到反序列化getshell》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论