记授权对某站点的一次Bypass SQL注入
*严正声明:本文仅限于技术讨论与分享,严禁用于非法途径。
一、开局
先拿到一个站点,这里假设是http://110.120.119.911/dashboard,大致浏览一下没啥,小手那么一动,http://110.120.119.911,嗯,开局就是这么一个目录遍历。直接开始一个个访问的龟速运动。
二、发现注入点
十分钟后把这些文件全部扒拉了一遍,并没有出现想象中的用户信息泄露(tui,连小姐姐照片都没有)。无奈开始翻起了刚刚龟速运动过程中存下来的php站点,一顿跑马观花后把目标锁定在了这个具有搜索功能的页面,随手打了个1
再来个1'
好家伙不多说,上神器!(因为是post传参所以直接抓包copy到txt文本中sqlmap -r跑)
嗯,没跑出来(跑出来也就不会有这篇文章了)
三、Bypass过程
回到最初的起点,打一发1'--+
emm这咋就不顶用了呢,反手又打了一发1'%23不行,1%27%23不行,又试了一下1'#
好家伙合着我还给你整复杂了。接着考虑到这里是盲注,加之前面在浏览目标时发现这是一个用xampp搭建的站点(Apache+MySQL+PHP+PERL)先不order by,直接一个union select sleep(2)那不妥妥的~~~直接给转不出来了
阿这,居然有WAF?小小WAF,可笑可笑(你看我一点都不在怕的样子)
这里充分发挥遇到waf我不慌,诶,就是绕的精神,挨着测,看到底是匹配到哪个字段触发了防护规则,1'union+没问题,1'union+select+被断掉了,紧接着union+selec,嗯没问题,看来就是匹配了select
那么这里大小写加<>,union+Sele<>cT打过去直接被断掉了,union+/*!Selec<>t*/又被断掉了, /*!50000UniON SeLeCt*/、/*!u%6eion*/ /*!se%6cect*/
啪的一下很快啊,统统都被拦下了,emmmm
回过头来,单独试了一下select,union select,页面是正常的
1'union select,页面是转不出来的,我陷入了沉思。。。
莫非是匹配整句1'+union+select?中间加空格是不顶用了,那我在中间加个字符串混淆一下呢?
要知道,MySQL数据库支持两种集合操作:UNION DISTINCT和UNION ALL,union其实是相当于 union distinct的。
那么在此基础上,我反手就打出一发1'union+distinct+select+sleep(2)#
emm难道是我猜错了。。。直接把sleep函数去掉,发现正常报错
看来是函数的锅了,这里直接一个sleep%23%oa(3)打出去
(其实在此之前尝试过/*!sleep(1)*/然后还试了一下参数污染多加了几个+尝试协议未覆盖bypass+尝试垃圾字符绕过后统统都不行。)然后
这个故事告诉我们,遇到waf不要慌,只要思想不滑坡,办法总比困难多(大概)
望师傅们看完能有一点小小的收获~
————————