068-WEB攻防-Java安全&原生反序列化&SpringBoot攻防&heapdump提取&CVE
068-WEB攻防-Java安全&原生反序列化&SpringBoot攻防&heapdump提取&CVE
知识点:
1、Java安全-原生反序列化-3大类接口函数&利用
2、Java安全-SpringBoot攻防-泄漏安全&CVE安全
一、演示案例-Java安全-反序列化-原生序列化类函数
1、前言
序列化是将Java对象转换成字节流的过程。而反序列化是将字节流转换成Java对象的过程,java序列化的数据一般会以标记(ac ed 00 05)开头,base64编码的特征为rO0AB。
JAVA常见的序列化和反序列化的方法有JAVA 原生序列化和JSON 类(fastjson、jackson)序列化两种方式。两种方式做的事情都是一样的,为什么要区分开来?
因为利用起来有所不同
fastjson、jackson等反序列化就用网上给的EXP、POC去测试
java原生类反序列化就会用到专门工具(ysoserial)去生成payload去测试
黑盒发现(流量捕获到特征ac ed 00 05、rO0AB)
白盒发现(特征类接口函数)
2、原生序列化类函数
SnakeYaml
完整的YAML1.1规范Processor,支持Java对象的序列化/反序列化






需要注意下jndi注入版本问题

XMLDecoder
xml语言格式序列化类函数接口


ObjectInputStream.readObject
任何类如果想要序列化必须实现java.io.Serializable接口



该项目有个好处就是能看到一些利用链对应的具体版本

Yakit



假如不知道对方能用什么利用链生成payload,可以利用万能利用链(URLDNS)进行POC测试

SerializedPayloadGenerator
该工具项目搭建地址参考:https://blog.csdn.net/m0_60571842/article/details/134454939









3、利用项目
Yakit
https://yaklang.com/ //集成了ysoserial工具,图形化生成,推荐使用
ysoserial
https://github.com/frohoff/ysoserial //命令生成工具,不推荐使用
SerializedPayloadGenerator
https://github.com/NotSoSecure/SerializedPayloadGenerator //集成了ysoserial工具,网页图形化,推荐使用
二、演示案例-Java安全-SpringBoot框架-泄漏&CVE
SpringBoot Actuator模块提供了生产级别的功能,比如健康检查,审计,指标收集,HTTP跟踪等,帮助我们监控和管理Spring Boot应用。
0、检测清单
https://github.com/LandGrey/SpringBootVulExploit



1、黑盒发现(人工识别,BP插件)
人工识别
1、网站图片文件是一个绿色的树叶。2、特有的报错信息。3、Whitelabel Error Page关键字


BP插件
https://github.com/API-Security/APIKit
打开BurpSuite页面,点击Extender然后选择Extensions,添加APIKit.jar

- 安装好插件后啥都不用管,让数据包经过BP即可触发插件被动扫描
2、白盒发现(pom.xml,引用库)
- 看引用库里面是否有应用
springframework和spring-boot-starter-actuator模块
1 | <dependency> |
配置文件Actuator设置全部暴露
- 全局搜索
actuator模块应用库 
- 全局搜索
Actouator设置全部暴露management.endpoints.web.exposure.include=* 的作用是 暴露所有的 Spring Boot Actuator 端点,使得你可以通过 HTTP 请求访问所有内置的监控和管理端点。如果没有特别需求,通常建议限制暴露的端点,以提高安全性。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
* 
### 3、泄漏安全(内部路由泄露)
https://github.com/AabyssZG/SpringBoot-Scan


1. 在env下面泄露了一些关键信息 数据库账户密码什么
* 
2. 如果需要详细查看需要进行下载我们需要访问`/heapdump`对文件进行下载
* 
3. 将下载后的文件放在工具目录下面
* #### heapdump敏感信息查询工具(配置密码,AK/SK等)
* https://github.com/whwlsfb/JDumpSpider(该工具不支持自定义关键字)
* 
* 
* 
4. 第一个工具不支持自定义关键字,并且有的信息提取不到 这里推荐另外一个工具
* https://github.com/wyzxxz/heapdump_tool(支持关键字搜索)
* 
### 4、漏洞安全(利用类,CVE漏洞等)
#### 一、针对于框架CVE漏洞
https://github.com/AabyssZG/SpringBoot-Scan
1. 检测不出来是因为该工具不支持这个漏洞检测
2. 这个工具主要检测微服务的内容
* 
* 
* 
#### 二、利用类漏洞来进行RCE攻击
https://github.com/0x727/SpringBootExploit
1. 这个工具利用Springboot上面的泄露有没有可以利用的类
2. 然后使用这款工具来进行针对性的利用
* 
* 
3. 服务器上执行`JNDIExploit`工具(可以本地、也可以远程VPS上运行)
* 
* 
* 
* 
### 5、CMS源码审计
#### 一、安装源码
1. 打开项目先找到配置文件按照图片里面的路径修改为你当前数据库数据库用户名和密码
* 
2. 打开小皮启动数据库 在数据库管理工具页面创建新的数据库`rbac`导入文件里面自带的数据库`rbac.sql`
* 
3. 在idea里面的右边`Maven`这里进行`clean`和`install`重新启动
* 
4. 重新加载成功后启动环境来到站点 用户名`admin`密码`123456`
* 
* 
#### 二、源码审计
1. 从pom.xml看有没有调用Actuator库
* 
2. 配置文件中Actuator设置是否为*(全部暴露)
* ```
management.endpoints.web.exposure.include=*
利用用具看看有没有存在的rce漏洞,没有只能从泄露安全headdump下手
bp插件查看铭感信息
使用JDumpSpider敏感信息查询工具heapdump对提取敏感信息提取











