受影响的产品名称: Directory Management System 供应商主页: - https://itsourcecode.com/free-projects/php-project/directory-management-system-source-code/ 受影响的版本和/或已修复的版本: V1.0 软件链接: - https://itsourcecode.com/free-projects/php-project/directory-management-system-source-code/ 漏洞类型: SQL 注入 根本原因: - 在 Directory Management System 项目的'/dms/admin/forget-password.php'文件中发现了一个SQL注入漏洞。原因是攻击者可以从参数'email'注入恶意代码,并在SQL查询中直接使用它,而无需进行适当的清理或验证。这使攻击者能够伪造输入值,从而操纵SQL查询并执行未经授权的操作。 影响: - 攻击者可以利用此SQL注入漏洞实现未经授权的数据库访问、敏感数据泄露、数据篡改、全面的系统控制,甚至服务中断,对系统安全和业务连续性构成严重威胁。 描述: - 在"Directory Management System"的安全审查期间,发现"/dms/admin/forget-password.php"文件中存在一个关键的SQL注入漏洞。此漏洞源于'email'参数的用户输入验证不足,允许攻击者注入恶意SQL查询。因此,攻击者可以获得未经授权的数据库访问权限,修改或删除数据,并访问敏感信息。需要立即采取补救措施,以确保系统安全并保护数据完整性。 利用此漏洞无需登录或授权 漏洞详细信息和POC: - 漏洞标识: - 'email'参数 - 载荷: email=fuji@gmail.com' AND (SELECT 2218 FROM (SELECT(SLEEP(5)))rHIZ) AND 'TZKl'='TZKl&mobilenumbe 来自测试和运行sqlmap工具的截图中获得的一些特定信息: - 建议的修复措施: 1. 使用预处理语句和参数绑定: - 准备语句可以防止SQL注入,因为它们将SQL代码与用户输入数据分开。使用准备语句时,用户输入的值被视作纯数据,不会被解析为SQL代码。 2. 输入验证和过滤: - 严格验证和过滤用户输入数据,确保其符合预期格式。 3. 最小化数据库用户权限: - 确保用于连接到数据库的帐户具有最少的必要权限。避免使用具有高级权限(如"root"或"admin")的帐户进行日常操作。 4. 定期进行安全审计: - 定期进行代码和系统安全审计,以及时识别和修复潜在的安全漏洞。