道德黑客 – SQL 注入

道德黑客 – SQL 注入


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

可以通过以下意图进行 SQL 注入攻击 –

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

  • 修改数据库的内容,或

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

当应用程序在将输入传递给 SQL 语句之前没有正确验证输入时,这种类型的攻击就会起作用。注入通常放置在地址栏、搜索字段或数据字段中。

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

示例 1

让我们尝试通过几个例子来理解这个概念。如以下屏幕截图所示,我们在名称字段中使用了“’”字符。

名称字段

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

登录

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

示例 2

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

我们想测试变量“page”,但观察我们如何在字符串 URL 中注入“’”字符。

可变页面

当我们按 Enter 时,它会产生以下有错误的结果。

结果有错误

SQLMAP

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

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

打开SQLMAP后,我们进入有SQL注入的页面,然后获取header请求。从标题中,我们在 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 注入工具。

SQL忍者

JSQL 注入

JSQL 注入是用 Java 编写的,它可以自动进行 SQL 注入。

JSQL 注入

快速提示

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

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

  • 传递到应用程序的每个变量都应该被清理和验证。

  • 传递到数据库中的用户输入应该被引用。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