前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kali Linux Web渗透测试手册(第二版) - 6.4 - 基于错误的SQL注入

Kali Linux Web渗透测试手册(第二版) - 6.4 - 基于错误的SQL注入

作者头像
Power7089
发布2019-07-25 13:01:33
3710
发布2019-07-25 13:01:33
举报

6.4、基于错误的SQL注入

在上一个章节中,我们检测到了一个SQLi。 在本文中,我们将利用该漏洞并使用它从数据库中提取信息。

实战演练

我们已经知DVWA容易受到SQLi的攻击,所以让我们登录并浏览http://192.168.56.11/dvwa/vulnerabilities/sqli/然后按照以下步骤操作:

1.在检测到SQLi存在后,下一步是想办法内部查询,或者更确切地说,知道其结果的列数。在“用户ID”框中输入任意数字,然后单击“提交”。

2.现在,打开HackBar(点击F9)然后点击加载URL。 地址栏中的URL现在应该出现在HackBar中。

3.在HackBar中,我们将id参数的值替换为1'order by 1 - '并单击Execute,屏幕截图所示:

4.我们继续增加order by后面的值并执行请求,直到页面发生了报错。在此示例中,报错信息发生在它在按列数3时。这意味着查询的结果只有两列,因为我们尝试按不存在的列对其进行排序时会触发错误:

5.现在我们知道数据有两列。然后我们尝试使用union语句提取一些信息。将id的值设置为1'union select 1,2--'并执行。 你应该会得到结果:

6.这意味着我们要使用union查询中请求两个值。 让我们来看看DBMS和数据库用户的版本。 将id设置为

1'union select @@ version,current_user()-- '

然后执行:

7.随后我们寻找与之更相关的东西,例如应用程序的用户。首先我们需要找到用户的表。将id设置为

1'union select table_schema,table_name FROM information_schema.tablesWHERE table_name LIKE '%user%'--'

提交之后看到如下页面:

8.好的,我们知道数据库(或模式)名称为dvwa,我们正在寻找的表是user。由于我们只有两个位置来设置值,我们需要知道表中的哪些列对我们有用; 将id设置为

1'union select column_name,1 FROM information_schema.tables WHEREtable_name ='users'--'

9.最后,我们知道了user表的内容。将id设置为

1'union select user,password FROM dvwa.users -- '

在First name字段中,我们找到程序所存放的用户名,在Surname字段中,我们找到了每个用户的密码哈希值。 我们可以将这些哈希值复制到文本文件中,然后尝试使用John the Ripper或我们最喜欢的密码破解程序来破解它们。

原理剖析

从我们的第一次注入,1' order by 1 - '到1'order by 3 - '的顺序,我们使用SQL中的一个功能,允许我们使用其中的数字来排序某个字段或列的查询结果。它在查询中声明的顺序。我们使用它来生成错误,以便我们可以找出数据库有多少列,以便我们可以使用它们来创建union查询。

union语句用于连接具有相同列数的两个查询。通过注入,我们几乎可以向数据库查询任何内容。在这个章节中,我们首先检查它是否按预期工作。之后我们在用户表中设置我们的目标并执行以下操作来获取它:

1.第一步是发现数据库和表的名称。我们通过查询information_schema数据库来做到这一点,该数据库存储了MySQL中数据库,表和列的所有信息。

2.一旦我们知道数据库和表的名称,我们就会查询表中的列,以找出我们要查找的列,比如用户名和密码。

3.最后,我们在dvwa数据库的users表中注入了一个查询所有用户名和密码的SQL语句。


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小白帽学习之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档