若依 RuoYi 4.6.0 ancestors SQL注入漏洞(CVE-2023-49371)代码审计

💡 原文中文,约7600字,阅读约需18分钟。
📝

内容提要

若依 RuoYi 4.6.0 及之前版本存在 SQL 注入漏洞,攻击者可利用未过滤的 ancestors 参数进行恶意 SQL 攻击,导致数据库信息泄露和权限提升。建议及时更新系统以修复该漏洞。

🎯

关键要点

  • 若依 RuoYi 4.6.0 及之前版本存在 SQL 注入漏洞。
  • 攻击者可利用未过滤的 ancestors 参数进行恶意 SQL 攻击。
  • 漏洞可能导致数据库信息泄露和权限提升。
  • 建议用户及时更新系统以修复该漏洞。
  • 漏洞影响版本为 v4.6.0 之前。
  • 漏洞描述中提到,ancestors 参数未对用户输入进行严格过滤。
  • 攻击者可以构造恶意 SQL 语句,导致数据篡改或服务端权限提升。
  • 环境搭建需要 JDK、Mysql 和 Maven 的特定版本。
  • SQL 注入原理分析显示,使用了未预编译的 SQL 语句。
  • 在代码审计中发现,多个参数未进行有效性检查和安全过滤。
  • 通过访问特定路由并构造 payload 可以实现 SQL 注入。
  • 提供了正确的注入方式和手动构造的 POC 示例。
  • 提到使用 sqlmap 进行验证时可能遇到的问题。
  • 参考资料提供了多个链接以供进一步阅读和研究。

延伸问答

若依 RuoYi 4.6.0 的 SQL 注入漏洞是如何产生的?

该漏洞产生是因为在 /system/dept/edit 接口中,ancestors 参数未对用户输入进行严格过滤,攻击者可以利用这一点构造恶意 SQL 语句。

这个 SQL 注入漏洞可能导致什么后果?

漏洞可能导致数据库信息泄露、数据篡改或服务端权限提升。

如何修复若依 RuoYi 4.6.0 的 SQL 注入漏洞?

建议用户及时更新系统到最新版本,以修复该漏洞。

在代码审计中发现了哪些安全问题?

代码审计中发现多个参数未进行有效性检查和安全过滤,特别是使用了未预编译的 SQL 语句。

如何验证这个 SQL 注入漏洞?

可以通过访问特定路由并构造 payload 来实现 SQL 注入,或者使用 sqlmap 工具进行验证。

若依 RuoYi 4.6.0 的漏洞影响哪些版本?

漏洞影响版本为 RuoYi 4.6.0 及之前的所有版本。

➡️

继续阅读