📜  道德黑客-SQL注入

📅  最后修改于: 2020-12-06 12:14:56             🧑  作者: Mango


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

可以出于以下意图进行SQL注入攻击-

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

  • 修改数据库的内容,或者

  • 执行应用程序不允许的其他查询。

如果应用程序在将输入传递给SQL语句之前未正确验证输入,则这种类型的攻击有效。通常将注入放置在地址栏,搜索字段或数据字段中。

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

例子1

让我们尝试使用一些示例来理解这个概念。如下面的屏幕快照所示,我们在“名称”字段中使用了“”字符。

名称栏位

现在,单击“登录”按钮。它应该产生以下响应-

登录

这意味着“名称”字段容易受到SQL注入的攻击。

例子2

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

我们想测试变量“ page”,但要观察我们如何在字符串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图

SQL忍者

SQLNinja是Kali发行版中提供的另一个SQL注入工具。

SQLninja

JSQL注入

JSQL注入是Java语言,它可以进行自动SQL注入。

JSQL注入

快速提示

为了防止您的Web应用程序受到SQL注入攻击,应牢记以下几点-

  • 未经允许的用户对数据库的输入不应被允许通过应用程序GUI。

  • 传递给应用程序的每个变量都应进行清理和验证。

  • 应该引用传递给数据库的用户输入。