4:测试sql注入规则绕过的时候,一般都会先去测试 []select[][]from[]这个点的规则
经过大量的反复的测试,得到如下的结果:除开%a0以外,基本上在安全狗的环境下:上面方括号代表位置1-4
1):位置1允许a-z,A-Z以及_和数字
2):位置2允许a-z,A-Z以及_和数字
3):位置3允许a-z,A-Z以及_
4):位置4允许a-z,A-Z以及_和数字
5:知晓各个点的过滤情况之后接下来就是翻阅资料,翻阅到之前的那个精华帖子
里面使用了一个字符引起了注意:
这里\N的字符能用在union这,能不能用在\Nfrom前面,如果能用在from前面可能就能够绕过select from的检测
6:在mysql console下进行测试发现:
7:因此这里我们便可以使用这样的payload绕过select from的检测
8:目的是要能绕过安全狗防护爆出数据,本来以为可以直接就爆出数据,但是在测试的过程中又发现了一些问题。
分析:
由于数据读取的时候,会用到如下的语句
select schema_name from information_schema.schemata limit 1
又由于要绕过select from的限制,因此就要使用select 1,\N的形式。而这里报错貌似要求只能有一列的返回结果,但是由于引入了\N符号,必须要有两列。
9:之前有作过如下的测试:
可以看出两列也是可以做大小判断的,因此至少可以试试盲注。
10:第一个schema_name的长度是18,结果为真的时候显示了数据库记录
11:结果为假的时候显示为空
可以盲住。
12:接下来来看看如何进行报错的注入,发现有如下记录:
里面提到了
13:这个报错有限制,提示是mysql5.5版本以上才能使用,既然如此试试
应该是两边长度不一样,既然这样粗暴点直接给补齐再试试: