CVE-2021-47720Orangescrum 1.8.0存在一处严重的安全漏洞,为经过认证的SQL注入问题。该漏洞允许已授权的低权限用户通过多个HTTP请求参数向后台数据库注入恶意SQL代码。受影响的参数包括old_project_id、project_id、uuid和uniqid等。攻击者利用此漏洞可实现未授权的数据库数据读取、提取敏感信息,甚至在特定条件下修改或删除数据库内容。由于该漏洞需要认证才能利用,攻击者需先获取有效的用户账户凭证,但即使拥有最低权限的账户也能成功触发漏洞。此漏洞存在于Orangescrum的项目管理功能模块中,攻击者可构造特定的SQL payload通过这些参数传递到数据库查询语句中,从而绕过原有的查询逻辑。
该SQL注入漏洞存在于Orangescrum 1.8.0的多个API端点和Web功能模块中。漏洞根源在于应用程序未对用户输入进行充分的参数化查询处理,而是直接将用户可控的输入参数拼接到SQL查询语句中。攻击者可通过以下参数发动攻击:old_project_id、project_id、uuid、uniqid。攻击者利用UNION-based或Boolean-based SQL注入技术,构造恶意的SQL片段通过这些参数传入后端数据库。例如,在project_id参数中注入类似' UNION SELECT...--的payload,可使原查询逻辑被篡改,导致执行攻击者构造的恶意SQL语句。由于应用程序使用PDO或mysqli等数据库接口但未启用预处理语句的参数绑定机制,注入的SQL代码会被数据库引擎直接执行,从而实现数据提取或其他数据库操作。攻击者通常先通过错误信息或响应时间差异判断注入点位置和数据库类型,然后逐步提取数据库中的敏感表结构信息。