参数

–data 数据段
–param-del 后面接指定的变量分隔符。
–cookie cookie头(需要省份认证的网页。比如DVWA)。会检查cookie的注入点(扫描等级大于等于2才会检查cookie注入点)。
–drop-set-cookie 当服务器cookie跟新的时候依旧使用旧的cookie(默认会自己更新)
–random-agent 随机生成user-agent。(也不是完全随机,而是在下面的路径抓取信息,因为服务器会检查UA,如果它不认识这个UA就会拒绝)/usr/share/sqlmap/txt/user-agents.txt
–host 指定host头 host:主机Level =5检查host注入点的级别
–referer 指定referer头Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器基此可以获得一些信息用于处理。
–headers 额外的headers。多个头时必须一个头一行。HTTP消息头用来准确描述正在获取的资源、服务器或者客户端的行为,定义了HTTP事务中的具体操作参数。sqlmap -u “http://1.1.1.1/a.php?id=1” --headers=“host:www.a.com\nUser-Agent:simida”
–method=GET/POST 指定GET/POST。有的服务器必须某种方法。
–auth-cert / --auth-file 身份认证。sqlmap. -u “http://1.1.1.1/a.php?id=1” --auth-type Basic --auth-cred "user:passwd“
–proxy 设置代理。防止IP被封。(代理设置为tor)–proxy="http://127.0.0.1:8087"sqlmap -u “http://1.1.1.1/a.php?id=1” --proxy=“http://127.0.0.1:8087” -f
–proxy-cred 当代理需要身份认证用这个。–proxy-cred=“name:pass”
–ignore-proxy 忽略操作系统设置的代理(用于扫描本地网络)
–delay –delay=”1“ 这样写格式最好,”“包起来。http(s)请求之间的延迟,单位S,默认为0.这个比较重要,一般请设置,太快会被对方检测到。
–timeout 请求超时时间。单位S。默认30S
–retries http(s)连接超时重试次数。默认3
–randomize 长度类型与原始值保持一致类型的前提下,指定每次请求随机取值的参数名。
–skip-urlencode 默认Get方法会对传输内容进行编码。某些web服务器不遵守RFC标准编码,使用原始字符提交数据。场景:服务器程序员习惯不好,不会遵守url编码。我们提交的时候就不进行url编码
–eval 每次请求前执行指定的python代码。

–randomize

SQLMAP:3.SQLMAP-REQUEST(数据段、变量分隔符、cookie)
如上图,每次id取值都是随机的三位数。

–data的post应用

SQLMAP:3.SQLMAP-REQUEST(数据段、变量分隔符、cookie)
SQLMAP:3.SQLMAP-REQUEST(数据段、变量分隔符、cookie)
请求登陆,复制url(可以直接浏览器地址栏复制,也可以插件抓取,也可以截断)
SQLMAP:3.SQLMAP-REQUEST(数据段、变量分隔符、cookie)
因为是post请求,数据参数部分在插件看(或者截断工具)。
SQLMAP:3.SQLMAP-REQUEST(数据段、变量分隔符、cookie)
上面sqlmap扫描语句包含两部分。–data之前的url是http头(浏览器地址栏复制的),–data= 后面是post的参数。在插件或者截断里面看。
SQLMAP:3.SQLMAP-REQUEST(数据段、变量分隔符、cookie)
发现漏洞。上面是post的–data应用。

–data的get应用

SQLMAP:3.SQLMAP-REQUEST(数据段、变量分隔符、cookie)
SQLMAP:3.SQLMAP-REQUEST(数据段、变量分隔符、cookie)
GET方式产生流量。
SQLMAP:3.SQLMAP-REQUEST(数据段、变量分隔符、cookie)
浏览器地址栏复制或者截断里面复制。
SQLMAP:3.SQLMAP-REQUEST(数据段、变量分隔符、cookie)
把原来url里卖弄的 ?用 --data= 替换。前后用“”包含url。
SQLMAP:3.SQLMAP-REQUEST(数据段、变量分隔符、cookie)

–param-del :变量分隔符

sqlmap -u “http://1.1.1.1/a.php” --data=“q=foo;id=1” --param-del=";" -f
当分隔符号不为&的时候,用这个指明。

–cookie

cookie头(需要身份认证的网页。比如DVWA)。会检查cookie的注入点(扫描等级大于等于2才会检查cookie注入点)。

–drop-set-cookie

当服务器cookie跟新的时候依旧使用旧的cookie(默认会自己更新)

–cookie-del

