📜  安全测试-注入

📅  最后修改于: 2020-12-04 05:19:05             🧑  作者: Mango


注入技术包括使用应用程序的输入字段注入SQL查询或命令。

Web应用程序-注入

成功的SQL注入可以读取,修改数据库中的敏感数据,还可以删除数据库中的数据。它还使黑客能够对数据库执行管理操作,例如关闭DBMS /删除数据库。

让我们借助简单的图表了解此漏洞的威胁代理,攻击媒介,安全漏洞,技术影响和业务影响。

SQL注入

例子

该应用程序在以下易受攻击的SQL调用的构造中使用不受信任的数据-

String query = "SELECT * FROM EMP WHERE EMPID = '" + request.getParameter("id") + "'";

动手

步骤1-导航到应用程序的SQL Injection区域,如下所示。

SQL注入

步骤2-如练习中所述,我们使用String SQL Injection绕过身份验证。使用SQL注入以boss(“ Neville”)身份登录,而无需使用正确的密码。验证是否可以查看Neville的个人资料以及所有功能(包括搜索,创建和删除)是否可用。

步骤3-我们将注入SQL,以便我们能够通过将参数发送为’a’=’a’或1 = 1来绕过密码

SQL注入

步骤4-发布漏洞后,我们可以以Neville身份登录,即管理员,如下所示。

SQL注入

防止SQL注入

有很多方法可以防止SQL注入。开发人员编写代码时,应确保他们相应地处理特殊字符。 OWASP提供了备忘单/预防技术,这绝对是开发人员的指南。

  • 使用参数化查询
  • 转义所有用户提供的输入
  • 为最终用户启用数据库的最低权限