Ywc's blog

Java代码审计

Word count: 1.1k / Reading time: 4 min
2020/01/03 Share

总结

个人代码审计流程:

1
2
3
4
5
6
7
查看访问控制部分
查看三方组件是否有已知风险
查看一些组件配置,如JWT、Shiro密钥等
查看数据库查询是否存在注入
查看文件IO操作
一些其他敏感操作,如命令执行、反射等
查看重要逻辑,如密码重置

反序列化命令执行漏洞挖掘方法:

1、针对一个Java应用,需要找到一个接受外部输入的序列化对象的接收点,即反序列化漏洞的触发点,可以通过审计源码中对反序列化函数的调用(例如readObject())来寻找,也可以直接通过对应用交互流量进行抓包,查看流量中是否包含Java序列化数据来判断,java序列化数据的特征为以标记ac ed 00 05开头。
2、确定了反序列化输入点后,再考察应用的Class Path中是否包含Apache Commons Collections库(ysoserial所支持的其他库亦可),如果是,就可以使用ysoserial来生成反序列化的payload,指定库名和想要执行的命令。
3、通过先前找到的传入对象方式进行对象注入,数据中载入payload,触发受影响应用中ObjectInputStream的反序列化操作,随后通过反射调用Runtime.getRunTime.exec即可完成利用。

前言

整理一些文章,方便学习。

Know it then do it.


来自豪哥的语录:

作为一个学习java sec的人

要熟读文章: https://xz.aliyun.com/t/7107

熟读源码:http://note.youdao.com/noteshare?id=134e909f364d738c3b4a4d3b826cb5ec

Github项目

Java Web常见漏洞和安全代码 包含了在线演示demo
learnjavabug 豪哥的项目

代码审计系列

先知社区:代码审计手书
Sec-wiki Java Web安全系列
凌天实验室的代码审计系列
java安全的一些总结,主要是安全审计相关

FastJson

l1nk3r师傅的FastJson反序列化学习
Fastjson =< 1.2.51 反序列化漏洞实战复测
Fastjson 1.2.47 RCE漏洞复现
FastJson<=1.2.47 漏洞复现

Fastjson漏洞复现含视频

反序列化

Java反序列化漏洞学习实践一:从Serializbale接口开始,先弹个计算器
先知java反序列化集合
Java_JSON反序列化之殇_看雪安全开发者峰会
从反射链的构造看Java反序列漏洞
Java反序列化漏洞从理解到实践
Java 序列化与反序列化安全分析
如何攻击Java反序列化过程
深入理解JAVA反序列化漏洞
jackson反序列化详细分析
Java安全之反序列化漏洞分析
fastjson 反序列化漏洞 POC 分析
Apache Commons Collections反序列化漏洞学习
bit4师傅的从0开始学习反序列化

Java反序列化备忘录
Java反序列化漏洞从入门到深入

安全编码合集

JAVA安全编码与代码审计
java-sec-code

漏洞分析

apache基金会

Adobe ColdFusion反序列化RCE漏洞分析(CVE-2019-7091)
Apache Solr RCE—【CVE-2019-0192】
Apache JMeter rmi 反序列化—【CVE-2018-1297】
Apache Solr XXE漏洞分析 -【CVE-2018-8026 】
Apache Tomcat安全绕过漏洞(CVE-2018-1305)
CVE-2017-12623 Apache NiFi xxe
Apache ActiveMQ Artemis 反序列化—【CVE-2016-4978】
Apache Fineract SQL Inject—【CVE-2017-5663】
Apache FOP-XXE—【CVE-2017-5661】
Apache Batik XXE—【CVE-2017-5662】
Apache Struts2 Freemarker标签远程执行漏洞分析和复现(S2-053)
Apache Synapse远程命令执行漏洞分析—【CVE-2017-15708】
Apache Tika 任意代码执行详细分析Poc—【CVE-2016-6809】

jenkins

jenkins 无限制 rce 分析
Jenkins RCE分析(CVE-2018-1000861分析)
Hacking Jenkins Part 1 - Play with Dynamic Routing
Hacking Jenkins Part 2 - Abusing Meta Programming for Unauthenticated RCE!

Spring Boot Actuator

Exploiting Spring Boot Actuators
Attack Spring Boot Actuator via jolokia Part 1
Attack Spring Boot Actuator via jolokia Part 2

Nexus Repository Manager 3

Nexus Repository Manager 3 远程代码执行漏洞 (CVE-2019-7238) 分析及利用

其他

关于JNDI注入
层层放大java审计的攻击面
以Java的视角来聊聊SQL注入
站在Java的视角,深度分析防不胜防的小偷——“XSS”
你的 Java web 配置安全吗
spring任意文件读取
在 Runtime.getRuntime().exec(String cmd) 中执行任意shell命令的几种方法
ysoserial 分析系列
sec-news集合
sec-wiki集合
先知文章集合

CATALOG
  1. 1. 总结
  2. 2. 前言
  3. 3. Github项目
  4. 4. 代码审计系列
  5. 5. FastJson
  6. 6. 反序列化
  7. 7. 安全编码合集
  8. 8. 漏洞分析
  9. 9. 其他