SQLMAP:3.SQLMAP-REQUEST(数据段、变量分隔符、cookie)
假如直接复制这个url让sqlmap扫描是会出现302重定向错误的。因为这个网站需要身份验证。
SQLMAP:3.SQLMAP-REQUEST(数据段、变量分隔符、cookie)
cookie需要在插件或者截断里面找。
SQLMAP:3.SQLMAP-REQUEST(数据段、变量分隔符、cookie)
前半部分在浏览器地址栏复制,后面在插件或者截断工具复制。
SQLMAP:3.SQLMAP-REQUEST(数据段、变量分隔符、cookie)

–user-agent

中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。

这个参数:指定user-agent(自己生成的UA包含sqlmap特征单词,服务器管理员可以过滤)

–random-agent

随机生成user-agent。(也不是完全随机,而是在下面的路径抓取信息,因为服务器会检查UA,如果它不认识这个UA就会拒绝)
文件地址:/usr/share/sqlmap/txt/user-agents.txt
SQLMAP:3.SQLMAP-REQUEST(数据段、变量分隔符、cookie)
注意:我们用sqlmap生成的user-agent都包含sqlmap,服务器管理员完全可以设置过滤这个user-agent。
解决:–user-agent :指定合法user-agent。
也可以–random-agent :随机生成user-agent。生成的都是合法的。

SQLMAP:3.SQLMAP-REQUEST(数据段、变量分隔符、cookie)

–referer

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

–headers

HTTP消息头用来准确描述正在获取的资源、服务器或者客户端的行为,定义了HTTP事务中的具体操作参数。
sqlmap -u “http://1.1.1.1/a.php?id=1” --headers="host:www.a.com\nUser-Agent:simida“

–method=GET/POST

指定GET/POST。有些服务器必须指定方法。

–proxy

设置代理。防止IP被封。(代理设置为tor)
sqlmap -u “http://1.1.1.1/a.php?id=1” --proxy=“http://127.0.0.1:8087” -f

–proxy-cred

–proxy-cred=“name:pass” 需要账号和密码的代理。

–ignore-proxy

忽略操作系统设置的代理(用于扫描本地网络)。

–randomize

长度类型与原始值保持一致类型的前提下,指定每次请求随机取值的参数名。
SQLMAP:3.SQLMAP-REQUEST(数据段、变量分隔符、cookie)
如上图,每次id取值都是随机的三位数。

–scope

过滤日志内容,通过正则表达式筛选扫描对象。只扫描满足正则表达式的网站。
注意:日志是相关软件生成的标准格式。一般是burpsuit。这个选项比较重要。
sqlmap -l burp.log --scope="(www)?.target.(com|net|org)“
sqlmap -l 2.log --scope="(19)?.168.20.(1|10|100)" --level 3 --dbs

–safe-url / --safe-freq

扫描会产生大量的失败请求,很可能被服务器销毁session(特别是身份认证的扫描,销毁了很可惜)。为了安全我们发送n次 --safe-freq 注入请求,发送m次正常请求。

–eval

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

场景;我们忘记某个网站的密码,加入这个网站通过给你注册邮箱发送一个链接来修改新密码,链接为
sqlmap -u “http://1.1.1.1/a.php?id=1&hash=c4ca4238a0b923820dcc509a6f75849b” ,且这个链接要求id=后接的是某人的邮箱,且hash=后面是这个邮箱的hash值!我们可以
sqlmap -u “http://1.1.1.1/a.php?id=1&hash=c4ca4238a0b923820dcc509a6f75849b” --eval=“import
hashlib;hash=hashlib.md5(id).hexdigest()”
这里自动用python把我们的邮箱换算成hash并赋值给hash变量,就可以不用手工每次去算。

一个实战

在搜索引擎搜索一个nurl包含 .php?id= 字符串的网站。(潜在有可能有SQL注入漏洞的)这里很重要
SQLMAP:3.SQLMAP-REQUEST(数据段、变量分隔符、cookie)
SQLMAP:3.SQLMAP-REQUEST(数据段、变量分隔符、cookie)
选一个网页进去。
SQLMAP:3.SQLMAP-REQUEST(数据段、变量分隔符、cookie)
用代理扫描。
SQLMAP:3.SQLMAP-REQUEST(数据段、变量分隔符、cookie)
扫描结果是有保护。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-05-10
  • 2021-04-09
  • 2021-05-19
  • 2021-09-22
猜你喜欢
  • 2021-12-02
  • 2022-01-11
  • 2022-12-23
  • 2022-12-23
  • 2021-10-05
相关资源
相似解决方案