1.SQLMAP设置HTTP方法
Sqlmap会自动在探测过程中使用适合的HTTP
请求方法。但是在某些情况下,需要强制使用具体的HTTP请求方法。例如PUT请求方法。HTTP PUT请求方法不会自动使用,因此需要强制指定。使用 –method=PUT
2.SQLMAP设置POST提交参数
默认情况下,用于执行HTTP请求的HTTP方法时GET,但是可以通过提供在POST请求中发送的数据隐式地将其更改位POST。这些数据作为这些参数,被用户SQL注入检测
例如:
Sqlmap -u “https://www.test.com/page.php” --data=”id=1” -f --banner --dbs --users
-f fingerprint指纹
3.SQLMAP设置参数分隔符
在某些情况下,sqlmap需要覆盖默认参数分隔符(例如:& in GET和POST数据),才能正确地分割和单独处理每个参数。Sqlmap -u “http://www.test.com/page.php” --data=”qury=foobar;id=1” --param-del=”;” --f --banner --dbs --users
4.SQLMAP设置cookie头
Sqlmap中用来设置cookie的参数:--cookie,--cookie-del,--load-cookies,--drop-set-cookie
使用场景:
1.web应用程序具有基于cookie验证的过程
2.想利用cookie值上的SQL注入漏洞
Sqlmap使用cookie的过程
1.登录或浏览页面
2.打开审计工具或代理截断,复制cookie
3.在sqlmap中使用 --cookie 粘贴cookie值
如果在通信过程中,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注入探测,需要设置 –leve 2以上。
5.SQLMAP设置User-Agent头
默认情况下,sqlmap使用以下用户代理头执行HTTP请求:sqlmap/1.0-dev-xxxx(http://sqlmap.org),然而,通过剔红自定义代理作为选项参数,可以使--user-agent来伪造它。
此外,通过--random-agent,sqlmap将从 ./txt/user-agents中随机选择一个用于会话中的所有HTTP请求,一些站点在服务端检测HTTP User-Agent值,如果不是一个合法分值,就会中断连接。同时sqlmap也会爆出错误。
注意:针对User-Agent的值探测SQL注入,需要设置--level值为3
6.SQLMAP设置HOST头
可以手动设置HTTP主机头值。默认情况下,从提供的目标URL解析HTTP主机头。
注意,如果--level 3设置为5,将对HTTP主机头进行SQL注入检测。
7.SQLMAP设置Referer头
伪造HTTP Referer头值是可能的。默认情况下,如果没有显式设置,HTTP请求中不会发送HTTP引用头。
注意:如果--level设置为3以上,将针对HTTP引用头进行SQL注入。
8.SQLMAP设置额外的HTTP头
通过设置—header,可以提供额外的HTTP标头。每个标头必须用换行符分隔(\n),从配置文件INI中提供他们要容易的多。可以查看示例sqlmap.conf文件
示例:sqlmap -u “http://www.test.com/page.php?id=1” -H “TEST”
Sqlmap -u http://www.test.com/page.php?id=1 –headers=“User-Agent:HAHA\nCookie:12”
注意:-h 只能添加一个头,--headers可以添加多个头
9.SQLMAP设置HTTP协议认证
Sqlmap中设置HTTP协议认证的参数:--auth-type和--auth-cred
其中--auth-type支持:Basic、Digest、NTLM
--auth-cred认证语法为:username:password
示例:sqlmap -u “http://www.test.com/page.php?id=1” --auth-type Basic --auth-cred “testuser:testpass”
10.SQLMAP设置HTTP代理
Sqlmap中设置代理的参数:--proxy,--proxy-cred,--proxy-file,--ignore-proxy
其中--proxy用来设置HTTP代理服务器位置,格式:--proxy http(s)://ip:port
如果dialing服务器有密码可以使用—proxy-cred
格式:--proxy-cred username:psswprd
--proxy-file用来设置多条代理在文件中
--ignore-proxy当希望通过忽略系统范围内的HTTP(S)代理服务器设置来针对本地网络的目标部分,运行sqlmap时,应该使用这种方法。
11.SQLMAP设置Tor隐藏网络
Sqlmap中设置Tor网络的参数:--tor, --tor-port, --tor-type, --check-tor
***kali Linux中默认是没有安装Tor的,需要使用命令:apt install tor 进行安装
开启tor服务:service tor start
查看tor状态:service tor status
12.sqlmap设置延时
Sqlmap探测过程中会发送大量探测Payload到目标,如果默认情况过快的发包速度会导致目标预警。为避免这样的情况发生,可以在探测设置sqlmap法宝延时。默认情况笑傲,不设置延时。
参数:--delay 0.5 设置延时0.5秒
13.SQLMAP设置超时
在考虑超时HTTP(S)请求之前,可以指定等待的秒数。有效值是一个浮点数,例如10.5秒表示10表半。默认设置是30秒
示例:--timeout 10.5
14.SQLMAP设置重试次数
SQLMAP中摄入之重试次数
示例:--retries count 设置对应重试次数,默认情况下重试3次
15.SQLMAP设置随机化参数
SQLMAP可以指定要在每次请求期间随机更改其值的参数名称。长度和类型根据提供的原始值保持一致
示例:--randomize 参数名称
16.SQLMAP设置日志过滤目标
与使用-l使用从提供的日志解析的所有主机不同,您可以指定有效的Python正则表达式,用于过滤目标
示例:sqlmap -l test.log –scop=”(www)?\.target\.(com|net|org)”
--skip-urlencode 不进行URL加密
17.SQLMAP设置忽略401
SQLMAP中设置忽略401
示例:--ignore-401 参数用来忽略未验证错误
如果您想测试偶尔返回HTTP错误401(未经授权)的站点,而您向忽略它并在不提供适当凭证的情况下继续测试,您可以使用—ignore-401
18.SQLMAP设置HTTP协议的私钥
当web服务器需要适当的客户端证书和用于身份验证的私钥时,应该使用此选项。提供的应该是一个PEM格式的key_file,其中包含证书和私钥
示例:--auth-file 文件名
19.SQLMAP设置安全模式
避免在多次请求失败后销毁会话
有时,如果执行了一定数量的不成功请求,则再次期间的web应用程序或检查技术会销毁会话。这可能发生在sqlmap的检测阶段或利用任何盲注SQL类型时。原因时SQL有效负载不一定返回输出,因此可能会向应用程序会话管理或检测技术发出信号
示例:--safe-uel,--safe-post,--safe-req,--safe-freq
通过这种方式,sqlmap将访问每个预定义数量的请求,而不对某个安全的URL执行任何类型的注入
20.SQLMAP设置忽略URL编码
根据参数的位置(例如GET),默认情况下它的值是可以URL编码的。在某些情况下,后端服务器不遵循RFC标准,需要以原始非编码形式发送值。这种情况下就要设置忽略URL编码
示例:--skip-urlencode