【声明】个人的快速查询手册,经验整理,仅供参考。
【内容】本手册主要关注于Java漏洞挖掘而非利用,漏洞利用在WEB 安全手册有总结。复现案例分析也是关注漏洞原理,通过调试分析加强对漏洞产生模式理解,辅助漏洞挖掘。
Idea,VSCode
Evaluate Expression
持续更新java反编译工具,越来越好用
如果我们不用import就能获取一个类,那这就是反射了
使用代理对象来代替对真实对象的访问,可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能
- 代理模式
- JNDI
- JavaBean
-
- JavaBean 是一种遵循特定规范(如具有无参构造方法、可序列化、提供 getter 和 setter 方法)的 Java 类,通常用于封装数据和在不同组件间传递信息。
- 工厂方法(Factory)
-
- 工厂模式是一种设计模式,提供了一种创建对象的方式,而无需指定要创建的具体类。
- Reference类
-
- Java中的Reference类是用于在垃圾回收机制中提供对对象的引用控制,它允许开发者通过软引用、弱引用、虚引用等方式管理对象的生命周期。
-
- JNDI注入中使用Reference类构造是因为它可以将恶意对象包装成对JNDI的引用,使得在JNDI查找时,恶意对象的类加载器被触发,从而实现远程代码执行或其他攻击。
高版本JDK对JNDI远程调用进行了限制
Java表达式语言包括:EL,SPEL,OGNL,MVEL,JBoss EL...
- URL解析的不一致性
- 前后端的不一致性
经典系列漏洞F5 BIG-IP设备认证绕过
-
- F5 BIG-IP认证绕过(CVE-2020-5902)
-
- F5 BIG-IP认证绕过(CVE-2021-22986)
-
- F5 BIG-IP认证绕过(CVE-2022-1388)
-
- F5 BIG-IP认证绕过(CVE-2023-46747)
- fastjson
- shiro
-
- Apache Shiro rememberMe反序列化漏洞分析(Shiro-550)
-
- Apache Shiro Padding Oracle Attack漏洞分析(Shiro-721)
- log4j
- struts2
-
- Struts2远程代码执行(S2-016)
-
- Struts2远程代码执行(S2-045)
- Spring
需要源码,对闭源jar不友好
自动挖掘反序列化链
threedr3am的改版增加了一些功能参数
Tai-e静态分析框架,南京大学软件分析配套框架,有完整的教学和实验文档,很适合从头学习
针对android java漏洞挖掘工具
TABBY使用静态分析框架 Soot 作为语义提取工具,将JAR/WAR/CLASS文件转化为代码属性图。 并使用 Neo4j 图数据库来存储生成的代码属性图CPG。