CVE-2015-20121CVE-2015-20121是Next Click Ventures公司开发的房地产脚本程序RealtyScript 4.0.2中的一个高危安全漏洞。该漏洞存在于/admin/users.php和/admin/mailer.php两个管理页面中,由于程序对用户输入参数'u_id'和'agent[]'缺乏充分的输入验证和过滤,攻击者可以通过构造恶意的SQL语句片段注入到数据库查询中。由于漏洞存在于管理后台,攻击者无需获取任何认证凭据即可利用此漏洞。攻击者通常采用时间盲注(Time-based Blind SQL Injection)技术,通过在SQL语句中嵌入sleep()等延时函数,根据数据库响应时间的差异来推断数据库结构和提取敏感数据。此漏洞可能导致数据库中存储的用户信息、交易记录、管理员账号密码等敏感数据泄露,攻击者还可能利用sleep()函数造成数据库连接阻塞,实现拒绝服务攻击。
该SQL注入漏洞主要涉及两个攻击向量:第一处位于/admin/users.php页面,攻击者通过GET参数u_id注入恶意SQL代码;第二处位于/admin/mailer.php页面,攻击者通过POST参数agent[]数组进行注入。攻击者利用时间盲注技术,通过在SQL查询中插入条件语句和sleep()函数来探测数据库信息。例如,攻击者可构造类似' AND (SELECT CASE WHEN (条件) THEN sleep(5) ELSE 0 END) 的payload,当条件为真时数据库会延时响应,从而通过响应时间判断条件是否成立。攻击者通过二分查找法逐步提取数据库名、表名、列名及具体数据内容。此外,攻击者可注入类似'; SELECT sleep(10)--的payload直接触发延时,造成数据库连接资源耗尽,导致应用服务不可用。由于程序未使用参数化查询或预编译语句,直接将用户输入拼接到SQL查询语句中,使得恶意SQL代码得以执行。