0x01 适用条件
有回显信息但是没有具体的详细信息,但存在布尔类型
0x02 Low 难度注入过程
1. 判断回显
给id赋不同的值,发现id的最大只能赋值为5
无论怎样改变参数,回显信息始终只有两种。但是根据回显信息可以判断参数类型为字符型
2. 判断布尔类型
存在布尔类型
3. 尝试获取数据库长度
通过length(database())可以获取数据库名的长度(但是并不会显示在页面中)
通过尝试,得知了数据库名的长度为4
3. 尝试获取数据库名
substr(str,n,m)函数可以从字符串中str中的第n位起,取m个字符
ascii(str)可将字符转换成对应的ASCII码值
后续用同样的方法测出第三个字符和第四个字符的ASCII码值为119(w)和97(a)
因此数据库名为dvwa
PS:手工注入获取工作量太大,在Medium中会利用BP进行爆破
0x03 Medium 难度注入过程
1. 判断参数的提交方式
通过页面中的信息可以发现数据是以表单的的形式提交,参数并不会显示在地址栏中
审查提交数据的部分的元素,发现在表单中有两个参数分别是id和Submit
2. 判断回显和参数类型
打开hackbar插件,在Post data请求中添加参数,发现参数类型为数字型
无论怎样改变参数,回显信息始终只有两种
3. 利用BurpSuite进行爆破
3.1 获取数据库的长度
抓取网页提交数据时的请求包
将数据包发送到intruder,在Position中构造参数id,并且添加变量
在Payload中对变量进行设置
开始攻击后会显示爆破过程和结果
再点击Response—Render查看,结果无误,数据库长度为4
3.2 获取数据库名
将请求数据包发送到intruder,在Position中构造参数id,并且添加变量
在Payload中对参数1进行设置
在Payload中对参数2进行设置
查看攻击结果,先点击Payload1,再点击Length进行排序