探索数据库的特性bypass

TanSon   ·   发表于 2021-03-04 22:07:08   ·   技术文章

前言

我们在bypass waf时,因为waf有一些规则缺陷,例如说mysql的内联注释、还可以用到一些数据库的特性来bypass waf的缺陷。

探索

查询语句的五个位置:
SELECT * FROM news WHERE id=-1位置一union位置二select位置三 1,password位置四from位置五admin
通过以上语句的位置。我们来fuzz mysql的特性,来看看哪些字符可以代替空格。
首先是位置一,选中位置一,打开burp来进行跑包。


只这时候看到,位置一支持代替空格的字符有:%09、%0a、%0b、%0c、%0d、%20、%2e


接下来继续跑位置二,同样的方法跑,只是换个位置,如下图可以看到支持代替空格的字符有:%09、%0a、%0b、%0c、%0d、%20

位置三,这里看到代替空格的字符有很多,说明这里有多种绕过,如下图可以看到支持代替空格的字符有:%09、%0a、%0b、%0c、%0d、%20、%21、%2b、%2d、%40、%7e


位置四,如下图可以看到支持代替空格的字符有:%09、%0a、%0b、%0c、%0d、%20


最后一个位置了,我们看看支持的代替空格的字符多嘛?如下图可以看到支持代替空格的字符有:%09、%0a、%0b、%0c、%0d、%20、%60


了解这些特性之后,我们尝试bypss 安全狗,不过这里尝试union select 的时候被拦截了,我们尝试输入刚刚fuzz出来代替空格的字符。可以看到%00是不拦截的,waf认为mysql是不执行的,于是不拦截。


那么这时候是不是可以想到一个问题,如果开发不熟悉不同数据库的特性,那么其他类型的数据库是不是就可以绕过了呢。如下图可以看到oracle、mssql是可以正常查询数据,说明安全狗不了解各个数据库的特性,于是通过数据库特性进行bypass了。

实战绕过安全狗

前面我们知道数据库的特性,接下来我们来继续bypass waf,首先先来查询注入点在哪,用and 1=2语句时拦截,and 1也拦截,直接写and又不拦截,说明and后面出现字符时会拦截。


这时候我们可以使用其他函数like来进行判断注入点,可以看到like可以正常判断。

接下来继续判断字段数,order by 1时拦截,使用内联注释似乎也不可以,这时候GET无从下手时,可以转换传参进行尝试绕过,不同传参正则是不一样的。


转成post传参后,我们再尝试order by 1,发现拦截,orderby不拦截,


这时候尝试注释符来代替空格,看看是否绕过?可以很明显看到绕过了。


知道字段数后我们继续联合查询,发现union select拦截,unionselect也拦截,说明常规手段绕不过了


这里其实有多种绕过方法,例如协议绕过,或者是特殊字符编码绕过,这次就简单分享一下注释和随便几个字符的绕过。下图可以看到出现输出点了


尝试进行数据库的查询,这时候可以发现被拦截了


我们来看看拦截了什么?去掉括号不拦截,说明拦截括号


尝试使用注释符号代替空格,发现也拦截了


前面我们随便输入一些字符就绕过联合查询,那我们是不是也可以在注释里随便添加字符绕过呢?事实证明是可以的。成功查询到库名。


最后我们再尝试查询字段内容,可以看到被拦截了。


这里我们继续删掉一些字符,看看拦截了什么,admin删掉就不拦截了,那直接fromadmin呢,发现不拦截,那么这里只需要找出代替空格字符就可以绕过了,这里使用注释符,如下图可以看到,查询到数据了。

文末

本人只是简单介绍了数据库的特性,以上这些远远是不够的。只是简简单单提供了一个思路,仅作抛砖引玉之用,如果你有什么绕过想法,也可以评论告诉我。一篇水文写完告辞

用户名金币积分时间理由
l836918621 10.00 0 2021-03-11 17:05:32 一个受益终生的帖子~~
Track-聂风 200.00 0 2021-03-11 16:04:38 写的挺好的,顶!

打赏我,让我更有动力~

2 条回复   |  直到 2021-3-11 | 1072 次浏览

Track-聂风
发表于 2021-3-6

写的主要是一个思路,但是实际上的尝试和破解都还没有写入,我希望同学可以写出一个真的绕过方法和过程还有结果。这样老师可以给你打赏更多的金币

评论列表

  • 加载数据中...

编写评论内容

l836918621
发表于 2021-3-11

大佬nb!

评论列表

  • 加载数据中...

编写评论内容
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.