安全测试 - 注入

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

Web应用程序 - 注入

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

让我们了解威胁代理,攻击向量,安全弱点,技术影响和业务影响借助简单的图表来解决这个缺陷.

SQL Injection

示例

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

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

动手

第1步导航到应用程序的SQL Injection区域,如下所示.

SQL Injection

第2步如练习中所述,我们使用String SQL Injection来绕过身份验证.使用SQL注入作为老板('Neville')登录,而不使用正确的密码.确认可以查看Neville的个人资料并且所有功能都可用(包括搜索,创建和删除).

步骤3 我们将注入一个SQL,以便我们能够通过将参数发送为'a'='a'或1 = 1

SQL Injection

第4步 Post Exploitation,我们可以登录为Neville,他是Admin,如下所示.

SQL Injection

防止SQL注入

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

  • 使用参数化查询

  • 转义所有用户提供的输入

  • 为最终用户启用数据库的最低权限