收集了一些利用Sqlmap作注入测试的TIPS,其中也包含一点绕WAF的技巧,便于你们集中查阅,欢迎接楼补充、分享。html
TIP1web
当咱们注射的时候,判断注入 sql
http://site/script?id=10
http://site/script?id=11-1 # 至关于 id=10
http://site/script?id=(select 10) # 至关于 id=10shell
http://site/script?id=10 and 1=1 #失败数据库
经过判断可发现and和or被过滤
http://site/script?id=10– # 失败
http://site/script?id=10;– #失败
http://site/script?id=10);– #失败
http://site/script?id=10)subquery;– #失败express
你能够用burp的intruder的字典跑,可是仍然失败。 服务器
这里能够用到SQL语句的case when …then … else … end语句
CASE WHEN语句在DB2,ORACLE,SQL SERVER系列,SYBASE等大型数据库都受到支持,是标准的SQL语句。
能够这样子理解:CASE… WHEN… THEN …ELSE …ENDcookie
CASE WHEN 语法有两种状况:
第一种是CASE 后面不带表达式的;post
CASE WHEN expression THEN 操做1
WHEN expression THEN 操做2
.......
ELSE 操做n
END
第二种是CASE 后面带表达式的(而此时WHEN 后面的则是该表达式可能的值),通用。测试
CASE expression
WHEN expression值1 THEN 操做1
WHEN expression值2 THEN 操做2
.......
ELSE 操做n
END
http://host/script?id=11-(case when 1=1 then 1 else 0 end)
用1=1跟1=2测试
http://host/script?id=10 # 当条件为真的时候
http://host/script?id=11 # 当条件为假的时候
能够很明显的看到返回不一样,而后能够判断注入。那么怎么能让sqlmap去识别呢?
Sqlmap默认是本身寻找注入点的,可是你加上一个*,能够引导他。
语句
sqlmap.py -u http://host/script?id=11-(case when 1=1星号 then 1)
注入最头痛的就是遇到过滤,sqlmap提供了字符转换的功能
“–tamper=between”固然本身能够改写转换内容,文件在/tamper目录下。
关于post注入 sqlmap能够用-r参数 加载数据包
sqlmap.py -r post.txt
继续补充一点: having xor等逻辑符号也能够判断注入。
TIP2
有两种方法来进行post注入,一种是使用--data
参数,将post的key和value用相似GET方式来提交。二是使用-r
参数,sqlmap读取用户抓到的POST请求包,来进行POST注入检测。
以前一直是加本地代理,而后用burpsuit来看sqlmap的payload,到如今才发现用-v
参数就能够实现。一直认为-v
实现的只是控制警告,debug信息级别。实际上使用-v 3
就能够显示注入的payload,4,5,6还能够显示HTTP请求,HTTP响应头和页面。
sqlmap能够测试google搜索结果中的sql注入,很强大的功能吧。使用方法是参数-g
。不过感受实际使用中这个用的仍是不多的。
在注入过程当中请求太频繁的话可能会被防火墙拦截,这时候--delay
参数就起做用了。能够设定两次HTTP请求间的延时。有的web程序会在屡次错误访问后屏蔽全部请求,这样就致使以后全部的测试没法进行,绕过这个策略可使用--safe-url
,每隔一段时间去访问一个正常的页面。
有些web服务器进行了url rewrite或者网站是伪静态的,没法直接提供测试参数,这样子可使用*
来代替要测试的参数。
当数据库支持,而且当前用户有权限的时候,能够执行系统命令,使用--os-cmd
或者--os-shell
, 具体的讲,当能够执行多语句的时候,会尝试用UDF(MySQL,PostgrepSQL)或者xp_cmdshell(MSSQL)来执行系统命令。不 能执行多语句时,仍然会尝试建立一个webshell来执行语句,这时候就须要web的绝对路径了。整体来讲,成功率偏低,不过我的也有成功的经验~
sqlmap使用--level
参数来进行不一样全面性的测试,默认为1,不一样的参数影响了使用哪些payload,2时会进行cookie注入检测,3时会进行useragent
检测。
TIP3