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对象的序列化/反序列化

image-20250628204557892

image-20250628205651338

image-20250628205706565

image-20250628205720116

image-20250628205855793

image-20250628210049847

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

image-20250628210102796

XMLDecoder

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

image-20250628210639826

image-20250628210743159

ObjectInputStream.readObject

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

image-20250628210809484

image-20250628210925953

image-20250628210939378

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

image-20250628211001101

Yakit

image-20250628211050360

image-20250628211240627

image-20250628211316710

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

image-20250628211628736

SerializedPayloadGenerator

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

image-20250628211717223

image-20250628211731107

image-20250628211753644

image-20250628211802623

image-20250628211813523

image-20250628220336492

image-20250628220348105

image-20250628220355493

image-20250628220405687

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

image-20250628220448304

image-20250628220459375

image-20250628221655744

1、黑盒发现(人工识别,BP插件)

人工识别

1、网站图片文件是一个绿色的树叶。2、特有的报错信息。3、Whitelabel Error Page关键字

image-20250630000710372

image-20250630000728969

BP插件

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

  • image-20250630155232042
  • 安装好插件后啥都不用管,让数据包经过BP即可触发插件被动扫描
    • image-20250630214311260

2、白盒发现(pom.xml,引用库)

  1. 看引用库里面是否有应用springframeworkspring-boot-starter-actuator模块
1
2
3
4
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
  1. 配置文件Actuator设置全部暴露

    • 全局搜索actuator模块应用库
    • image-20250630214721425
  2. 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

      * ![image-20250630214821052](/img/image-20250630214821052.png)

      ### 3、泄漏安全(内部路由泄露)

      https://github.com/AabyssZG/SpringBoot-Scan

      ![image-20250628230402349](/img/image-20250628230402349.png)

      ![image-20250628230449830](/img/image-20250628230449830.png)



      1. 在env下面泄露了一些关键信息 数据库账户密码什么

      * ![image-20250628230556117](/img/image-20250628230556117.png)
      2. 如果需要详细查看需要进行下载我们需要访问`/heapdump`对文件进行下载

      * ![image-20250628230749996](/img/image-20250628230749996.png)

      3. 将下载后的文件放在工具目录下面

      * #### heapdump敏感信息查询工具(配置密码,AK/SK等)

      * https://github.com/whwlsfb/JDumpSpider(该工具不支持自定义关键字)

      * ![image-20250628231420176](/img/image-20250628231420176.png)

      * ![image-20250628231726901](/img/image-20250628231726901.png)

      * ![image-20250628231919337](/img/image-20250628231919337.png)

      4. 第一个工具不支持自定义关键字,并且有的信息提取不到 这里推荐另外一个工具

      * https://github.com/wyzxxz/heapdump_tool(支持关键字搜索)
      * ![image-20250629002112683](/img/image-20250629002112683.png)





      ### 4、漏洞安全(利用类,CVE漏洞等)

      #### 一、针对于框架CVE漏洞

      https://github.com/AabyssZG/SpringBoot-Scan

      1. 检测不出来是因为该工具不支持这个漏洞检测
      2. 这个工具主要检测微服务的内容

      * ![image-20250629002342003](/img/image-20250629002342003.png)
      * ![image-20250629194327837](/img/image-20250629194327837.png)
      * ![image-20250629194715836](/img/image-20250629194715836.png)



      #### 二、利用类漏洞来进行RCE攻击

      https://github.com/0x727/SpringBootExploit

      1. 这个工具利用Springboot上面的泄露有没有可以利用的类
      2. 然后使用这款工具来进行针对性的利用
      * ![image-20250629115931209](/img/image-20250629115931209.png)
      * ![image-20250629120617158](/img/image-20250629120617158.png)

      3. 服务器上执行`JNDIExploit`工具(可以本地、也可以远程VPS上运行)
      * ![image-20250629121216636](/img/image-20250629121216636.png)
      * ![image-20250629194050919](/img/image-20250629194050919.png)
      * ![image-20250629194125600](/img/image-20250629194125600.png)
      * ![image-20250629194139309](/img/image-20250629194139309.png)



      ### 5、CMS源码审计

      #### 一、安装源码

      1. 打开项目先找到配置文件按照图片里面的路径修改为你当前数据库数据库用户名和密码
      * ![image-20250630220046447](/img/image-20250630220046447.png)
      2. 打开小皮启动数据库 在数据库管理工具页面创建新的数据库`rbac`导入文件里面自带的数据库`rbac.sql`
      * ![image-20250630220429114](/img/image-20250630220429114.png)

      3. 在idea里面的右边`Maven`这里进行`clean`和`install`重新启动
      * ![image-20250630220637097](/img/image-20250630220637097.png)
      4. 重新加载成功后启动环境来到站点 用户名`admin`密码`123456`
      * ![image-20250630221948251](/img/image-20250630221948251.png)
      * ![image-20250630222830241](/img/image-20250630222830241.png)

      #### 二、源码审计

      1. 从pom.xml看有没有调用Actuator库
      * ![image-20250630222922103](/img/image-20250630222922103.png)

      2. 配置文件中Actuator设置是否为*(全部暴露)

      * ```
      management.endpoints.web.exposure.include=*
    • image-20250630223413155

  3. 利用用具看看有没有存在的rce漏洞,没有只能从泄露安全headdump下手

    • image-20250630223757221
  4. bp插件查看铭感信息

    • image-20250630224018372
  5. 使用JDumpSpider敏感信息查询工具heapdump对提取敏感信息提取

    • image-20250630224104001
    • image-20250630224403520