SQLMAP入门(二)——sqlmap_HTTP_参数设置

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

你可能感兴趣的:(SQL,注入,网络攻防)