0x01:前言
大家好我是米斯特团队的一员,我的id香瓜,我们团队在这次i春秋第二次漏洞挖掘大赛中,包揽了前五名,我key表哥一不小心拿了一个第一,导致很多人来加他好友问他,如何修炼漏洞挖掘能力,我今天帮大家解答一下这个疑问,哈哈哈。
漏洞挖掘是安全圈的一个核心之一,但是随着各大厂商安全意识的增强,以及各类waf的出现。一些像sql注入,文件上传,命令执行这些漏洞也不是那么好挖了。而面对大的厂商,就像各种src,资产丰富,业务庞大,对于刚刚学完基础开始着手漏洞挖掘的小白来说,拿到手后,就显得有些迷茫(就比如我)。
但我是幸运的,我很前段时间加入了米斯特安全团队,在团队表哥的帮助和指导下,我开始不断学习,不断看漏洞详情,逐渐开始有了一些小的思路,而不像一开始那样迷茫。这里再次感谢米斯特的所有人,希望团队可以走的更远。米斯特万岁!
这篇文章是我最近的漏洞挖掘思路的一个总结,分两个部分,一,漏洞挖掘类型总结,二、个人提高漏洞挖掘能力的方法。适合给迷途中的小白指路。希望大家多多支持。也欢迎大家来分享补充你们的漏洞案例。
0x02: 漏洞挖掘类型总结
如果你刚刚好是一个刚刚学完基础的小白,如果你刚刚好没有参加各种培训,完全自学。那么你的漏洞清单可能是这样的。
暴力破解漏洞
sql注入漏洞
命令执行漏洞
xss漏洞(跨站脚本)
csrf漏洞(跨站伪造请求)
xxe漏洞
文件上传漏洞
文件包含漏洞
各cms的公开漏洞
没错差不多就是这样的。当然也有可能一些没用写到,因人而异。
如果你有幸看到一个大佬的漏洞清单。那么有可能除了上面那些,还多了下面这几项
逻辑漏洞
ssrf漏洞
信息泄露
js文件可能存在的未授权访问
组合漏洞
……
然而这些也只是一部分,不过我不是大佬,不过欢迎大佬补存,下面我就单讲一下我补充的几种漏洞类型吧。
0x03: 漏洞类型详解
正式开始前插一条,我之前对漏洞的定义有一点点误解,以为只有上面列表上的才是漏洞,其实不然,只要可以给厂商带来损失的全都是漏洞。逻辑漏洞也是基于这条。回顾一下自己的挖掘过程,其实漏掉了很多。
逻辑漏洞
逻辑漏洞也是一个经久不衰的话题,不过逻辑漏洞并不像前面几种漏洞,可以用扫描器去扫,逻辑漏洞目前,据我所知是没有一个扫描器可以敢说自己能扫到逻辑漏洞的。或许有的厂家敢说自己没有一个sql注入,但是没人敢说自己没有逻辑漏洞(我想也没有厂家敢说自己没有sql注入吧,哈哈哈)。而且,由于现在waf,和防火墙的逐渐完善,sql注入,上传等漏洞,也越来越难以查找和利用,而逻辑漏洞则不存在这种问题。
何为逻辑漏洞,就是由于开发者在开发过程中,由于代码逻辑不严,而造成的一系列可以被攻击者加以恶意利用的漏洞。而逻辑漏洞也是一类漏洞的总称。最常见的逻辑漏洞可以分为以下类型
验证码爆破
支付漏洞
注册/忘记密码处逻辑漏洞
越权
……
举个例子最为常见的就是以低价购买任意价格的东西的支付漏洞,或者找回密码流程控制不严格,导致的可以修改任意用户的登陆密码,还有越权,越权查看他人订单,越权查看他人个人信息等等。
当然这只是一部分,我这里也只是一个引子,具体漏洞的原理以及介绍大家可以去自行搜索关键字,有很多大佬的文章就写得比较好,不然我这篇文章就要写个几十页了。一些漏洞详情大家可以去看乌云。
信息泄露
信息泄露漏洞顾名思义就是信息泄露,信息泄露也分好多种,如。
源码泄露
用户信息泄露
员工信息泄露
等等
对于源码泄露,大家可以去github上找,很多程序员会把源码开放在github上,甚至有的人用户名密码都不改的,数据库连接密码啊直接存在源码中,当然想我这种菜鸡找到这种源码泄露就直接提交了,有能力的大佬,直接就是一波审计,然后嘿嘿嘿。而对于员工信息泄露,可以在收集信息的时候收集账号,然后放在社工库跑跑,或者记录下来账号用来爆破。
组合漏洞
组合漏洞是一个可以吧低危漏洞变成高危漏洞的一个神奇的东西。比如你找到一个xss漏洞和一个csrf漏洞,如果两个漏洞单独提交,或许是两个低危,或许是两个忽略。但是如果你把你的xss和csrf组合起来就有可能变成一个高危漏洞,打组合拳,key师傅组合拳打的很厉害,向师傅看齐,key师傅给我说,挖到低危不要着急提交,存起来,万一某一天碰见一另一个漏洞,组合一下,就可以一发入魂了。
说个小技巧,如果你想要详细的漏洞列表,可以去多收集几家src的漏洞说明手册,然后去重,就是一份完美的漏洞列表。
0x04:个人提高漏洞挖掘能力的方法
这一节讲一下挖掘漏洞应该如何提高和应该有哪些好的习惯。
细心
耐心
会看
会记
懂收集
勤动手
爱学习
细心
细心放在第一位,是因为细心真的是非常非常非常重要,我有幸请教过很多大佬成功的秘籍,他们告诉我的第一个词语就是细心,正所谓心细则挖天下。很多漏洞都是需要细心才可以发现,不放过数据包中的任何一个参数,不放过网站的任意一个点,我曾问过团队的小石师傅,如何挖掘那些很多人都挖过的src,这么多人都挖过,一些功能点我还要在测一遍吗。小石师傅并没有给我直接回答,而是讲了他一个漏洞的挖掘经历,那是挖美团的时候,小石师傅直接主站开始挖,并且在个人资料一个很明显的地方,挖到了一个储存xss的高危漏洞。所以,在我们进行漏洞挖掘的时候,不要放弃任何一个可能存在漏洞的地方,每个人都有不同的挖掘方式,网站这么大,总会有几个漏测的地方,并且一个漏洞修复了,谁敢保证,修复完了,就不能再修一个漏洞出来了呢。
耐心
耐心同细心一样,可以说是一对cp。如果你本身就足够信心,那么我想你的耐心也不会差。如果说细心是你漏洞挖掘的利剑,那么耐心就是你的磨刀石,很多时候,碰到一个破站盯几天才能挖到一个漏洞,你坚持下来了就是胜利者,有人说挖洞,也是个运气活,运气好了随随便便就是几个高危,运气不好,几天也挖不到一个。虽然有一定的道理,但是当你的能力足够强,有了自己的套路,想挖漏洞还是轻松加愉快。
会看、会记
会看,会记。这个就简单了,就是要多看多记,多看漏洞详情,多看技术文章,漏洞详情可以在乌云看,还有网上很多人分享的案例,主要是乌云。看完就要记,要让你看的东西真正的成为你的东西,如果你面对一个厂商,还是有无从下手的感觉,就去乌云看漏洞详情,一个一个看,然后把漏洞出现的位置,以及使用的一些技巧记下来,成为属于自己的漏洞挖掘手册,这也是我最近在做的一个事情。还有一些好的文章,好的技巧,或许你一时半会也用不到,但是你要学会记,总有用到的一天。
懂收集
key师傅说过,漏洞挖掘说白了就是一个fuzz的过程,而fuzz最关键的是什么,就是一本高效的字典,没错我们要学会收集字典,想公开的字典有fuzzdb,是一个非常好的fuzz字典合集,当然我们在收集他人字典的同时我们也要自己收集字典,曾经看到一个大佬,搜集了github大量的开发项目的路径,然后组成字典。我也不要求小白可以写程序然后自动收集字典,但是,我们在平时的漏洞挖掘过程中,遇到的一些东西还是要多多的去收集一下,逐步慢慢的形成自己的一本专用字典,绝对可以提高你的漏洞挖掘效率。当你有一本自己收集的字典时,相信你也成为一名大佬了。
勤动手
当你看了大量漏洞,记了大量笔记,这个时候,我相信你最需要的,就是实战,实战是可以把所学所看融会贯通的最快方法,没有之一,只有实战可以锻炼自己的挖洞能力,和效率。看到新的漏洞多去搭建环境复现,这也是对能力的一种提升。
爱学习
学习,学无止境,又是我key师傅说过,知识面有多广,决定了你可以挖多少漏洞,多学习,至于学什么呢,学js,学代码审计,学开发,学json,等等等等,有的时候真的感觉,你要成为一个开发人员,了解详细的信息传输和交换原理,才可以挖到更加深入的漏洞。如果有一天你感觉挖不到漏洞了,不如放下手头的一切去学习吧,小伙子。
0x05:总结
此篇文章献给,和我一样迷茫的小伙伴,希望大家可以越走越远。最后给你们一个建议,加一个好团队,学习氛围也很重要的。