0x00 唠嗑环节:好久不见,甚是想念!
各位老铁们,好久没更新文章了,实在是年底年初忙成狗,外加本人又懒癌晚期,一直拖到现在。今天咱就来一波实战,保证让你们看完直呼过瘾!
说实话,现在SQL注入这玩意儿,真不多见了,尤其是在那些家大业大的公司里,核心产品更是少之又少。这可是我摸爬滚打一年多,才逮到的第一个SQL注入漏洞,最后还被评了个“严重”,想想都刺激!
0x01 漏洞是怎么被“钓”出来的?
这次发现漏洞的过程是这样的:我在“盘”某Android APP的源码时,秉承着“雁过拔毛”的精神,全局搜索排序字段,看看有没有哪个查询接口的排序条件是可以通过参数控制的,比如像order_by、sort_by、sort这种关键词。
皇天不负有心人,还真让我找到了几个接口,它们都带了个sortBy参数,如下图所示:
既然如此,那就别客气了,直接开搞!先拿单引号祭天,看看能不能注入,结果发现服务器直接报错,提示“服务器异常”。
这就有意思了,要么是服务端做了过滤,把特殊字符给ban了,要么就是注入成功了,但是执行的时候出了岔子。不过不管怎么说,至少能说明一件事:就算这里真的存在SQL注入点,那也是个“哑巴”,没回显!
既然没回显,那就换个思路。我尝试注入rand()函数,看看能不能让接口返回数据,如果能返回,就观察一下返回数据的顺序有没有变化。
于是,我把查询条件改成了orderBy=rand(),结果发现数据正常返回,而且多次查询之后,顺序还真的变了!这简直就是天大的好消息,说明注入点是妥妥地存在,而且还具备了盲注的先决条件。
0x02 盲人摸象:SQL盲注大作战
既然有了盲注的条件,那就继续深入。我们可以通过rand(1=1)和rand(1=2),来让接口返回两种不同顺序的数据,然后就可以利用排序的差异,来进行布尔盲注了。
从上图可以看到,当排序条件为true和false时,第一条数据的id是不一样的。
接下来,我用下面这个布尔盲注的payload,来爆破数据库名称:
rand(ascii(substr(database(),1,1))>65)
这个payload的原理很简单:先用database()函数获取数据库名称,然后截取它的第一个字符,判断它的ASCII码是不是大于65(也就是大写字母A)。如果大于65,就说明数据库名称的第一个字符不是A,这个表达式会返回true,然后我们就可以继续遍历,直到表达式返回false为止,这时候就找到了数据库名称的第一个字符。而判断表达式结果是true还是false,就看接口返回的列表顺序。
0x03 见招拆招:WAF绕过小技巧
正当我准备一鼓作气,拿下数据库的时候,却发现服务端竟然有WAF,直接把我的参数给拦截了!不过还好,这个WAF的规则并不是很严格,经过我多次“调戏”之后,发现它会把逗号给过滤掉。
既然如此,那就用空格来代替逗号,照样可以绕过WAF。最终,盲注库名的payload如下:
rand(ascii(substr(database() from 1 for 1))>114)
url编码后如下:
rand%28ascii%28substr%28database%28%29%20from%201%20for%201%29%29%3E114%29
有了这个完整的payload,就可以用Python写个简单的脚本,来完成数据库名称的爆破工作了。这部分比较简单,我就不多说了。
0x04 总结:挖洞,心态很重要!
其实后面的盲注和绕WAF都比较简单,没什么太多的技术含量。最关键的,还是找到注入点。你要知道哪些地方可能存在注入点,然后去不断地尝试,并且不要放过任何一个可疑的接口。
我当时在搜索的时候,其实有很多接口都带了这个可疑的参数,但是最后只有这一个接口存在漏洞。如果我只尝试了其中一个就放弃了,那这个漏洞也就跟我擦肩而过了。
黑客/网络安全学习包
资料目录
-
成长路线图&学习规划
-
配套视频教程
-
SRC&黑客文籍
-
护网行动资料
-
黑客必读书单
-
面试题合集
282G《网络安全/黑客技术入门学习大礼包》,可以扫描下方二维码免费领取!
1.成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
2.视频教程
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。
3.SRC&黑客文籍
大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录
SRC技术文籍:
黑客资料由于是敏感资源,这里不能直接展示哦!
4.护网行动资料
其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!
5.黑客必读书单
6.面试题合集
当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。
更多内容为防止和谐,可以扫描获取~
朋友们需要全套共282G的《网络安全/黑客技术入门学习大礼包》,可以扫描下方二维码免费领取!