Ethical Hacking - SQL注入

SQL注入是一组SQL命令,它们放在URL字符串或数据结构中,以便从与Web应用程序连接的数据库中检索我们想要的响应.这种类型的攻击通常发生在使用PHP或ASP.NET开发的网页上.

SQL注入攻击可以通过以下意图完成并减去;

  • 要转储系统的整个数据库,

  • 修改内容数据库,或

  • 执行应用程序不允许的不同查询.

当应用程序在将输入传递给SQL语句之前未正确验证输入时,此类攻击会起作用.注入通常放在地址栏,搜索字段或数据字段中.

检测Web应用程序是否容易受到SQL注入攻击的最简单方法是使用"'"字符串中的字符,看看是否有任何错误.

示例1

让我们尝试使用一些示例来理解这个概念.如下面的屏幕截图所示,我们在名称字段中使用了一个"'"字符.

名称字段

现在,点击登录按钮.它应该产生以下响应 :

Login

这意味着"名称"字段容易受到SQL注入.

示例2

我们有这个URL :   http://10.10.10.101/mutillidae/index.php?page=site-footer-xssdiscussion.php

我们要测试变量"页面"但请注意我们如何在字符串URL中注入一个"'"字符.

变量页

当我们按Enter键时,它会产生以下错误结果.

带错误的结果

SQLMAP

SQLMAP是检测SQL注入的最佳工具之一.它可以从 http://sqlmap.org/下载

它在Kali发行版中预先编译.您可以在 : 找到它;应用程序 → 数据库评估 →  Sqlmap.

打开SQLMAP后,我们转到我们有SQL注入的页面,然后获取头请求.从标题中,我们在SQL中运行以下命令;

./sqlmap.py --headers="User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:25.0) 
Gecko/20100101 Firefox/25.0" --cookie="security=low;
PHPSESSID=oikbs8qcic2omf5gnd09kihsm7" -u '
http://localhost/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#' -
level=5 risk=3 -p id --suffix="-BR" -v3


SQLMAP将测试所有变量,结果将显示参数"id"易受攻击,如下面的屏幕截图所示.

SQL Map

SQLNinja

SQLNinja是另一种可用的SQL注入工具Kali发行.

SQLninja

JSQL注入

JSQL注入是Java,它可以自动进行SQL注入.

JSQL Injection

快速提示

为防止您的Web应用程序受到SQL注入攻击,你应该记住以下几点并减去;

  • 不应该允许未经检查的数据库用户输入通过应用程序GUI.

  • 应该对传入应用程序的每个变量进行清理和验证.

  • 应该引用传入数据库的用户输入.