前言
(本文完成于2022年末,出于一些原因延后了一段时间发出来,有些部分不知道怎么修改合适,于是直接发出来了,望师傅们见谅)
2022告一段落,在这里先祝各位师傅新春快乐,在新的一年里技术更上一层楼。在2022年对我而言很有纪念价值的一件事就是2022年的360SRC年榜第五。然后前言这块,我个人的一些感慨就照搬朋友圈内容了:
“尘埃落定,最后喜提年榜第五,对我来说还是挺有纪念意义的,所以来一篇小作文纪念一下。
在我人生学习安全的过程中,我一直都很羡慕这些漏洞赏金猎人抑或漏洞报告平台中的佼佼者,从乌云到补天再到各大企业src,在我的水平还不是很高的时候,这些平台上的师傅对我而言如同难以逾越的高峰。我的萌新时期就是怀着这样的羡慕和憧憬之情度过的。
而一转眼,我就步入了大学生活,整个大一下学期和大二上学期我都因为疫情的原因闭门不出,这一年也是我技术进步最为迅猛的一年,有了技术的初始积累,我开始慢慢意识到自己有能力挑战腾讯、阿里、字节、百度、360这样比较大型的企业src。但是我确实底气不足,因为在此之前,我的企业src挖掘经验是不足的,很多东西都要从头学起,并且彼时已经是10月末,留给我的时间已经不多了,本着能挖一个是一个的态度,我正式开始了漏洞挖掘的道路。
接下来就是很多故事里老生常谈的‘踏出第一步’和‘野心’的故事了。当我提交的第一个中危被判定有效之后,我的内心催生出一股强大的冲动,后续挖洞的思路和效率都有了极大的改善。而在一开始我给自己定的目标是能上前一百、能挖到漏洞就好。挖着挖着觉得自己能挑战一下前五十,在过一段时间觉得前二十好像也就那么回事,再过一段时间觉得前十也挺简单,最后我甚至有希望冲击前三(不过很可惜,最后一个月师傅们上分太猛)。最后,我这样一个没有任何企业SRC挖掘经验的‘萌新’,用十月最后三天,十一月最后十天,十二月半个月的时间,成功进入360src 2022年榜前五。
所以勇敢的踏出第一步是很重要的,你会突然发现有些事情并没有自己一开始想象的那么难。适当的野心也是很重要的,固步自封和囿于现状确实会让人生缺少一些乐趣。
最后还是要感谢360src和北京奇虎科技有限公司能够给我这样一个平台来挑战自己,在这不足三个月的时光中,我收获良多。在多年以后,我仍会铭记这珍贵的一刻。
也终于有一个机会能和北京的师傅们面基,明年的线下颁奖,我们不见不散”
也有些师傅来问我,在我经验不足的情况下,是怎么用这么短的时间去实现冲击前五名的效果的。所以下面我就从各个角度来分析一下我的实现方法以及心路历程,希望能帮助到有需要的师傅们。
一些数据
在2022年最后3个月,我往漏洞平台提交了66个漏洞,其中有36个有效漏洞,30个被忽略的漏洞。
被忽略是个很有趣也是很经常碰到的问题,那我们就先从漏洞被忽略讲起吧。
首先我对我的被忽略漏洞简单统计了一下,其忽略原因占比大概为:
危害的确不足:30%
打歪了或者废弃资产:40% //其中打歪了以及废弃资产大概各占20%
漏洞重复:10% //甚至重复了一个中危和一个高危,极其蛋疼
其它:20%
/*其它就是那种比较难归类的原因,我举个例子,我比较喜欢用多个漏洞进行组合拳利用,最后实现一个很严重的效果,我的高危洞基本都是这种。然后我喜欢出一个洞然后马上写报告。平台的审核会帮我把这些报告合并打包起来,也就是说只看你最后能实现什么效果,过程中的漏洞利用链统一算成一个漏洞,这样比方说我用五个漏洞打了一个利用链,那最后只有一份报告是高危的有效报告(漏洞组合利用),其他四个都会被忽略*/
说完了被忽略的漏洞,我们再来说说有效漏洞里不同危害性的漏洞各自占比情况(大概):
低危:45%
中危:40%
高危:15%
当然,这里还是有必要展开说说每个危害程度下我都挖了哪些漏洞。师傅们可以有选择性的参考。在低危漏洞里,我挖的最多的其实是邮件轰炸、短信验证码轰炸、敏感信息泄露(以swagger-ui和druid泄露为主),当然也有些零零散散的比方说反射型XSS、边缘资产的弱口令以及后台漏洞等等。当然我拿分较多的还是在标红的部分。中危漏洞我的得分大头主要是存储型XSS、越权和逻辑问题、CSRF、盲SSRF,其中又以存储型XSS和逻辑问题偏多。而我的高危漏洞主要是以攻击链为主,组合多个功能点的不同漏洞,从而实现危害程度很高的利用。
列出上述数据,其实是为了我们下面的内容做铺垫。
挖洞前中期容易产生的一些心态和思想以及误区说明
这块地方我就以我自己为例,来说说我的一些心态和思想上的变化,同时分享一些需要注意的坑点和误区。
既然上面我们是以被忽略的漏洞起头的,那我们在心态这块也是从被忽略这块开始分享。首先我们就来讨论一下最常出现的,也就是所谓“危害不足”的情况,因为这种问题被忽略的话,有可能是确实这个点就没啥危害,审核人员一般会把为什么危害不足告诉你,如果他没说或者说的比较模糊,你可以尝试去追问一下,得到更细致的回复,然后你再回头看看自己的漏洞,看看能不能见招拆招的绕过or规避审核人员提到的原因然后再提交。总之这个靠的就是拉扯。当然如果你知道自己这个漏洞就危害性不大,想着能不能交上去忽悠一下审核,然后被人家忽略了,这种情况就不要想着去拉扯和争论了,不要浪费彼此的时间。
然后就来说说因为打歪了或者废弃资产而被忽略,这个也会非常难受。因为SRC讲究的其实就是一个信息搜集的广度,如果你搜集的太广,难免会打歪。但是搜集的资产不够,会很难出洞。这个确实也没什么好的解决办法,只能说假设你挖出了一个洞,然后你在写报告之前,最好要从多角度多因素的去确认这个出洞的资产和目标企业是不是有强关联,如果不是强关联,那被忽略确实也无可奈何。而至于废弃资产的问题,你在开始挖之前,就要好好的把目标SRC发的公告和说明全部读一遍,并且从自己搜集到的资产中及时剔除那些目标SRC已经不收的资产,还是那句话,不要浪费自己和审核的时间。
(比方说这种就是不收的历史业务,每个SRC肯定都会有,而且可能会不断更新,总之开挖前先看一遍)
而对于漏洞重复这种,就没啥好说的,也不要太气馁,只能说别的师傅比你动作更快、思路更清晰,或者是运气更好,这种就基本只能自认倒霉了。
接着再回到挖洞上,我就按照很多师傅问我问题的这个逻辑顺序来讲讲。很多萌新师傅,或者是从CTF转来想试试漏洞挖掘的师傅,在开始挖之前会面临的一个最大的问题就是——我该怎么开始?大部分人都是这么问的,包括我刚开始挖的时候也是这么问我师傅的。
一个SRC背后对应的资产数量极多,而且还在不断上新的资产,很容易就会把人吓蒙,不知从何入手。我这里给出我自己个人的一些建议
首先我们就不讨论信息搜集的情况,展开肯定不是这一个文本能讲完的。我们就假设你通过信息搜集得到了一份相对完备的资产列表。
从这里开始测试分两步,第一步就是自动测试,这个其实没什么好说的,主要就是捡漏,也别指望能出啥东西。你把搜集到的资产列表扔到nuclei以及AWVS里(AWVS可换成Xray或者别的),然后坐等就行,有可能可以捡漏,挖SRC就别指望用这种方法出什么成果,人家上线之前肯定用不同扫描器扫过无数次,你用的扫描器还不一定有别人的好。
然后就是重点的手动测试,手动测试可能遇到的资产类型,我用大白话分为了以下几种:
真403、404(不可视):由于服务器配置导致无法访问到内网,只有host碰撞一种破局方法
假403、404(不可视 or 可视):只是没有访问到对应文件,目录扫描如果扫到了还是有机会出可视界面的,扫到可视界面就用可视界面的方法来测,没有的话也只能测接口了
后台登陆页面(可视):、目录扫描出后台功能、分析JS出后台接口、越权登录、逻辑问题、登录前端校验(改返回包)、有密码找回功能则分析密码重置相关漏洞、涉及各种手机邮箱验证码的功能是否有问题(可爆破、无时效性、万能验证码、返回至前端等)、图形验证码是否有效(能否绕过)、有用户注册功能则分析用户可注册(用户注册功能)、登录框注入、框架和cms本身就有0day、密码爆破、密码喷洒(推荐先搞,就算不成功也能发现存活用户)都是破局点。核心思路是能进后台(上述给出的这些手法主要都是进后台的)或者是能调用后台功能点(JS分析接口即可)。总之就是多看请求包和返回包,来针对性测各种逻辑和越权问题。
有大量功能点的页面(可视):在以上三种情况的方法都适用的基础上,因为有大量不同的功能点,所以要多注意看http history来分析接口测试。核心思路百无禁忌,想测啥都行。主要是注意从功能点的角度去找漏洞。
手动测试顾名思义就是手动嗯挖,有1000个网站我们就嗯测1000个网站,有10000个网站就嗯测10000个网站,别怕肝,挖SRC靠的就是肝。然后这里再说一些可能会遇到的误区。
首先是有很多师傅喜欢盯着后台登陆页面去测,这种是肯定不行的,大型SRC对于登陆页面的防护肯定都是严防死守,有他们内部的一套经验总结。再加上一帮师傅挖了这么久了,说实话很多后台登陆页面确实很“硬”了,不过这种一但出洞基本都是危害程度比较高的。
其次就是,有些403、404的网站,并不是真的没有东西,有可能只是你没访问到对应的资源,这种时候要靠目录扫描破局,当然我们得把那种可视的站点测完了之后,再来考虑测这些403、404的站点。
然后就是要怎么去测的问题,这也是很多师傅头疼的,原因也很简单,功能点太多不知道从何下手了,然后就开始来问我要不要用什么扫描器之类的。这种问题其实靠两种思想就可以解决,第一种就是从功能点去思考。第二种就是从参数名和传参形式去思考。什么意思呢,比方说我有一个远程加载图片的功能点,那无疑问就是去测SSRF呗。或者说我们抓包看到某个数据包的参数名是url=http://192.168.1.10/1.jpg,那也是测SSRF呗。总之,这么多功能点,先不要心慌(应该高兴才对),好好的去想一下每个你能调用的功能点,可能会存在什么潜在的问题。然后进行任何操作的时候多抓包分析、多看看http history,其中说不定就有一些一看就很敏感的参数名和参数值。我们就对应的去测。
当然手动测试完全不用工具也是不行的,我比方说如果从功能点的视角去看SQL注入,只要能和数据库交互的功能点,就有可能产生SQL注入,那岂不是整个网站的绝大部分功能都可能注入?事实也确实如此,所以某些特殊漏洞,我们是需要用工具的被动扫描来辅助测试的,否则费时费力而且效果还不好,SQL注入就是这种典型。所以我在分析功能点的时候也经常用Xray的被动扫描和burp联动,来辅助发现SQL注入,总之用不用扫描器,用主动还是被动是需要具体情况具体分析的。
在挖洞的前期,信心真的是非常非常重要的,有些师傅可能屡战屡败,然后看到海量的资产,还没开始挖就已经想润了,根本无心去搞手动挖掘。我的评价是,可以先找一个看起来比较容易有洞的“软柿子”资产,从这个资产开始手动挖掘之旅,就先对着一个看起来比较“软柿子”的资产使出自己的浑身解数(我记得我第一个洞就是一个毫无技术含量的druid未授权,目录扫描就能出),当你在企业SRC挖到第一个洞,哪怕它是低危,真的会大大提振自己的信心,有了信心之后前期挖洞真的会感觉到明显的不同,就像是点了征服者或者致命节奏一样疯狂出洞,状态越来越好,用言语难以形容这种感觉,需要亲身体会。所以在开始挖洞的前期,刚接触SRC挖掘的师傅,可以先尝试找一些低危漏洞,我首推短信轰炸、邮箱轰炸、swagger-ui泄露、反射型XSS此类,主要是建立开局的信心!不要一上来就抱有太高的期望,否则容易打击自信,先从简单的慢慢来!
还有一些师傅喜欢问的问题就是应该选哪家企业SRC开始挖?要选大型企业SRC还是小型企业SRC?我这里也总结一下他们分别的优缺点
大型企业SRC
优点:
①奖金丰厚
②出洞成就感高,业内认可度高
③审核速度更快
④有大量资产,能遇到多种不同业务种类,有助于加深对漏洞的理解
缺点:
①难,需要的技术力要更高
总结:适合喜欢挑战自己、对自己技术水平有信心的师傅,或者是挖洞就为了赚钱的师傅。代表有腾讯系SRC、阿里系SRC、字节SRC、百度SRC、360SRC等
小型企业SRC
优点:
①难度适中或者简单
②可以帮助完成前期的经验积累(简单来说就是练级)
③有助于提高信心
缺点:
①奖金不多,甚至可能没有奖金
②人手不足导致漏洞审核效率很低,有些审核人员甚至不一定能理解你提交的洞
③业内认可度不够高,写简历上别人还不一定知道
总结:适合刚刚接触SRC挖掘,对自己技术水平不够自信的师傅。或者是单纯的想慢慢磨练自己的技术力的师傅。代表不举例(免得得罪人:))
还有一些适合磨练技术的好去处,可以尝试找一些简单的众测项目,大部分漏洞平台都有这种众测服务,我也不举例了,总之可以在过渡阶段积累技术和经验
挖洞后期容易产生的一些心态和思想以及误区说明
前面我们说了前中期的一些东西,我们说到了信心。然后接着我们就来说说挖了一段时间之后容易产生的一些问题。
首先就是,信心充沛这种新手福利期是有失效时间的,挖洞到后期,随着漏洞被忽略、漏洞被降级、与审核拉扯等情况的增多,热情和信心确实比刚开始出货的时候要消散不少。而且这其实不是最严重的问题,最严重的问题其实是——“资产挖完了”。
没错,刚开始的时候你可能会觉得几千个资产实在太多,不知道什么时候能挖完。可是当你逐渐进入状态之后,可能一天要几百个资产,并且乐在其中。在这种状态下,你开始搜集的资产真的很快就会测完,这时候容易进入一种自闭状态,不知道要咋搞资产。
这种情况我也有自己的一点心得。首先对付这种情况最好使的方法就是换一种测绘引擎。比方说你一开始搜集用的是fofa,测完之后你可以再用hunter、quake、0zone等引擎继续去搜集资产,每家引擎用的搜集算法不同,结果也会有不同,这点不仅是SRC挖掘,渗透测试和红队打点也要注意这个,当搜集到的资产不足的时候,可以综合多个引擎来搜集资产。
其次就是要学会回看自己曾经挖过的资产,这个我感触极深,我前面说过,我第一个洞是druid未授权,过一段时间后,我又在相同的这个站点发现了一处逻辑问题,在年末我又在这里发现了存储型XSS。我只能说,挖掘漏洞的过程本身也是技术进步和心态进步的过程。当你技术更上一层楼之后,面对相同的资产或许会有更广的视野、更骚的姿势、更多的绕过和利用手法,这时候又能发现新的漏洞。所以隔一段时间回看自己曾经挖过的资产是挺重要的,颇有一种“常看常新”的感觉。
然后,自己挖过的洞,等平台修复了,可以去尝试能不能绕过,这种也可以继续去赚分,我师傅和我讲过一个故事,一个SSRF被连续绕了三次,每次都没修复完全,被人薅了一堆money。
最后就是要学会去找新的资产,目标企业肯定会不断有新业务上线,你得掌握一些他们的信息渠道,比如关注他们的微信公众号、自媒体、官网来持续发现那些新的资产。这个能力我也比较欠缺,就不展开说了。
后记
上述就是我对于企业SRC挖掘的一些浅薄的个人理解,希望能帮助到有需要的师傅。大概总结一下有几个因素:踏出手动挖掘的第一步、开局以发现低危中危为目标,高危严重靠随缘、注意和审核的交涉、保持良好的心态。其实技术上的问题相对来说是没那么关键的,SRC挖掘除非你是想拿大型企业SRC前三,否则技术因素能造成的影响还真不如心态因素的大。这篇文章主要是想记录一下我在安全学习研究路上的重要历程,同时也是帮助那些和我有着类似问题的师傅尽快走出心态上的误区。希望各位师傅早日上分!
推荐阅读:
记一次赏金10000美金的漏洞挖掘(从.git泄露到RCE)
原创投稿作者:[email protected]