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

Kali Linux Web渗透测试手册(第二版) - 6.3 - 手动识别SQL注入

作者头像
用户1631416
发布2019-03-06 14:17:21
6880
发布2019-03-06 14:17:21
举报
文章被收录于专栏:玄魂工作室玄魂工作室

翻译来自掣雷小组

成员信息:

thr0cyte,Gr33k,花花,MrTools,R1ght0us,7089bAt


6.3、手动识别SQL注入

大多数现代Web应用程序都实现某种数据库,而SQL是最常用的查询数据库的语言。 在SQL注入(SQLi)攻击中,

攻击者试图通过注入表单中的SQL命令来发送更改的查询,从而滥用应用程序和数据库之间的通信

用于在服务器中构建SQL语句的请求中的输入或任何其他参数。

在本文中,我们将测试Web应用程序的输入,以查看它是否容易受到基于错误的SQLi的攻击

实战演练

登录到DVWA,转到SQL注入,并检查安全级别是否低:

1.与之前的方法一样,让我们通过引入一个数字来测试应用程序的正常行为。将用户ID设置为1,然后单击“提交”。 通过查看结果,我们可以说应用程序查询数据库以查看是否存在ID等于1的用户并返回该用户的ID,名称和姓氏。

2.接下来,我们必须测试如果发送应用程序不期望的内容会发生什么。在文本框中引入1'并提交该ID。 如以下屏幕截图所示,应用程序应响应错误:

此错误消息告诉我们数据库收到错误形成的查询。 这并不意味着我们可以确定这里有SQLi,但很可能这个应用程序很容易受到攻击。

3.返回DVWA SQLInjection页面。

4.为了确保存在基于错误的SQLi,我们尝试另一个输入:1''(这次是两个撇号):

这次没有错误。 这证实了应用程序中存在SQLi漏洞。

5.现在我们将执行一个非常基本的SQLi攻击。 在文本框中引入'或'1'='1并提交。结果应如下所示:

看起来我们刚刚在数据库中注册了所有用户。

原理剖析

在用于形成数据库查询之前,未对输入进行验证和清理时会发生SQLi。 让我们假设应用程序中的服务器端代码(在PHP中)组成查询,如下所示:

代码语言:javascript
复制
$query = "SELECT * FROM users WHEREid='".$_GET['id']. "'";

这意味着id参数中发送的数据将按原样集成在查询中。如果我们用它的值替换参数引用,我们有:

代码语言:javascript
复制
$query = "SELECT * FROM users WHEREid='"."1". "'";

因此,当我们像我们一样发送恶意输入时,PHP解释器将按如下方式读取代码行:

代码语言:javascript
复制
$query = "SELECT * FROM users WHERE id='"."' or'1'='1"."'";

结果SQL语句如下所示:

代码语言:javascript
复制
$query = "SELECT * FROM users WHERE id='' or '1'='1'";

这意味着如果用户id等于no或1 = 1,则从名为users的表中选择所有内容; 由于一个总是等于一个,所有用户都将满足这些标准。 首先我们发送的撇号关闭原始代码中打开的那个。 之后,我们可以引入一些SQL代码,最后一个没有关闭撇号的代码使用一个已经设置在服务器的代码中。这被称为基于错误的SQLi,并且是SQLi的最基本形式,因为我们使用错误消息来确定我们是否已经使用我们的注入形成了有效查询,并且结果直接显示在应用程序的输出中。

更多…

与简单地显示应用程序的用户名相比,SQLi攻击可能造成更大的破坏。通过利用这种漏洞,攻击者可能会泄露各种漏洞

有关用户的敏感信息,例如联系方式和信用卡号。 也可能危及整个服务器,并能够执行命令并升级其中的权限。此外,攻击者可能能够从数据库中提取所有信息,包括数据库和系统用户,密码,以及根据服务器和内部网络配置,SQLi漏洞可能是完整网络和内部基础结构的入口点。

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

本文分享自 玄魂工作室 微信公众号,前往查看

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

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

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