注入技术包括使用应用程序的输入字段注入SQL查询或命令。
成功的SQL注入可以读取,修改数据库中的敏感数据,还可以从数据库中删除数据。它还使黑客能够对数据库执行管理操作,例如:关闭DBMS/删除数据库。
我们通过下面一个简单的图表了解这个漏洞的威胁代理,攻击向量,安全弱点,技术影响和业务影响。
以下应用程序在构造,很易受攻击的SQL调用时使用不受信任的数据 -
String query = "SELECT * FROM EMP WHERE EMPID = '" + request.getParameter("id") + "'";
第1步 - 导航到应用程序的SQL注入区域,如下所示。
第2步 - 使用SQL插入来绕过身份验证。使用SQL注入作为老板(‘Neville’)登录,而不使用正确的密码。确认可以查看Neville的配置文件并且所有功能都可用(包括搜索,创建和删除)。
第3步 - 我们将注入一个SQL,以便能够通过发送参数为'a'='a' or 1 = 1
来绕过密码
第4步 - 提交登录后,可以登录Neville
账号,他是Admin,如下所示。
有很多方法可以防止SQL注入。当开发人员编写代码时,他们应该确保它们相应地处理特殊字符。OWASP提供备忘单/预防技术,绝对是开发人员一个不错的指南。