2024年3月,若依某小型企业官网的后台后台突然多出三个管理员账号。运维人员查日志发现,管理入侵者从登录到提权只用了不到两分钟。框架攻击入口不是漏洞别处,正是若依他们半年前部署的若依(RuoYi)后台管理框架——一个当时最新版仍存在的SQL注入点。
若依在国内中小型项目里太常见了。后台开源、管理上手快、框架功能全,漏洞权限管理、若依代码生成、后台定时任务一应俱全。管理很多外包团队拿它当脚手架,框架改改菜单就交付。漏洞问题恰恰出在这:用的人多,审计的人少。2023年到2024年,CNVD和各大漏洞平台收录的若依相关漏洞超过二十个,涵盖SQL注入、任意文件读取、模板注入、Shiro反序列化等多个类型。其中影响面最大的当属定时任务模块的SQL注入,攻击者无需登录即可通过/monitor/job相关接口拼接恶意参数,直接操作数据库。
我翻过几个版本的源码。漏洞成因不复杂——部分接口对params参数过滤不严,MyBatis的${ }拼接直接带入SQL。开发人员图方便,把用户可控数据塞进了排序字段或条件查询里。这种写法在若依的代码生成器模板中也有体现,意味着用它生成的业务代码可能继承同样的风险。一个框架的漏洞会顺着脚手架蔓延到成百上千个衍生系统里,这才是真正棘手的地方。
Shiro反序列化那波更典型。若依默认使用Shiro做认证,硬编码的AES密钥写在配置文件里。攻击者构造rememberMe字段的恶意序列化数据,就能触发远程命令执行。2023年底曝出的那个绕过补丁的新利用链,让不少以为“升级过就没事”的运维又忙活了一阵。我见过一个案例,某政务系统的若依后台被打穿后,攻击者没急着提权,而是先留了个定时任务——每十分钟检测一次是否被清除,顽固得很。
官方修复速度不算慢。漏洞披露后通常几天内就发新版本,但实际落地情况堪忧。大量项目停留在旧版本,有些是因为改过源码不敢升级,有些纯粹是没人管。更麻烦的是,很多部署在公网的若依后台连默认口令都没改,admin/admin123直接能进。这跟框架本身关系不大了,但暴露面叠加漏洞,后果就是批量沦陷。
说点实用的。如果你正在用若依,先确认版本号,低于4.7.8的赶紧升。升不了的去GitHub翻对应的补丁commit,手动打上。检查application.yml里的Shiro密钥,换成随机值。定时任务模块的接口加白名单或直接禁用外网访问。数据库账号别用root,最小权限原则老生常谈但真能兜底。最后,别把后台管理界面直接暴露在公网,套一层VPN或IP白名单花不了多少时间。
开源框架的漏洞从来不只是技术问题。若依的代码质量在同类项目里算中上,但“够用就行”的心态让很多人跳过了安全配置这一步。攻击者不关心你的业务逻辑多精妙,他们只找最矮的那块板。后台框架恰恰是整面墙上最容易被忽略的缺口。