安全测试 – 注入
安全测试 – 注入
注入技术包括使用应用程序的输入字段注入 SQL 查询或命令。
Web 应用程序 – 注入
成功的 SQL 注入可以从数据库中读取、修改敏感数据,也可以从数据库中删除数据。它还使黑客能够对数据库执行管理操作,例如关闭 DBMS/删除数据库。
让我们借助简单的图表了解此漏洞的威胁代理、攻击向量、安全弱点、技术影响和业务影响。
例子
该应用程序在构建以下易受攻击的 SQL 调用时使用不受信任的数据 –
String query = "SELECT * FROM EMP WHERE EMPID = '" &plus request.getParameter("id") &plus "'";
动手
步骤 1 – 导航到应用程序的 SQL 注入区域,如下所示。
第 2 步– 如练习中所述,我们使用字符串 SQL 注入来绕过身份验证。使用 SQL 注入以老板 (‘Neville’) 的身份登录,而无需使用正确的密码。确认可以查看 Neville 的个人资料并且所有功能都可用(包括搜索、创建和删除)。
第 3 步– 我们将注入一条 SQL,以便我们能够通过将参数作为 ‘a’ = ‘a’ 或 1 = 1 发送来绕过密码
Step 4 – Post Exploitation,我们能够以管理员身份登录,如下所示。
防止 SQL 注入
有很多方法可以防止 SQL 注入。开发人员在编写代码时,应确保相应地处理特殊字符。OWASP 提供了备忘单/预防技术,这绝对是开发人员的指南。
- 使用参数化查询
- 转义所有用户提供的输入
- 为最终用户的数据库启用最低权限