若依代码审计分析

admin 2025年5月20日03:35:16评论2 views字数 732阅读2分26秒阅读模式
环境:ruoyi 4.6  该版本漏洞还是不是少的 挑几个举例子把
若依代码审计分析
在 MyBatis框架中里${} 是未采用预编译形式的会把 ${} 占位符直接替换成参数值根据自写脚本得存在几处sql注入漏洞。以下可以看到${ancestors} 会直接替换为传入的参数值,若参数可控、无过滤的情况下存在SQL注入漏洞。分别是数据访问层-服务层-控制器 
若依代码审计分析
继续跟进
若依代码审计分析
若依代码审计分析
若依代码审计分析
此控制器方法最终会调用 deptService.updateDept(dept) 方法,该方法可能会调用 MyBatis XML 文件中的 updateDeptStatus 方法  
漏洞验证:
若依代码审计分析
第二处sql注入
若依代码审计分析
寻找路由方法以上同理我们这边直接到控制器
若依代码审计分析
SysRoleController 类的 list 方法所对应的 selectRoleList 接口(com.ruoyi.system.mapper.SysRoleMapper 中的 selectRoleList 方法)存在 SQL 注入风险
漏洞验证:
/system/role/list
/system/role/export  都有注入
若依代码审计分析
Thymeleaf模板注入
若依代码审计分析
该版本号存在漏洞 通过正则return.*?".*?来搜索 在Controller层,我们关注两点: 1、URL路径可控。 , 2、return内容可控
在代码的返回语句 return prefix + "/localrefresh::" + fragment; 中,fragment 是一个由用户输入的参数。若这个返回值被用作模板路径、模板名称或者直接嵌入到模板渲染的逻辑里,而又没有对 fragment 进行严格的验证和过滤,攻击者就可能构造特殊的输入,使得模板引擎执行恶意代码
漏洞验证:
若依代码审计分析

原文始发于微信公众号(韭要学JAVA安全):若依代码审计分析

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年5月20日03:35:16
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   若依代码审计分析http://cn-sec.com/archives/4024848.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息