作者:掌控安全学苑
链接:https://zhuanlan.zhihu.com/p/397917097
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
一、Sqlmap简介
- 开源的SQL注入漏洞检测的工具,能够检测动态页面中的get/post参数,cookie,http头,还能够查看数据,文件系统访问,甚至能够操作系统命令执行。
- 检测方式:布尔盲注、时间盲注、报错注入、UNION联合查询注入、堆叠注入
- 支持数据库:Mysql、Oracle、PostgreSQL、MSSQL、Microsoft Access、IBM DB2、SQLite、Firebird、Sybase、SAP MaxDb
二、Sqlmap基本参数
—update: 更新
python sqlmap.py —update
-h:查看常用参数
python sqlmap.py -h
-hh:查看全部参数
python sqlmap.py -h
—version:查看版本
python sqlmap.py —version
-v:查看执行过程信息,默认是1,一共 0 ~ 6
python sqlmap.py -u “ http://59.63.200.79:8003/?id=1“ -v 3
-d : mysql表示数据库类型、user:password表示目标服务器的账号和密码,@后表示要连接的服务器,3306表示端口,zakq_ dababasename表示连接的数据库名称
python sqlmap.py -d “mysql://root:root@192.168.126.128:3386/zkaq_databasename”
—wizard : 向导式
python sqlmap.py —wizard
三、确定目标
-u “URL” : 指定URL,get请求方式
python sqlmap.py -u “ http://59.63.200.79:8003/?id=1“
-m url.txt ::使用一个包含多个url的文件进行扫描。若有重复,sqlmap会自动识别成一个。
python sqlmap.py -m url.txt
-g :扫描,使用Google语法得到的url。
python sqlmap.py -g “inurl:\”.php?id=1\”
-r request.txt : Post提交方式,使用HTTP请求文件,该文件可从BurpSuit中导出。(BurpSuit抓包—>将请求复制到txt中即可)
python sqlmap.py -r request.txt
-l log.txt —scope=”正则表达式” :Post提交方式,使用BurpSuit的log文件。(Options—>Misc—>Logging—>Proxy—>勾选Request ,scope的作用是 基于正则表达式去过滤日志内容,筛选需要扫描的对象。
python sqlmap.py -l log.txt —scope=”(www)?.target.(com|net|arg)”
-c sqlmap.conf :使用配置文件进行扫描 (sqlmap.conf与sqlmap.py 在同一目录)
python sqlmap.py -c sqlmap.conf
-u “URL” : 对于这种写法,加*号扫描
python sqlmap.py -u “ http://target_url/param1/value1*/param2/value2“
四、配置目标参数
-p :指定要扫描的参数
python sqlmap.py -u “ http://59.63.200.79:8003/?id=1&username=admin&password=123“ -p “username,id”
—skip: 排除指定的扫描参数
python sqlmap.py -u “ http://59.63.200.79:8003/?id=1&username=admin&password=123“ —skip “username,id”
—data: 指定扫描的参数,get/post都适用
python sqlmap.py -u “ http://59.63.200.79:8003/?id=1&username=admin&password=123“ —date=”username=admin&password=123”
—param-del:改变分隔符,默认是&,因为有些网站不实用&传递多个数据。
python sqlmap.py -u “ http://59.63.200.79:8003/?id=1&username=admin&password=123“ —date=”username=admin;password=123” —param-del=”;”
—cookie :使用cookie的身份认证
python sqlmap.py -u “ http://59.63.200.79:8003/?id=1“ —cookie=”security=low;PHPSESSID=121123131”
—drop-set-cookie: 有时候发起请求后,服务器端会重新Set-cookie给客户端,SQLmap默认会使用新的cookie,这时候可以设置此参数,表示还是用原来的cookie。
python sqlmap.py -u “ http://59.63.200.79:8003/?id=1“ —cookie=”security=low;PHPSESSID=121123131 —-drop-set-cookie”
—user-agent :使用浏览器代理头
python sqlmap.py -u “ http://59.63.200.79:8003/?id=1“ —user-agent=”aaaaaaaaa”
—random-agent: 使用随机的浏览器代理头
python sqlmap.py -u “