小白日记44:kali渗透测试之Web渗透-SqlMap自动注入(二)-sqlmap参数详解REQUEST

Sqlmap自动注入(二)

 

Request

 

###################################################

#inurl:.php?id=

1、 数据段:–data

Get/post都使用

【POST方法】Sqlmap -u “http://1.1.1.1/a.php” –data=”user=1&pass=2” –f

#sqlmap可自动识别“&”

【GET方法】Sqlmap –u “http://1.1.1.1/a.php” –-data=”user=1&pass=2”

 

 

2、 变量分隔符:–param-del

#大部分web application使用&作为变量之间的分隔符,但有些会使用”;”、“/”等。则需使用—param-del来指定

Sqlmap –u “http://1.1.1.1/a.php” –data=”q=foo;id” –param-del=”;” –f

 

3、 Cookie靶机:DVWA)

Web应用需要基于cookie的身份认证

还会检查cookie中的注入点(sqlmap自动测试)。

#只有当level>=2时,才会去扫描cookie中是否存在注入点

 

#当cookie信息更新了,sqlmap会自动检测新的http头,自动添加新的cookie。【可使用—drop-set-cookie暂停其功能】

Sqlmap –u “http://1.1.1.1/a.php?id=1” –cookie=”a=1;b=2” –f

 

4、 –user-agent

Sqlmap/1.0-dev-xxxxxx(默认情况下为这样)

–random-agent   【随机使用user-agent,user-agent字典文件】

 

5、 APP/WAF/IPS/IDS 过滤异常user-gent报错

[hh:mm:20] [ERROR] the target URL responded with an unknown HTTP

status code, try to force the HTTP User-Agent header with option –user-

agent or –random-agent

 

6、 Host头:–host  【也有可能存在注入点,比较少见】

前提:level=5

 

7、 Referer:–referer   【理论上都有可能存在】

当浏览器向WEB服务器发送请求的时候,一般会带上HTTP REFERER,告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理。

前提:level>=3

 

8、 额外的header:–headers                  【开发者可能自定义http头】

每个头单独一行(名称区分大小写)

sqlmap -u “http://1.1.1.1/a.php?id=1” –headers=”Host:www.a.com
User-Agent
:yqwr” 【
:用于换行;需注意大小写】

 

##默认情况下使用GET方法,若失败,再尝试POST方法

–method=POST/GET

 

9、 基于HTTP协议的身份验证

Basic/Digest/NTLM          【身份认证类型https://technet.microsoft.com/zh-cn/library/ms191264v=sql.105).aspx】

Sqlmap –u “http://1.1.1.1/a.php?id=1” –auth-type Basic –auth-cred “user:pass”

 

10、–auth-cert / –auth-file         【少见】

基于客户端证书的身份认证

–auth:file=”ca.PEM”

含私钥(或包含PEM格式的证书链)的PEM格式证书文件

 

11、 https)代理

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

–proxy-cred=”name:pass”

–ignore-proxy

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

 

Sqlmap –u ”http://1.1.1.1/a.php?id=1” –proxy=”http://127.0.0.1:8087” -f

#命令规范【–命令=”参数”

 

12、–delay

每次https)请求之间延迟时间,浮点数,单位为秒,默认无延迟,以网络带宽,最大程度发包

 

13、–timeout

请求超时时间,浮点数,默认为30秒

 

14、–retires

https)连接超时重试次数,默认3次

 

15、–randomize

长度、类型与原始值保持一致的前提下,指定每次请求随机取值的参数名

#如:sqlmap –u “http://1.1.1.1/a.php?id=100” –randomize=”id”

 

16、–scope                          【作用:指定范围】

过滤日志内容,通过正则表达式筛选扫描对象

Sqlmap -l burp.log –scope=”www)?.target.com | net | org)”

Sqlmap –l 2.log –scope=”19)?.168.20.1|10|100)” –level 3 –dbs

User-agent中的注入点

   

#使用靶场mutillidae,获得get/post请求

0x00使用burpsuit记录日志信息

0x01在mutillidae中进行手动爬网

 

17、–safe-url / –sqfe-freq           

         检测和盲注截断会产生大量失败请求,服务器端可能因此销毁session

         每次发送–safe-freq频率)次注入请求后,发送一次正常请求

 

18、–skip-urlencode

默认GET方法会对传输内容进行编码,某些WEB服务器不遵守RFC标准编码,而使用原始字符提交数据。【此为web application的特征,需在扫描前分析】

 

19、–eval

【典型使用场景:某些web application中找回密码的链接

(sqlmap –u ”http://mailaddress&hash=wqd32ni5abvi7a” —eval=”import haslib;hashlib.md5id).hexdigest)”){其中hash值为邮箱地址的hash值;其他情况:hash值为时间}】

        

每次请求前执行指定的python代码

每次请求更改或增加新的参数值(时间依赖、其他参数值依赖)

 

 

 

Published by

风君子

独自遨游何稽首 揭天掀地慰生平