参考链接:https://blog.csdn.net/wn314/article/details/78872828
sqlmap 下载地址:http://sqlmap.org/
sqlmap安装:我下载的是windows 版的.zip 文件。压缩文件夹解压即可使用。
打开cmd,并切换到sqlmap 文件夹下,sqlmap 路径为D:360Downloadssqlmapproject-sqlmap-3f1a8e8。
打开cmd,同时按键Win+r,输入cmd,点解确定,即可打开cmd。
切换到sqlmap 文件夹下,如下图。
sqlmap 使用环境:需要安装python,本人以前就有安装python3,但还要安装python3中的pymysql
python3安装pymysql
- 首先确保自己安装了pip环境,并添加到环境变量中。
在运行>cmd>控制台输入pip,点击回车,有如下提示说明环境正常。
2. 运行python,然后输入import pymysal,有如下提示则提示没有安装PyMySQL模块。
3. 使用pip install PyMySQL回车,等待安装。
4. 运行python环境,输入import pymysql,如图未报错则说明pymysql模块安装正常。
然后输入quit() 退出python3。
输入命令python sqlmap.py 出现以下图片结果则说明sqlmap 环境搭建成功,可以进行测试了。
可以先输入python sqlmap.py -help 查看一下sqlmap 有哪些参数。
1.直接连接数据库
参数:-d
使用参数“-d”直接连接数据库,我用如下命令连接装在本机上的Mysql。
python sqlmap.py -d "mysql://root:root@127.0.0.1:3306/DISSchool"
2.指定目标URL
参数:-u 或 –url
使用参数“-u”或“–url”指定一个URL作为目标,该参数后跟一个表示URL的字符串,可以是http协议也可以是https协议,还可以指定端口,如:
python sqlmap.py -u "http://192.168.10.1/login.htm?id=0"
python sqlmap.py -u "http://192.168.56.10.1:80/login.htm?id=0"
python sqlmap.py -u "http://192.168.10.1/login.htm?ui_user=user&ui_pws=admin"
注:url 需要带双引号,url 后面需要加?带参数。
sqlmap PC连接路由器,检查一下登陆页面是否有注入漏洞,参数ui_user和ui_pws,是按F12键,查询到的登陆页面账号和密码的id号。运行以下命令
python sqlmap.py -u "http://192.168.10.1/login.htm?ui_user=user&ui_pws=admin"
python sqlmap.py -u "http://192.168.10.1/login.htm" --data="ui_user=user&ui_pws=admin"
在输出结果中可以看到参数ui_user和ui_pws 不可注入。
[WARNING] GET parameter 'ui_user' does not seem to be injectab
[WARNING] GET parameter 'ui_pws' does not appear to be dynamic
在运行命令是需要手动输入y 才能继续往下运行,如果嫌手动麻烦,可以在命令后加上参数--bacth,会自动选择。
3.从Burp或WebScarab的代理日志中解析目标
参数:-l
使用参数“-l”指定一个Burp或WebScarab的代理日志文件,Sqlmap将从日志文件中解析出可能的攻击目标,并逐个尝试进行注入。该参数后跟一个表示日志文件的路径。
WebScarab我没有用过,Burp倒是常常会用。Burp默认不记录日志,想要记录日志需要手动开启,设置方法如下图所示:
只用勾选代理中的请求数据就足够了,日志文件路径可随意设置,这里我设置日志文件名为proxy.log,放在用户主目录中。
python sqlmap.py -l proxy.log
python sqlmap.py -l E:proxy.log
python sqlmap.py -l proxy.log --bacth
python sqlmap.py -l proxy.log --batch >>E:log.txt
python sqlmap.py -l E:Logproxy_0819.log --batch >>E:logsqlmap_log_0819.txt
注意日志文件的路径要写正确。执行该命令时,每找到一个可能的攻击目标,Sqlmap都会询问是否要检测该目标。,默认回答为“Y”,想要测试该目标,直接按回车键就行。
4.从文本文件中解析目标
参数:-m
参数“-u”一次只能指定一个URL,若有多个URL需要测试就显得很不方便,我们可用将多个URL以一行一个的格式保存在文本文件中,然后使用参数“-m”,后跟该文本文件路径,让Sqlmap依次读取文件中的URL作为攻击目标。
如我们有文件url.txt,内容为:
python sqlmap.py -u "http://192.168.10.1/login.htm?id=0"
python sqlmap.py -u "http://192.168.56.10.1:80/login.htm?id=0"
python sqlmap.py -u "http://192.168.10.1/login.htm?ui_user=user&ui_pws=admin"
然后可用使用如下命令让Sqlmap测试这些URL是否存在注入漏洞:
python sqlmap.py -m url.txt
同样,执行该命令时,Sqlmap会很贴心地一个个询问:“do you want to test this URL?”