0x01 前言
挖CNVD证书是在准备出去实习的时候,想着挖个CNVD证书丰富一下自己的简历,再到后来挖CNVD证书完全是因为众测实在是太卷了,出洞率低,重洞率高,导致自己经常挖完众测之后就emo,然后去挖CNVD找一些存在感。很多师傅感觉挖CNVD证书很难,要挖掘0day出来。确实,要挖0day,听起来确实是挺困难的,但是挖CNVD证书不像是众测有限定的资产,互联网上存在的系统数不胜数,我们只需要利用一些小技巧,找到满足发放证书的系统,然后在这里面去寻找相对薄弱的系统来进行挖掘,这样相对来说挖掘到证书的概率还是相对来说大上不少的。到写文章为止,除去还有几份未审核完的报告,我自己是存在4张CNVD证书的。在证书挖掘过程中,自己并未太刻意深入的去挖掘,非要说刻意去干的一件事还是在寻找CNVD证书发放条件的资产上。以下就总结一下自己挖掘CNVD证书的小技巧,希望对小伙伴们以后挖掘CNVD证书有所帮助。
0x02 概览
大致画了个思维导图(感觉不清楚的,可以私我发原图给你)
0x03 证书获取条件
条件一:通用漏洞(网上没有记录—0day)
条件二:公司注册资金超过5000万
条件三:所提交漏洞获得中危及中危以上评分
条件四:互联网可复现案例需要三例(建议多放几例,防止审核过程中存在案例失效,我一般放10)
or
事件型漏洞必须是三大运营商(移动、联通、电信)的中高危漏洞,或者党政机关、重要行业单位、科研院所、重要企事业单位(如:中央国有大型企业、部委直属事业单位等)的高危事件型漏洞才会颁发原创漏洞证书
0x04 白盒挖掘
自己最初挖CNVD的时候是采用白盒的方式来挖取的,什么是白盒,就是找一些开源的系统,直接去审计代码,但是慢慢我在尝试挖掘的过程中发现一件尴尬的事。遇到小型的系统(厂商),挖掘出来漏洞,但是不满足证书发放的条件。遇到中型的系统(厂商),会碰到一些扯皮的厂商,说是开源项目,不在管辖范围中之内(翻译一下就是你们用的我开源的产品,没收你们钱,出了问题是你们自己的事)
哎,格局呢。遇到大型的系统(厂商),其对代码审计的能力要求比较高,所以比较难审计出洞,所以慢慢的后面我就改变思路改为黑盒挖去了。那为什么还要写白盒挖取这个,是因为有一些代码审计能力比较强的师傅,可以考虑一下这种挖掘方式,毕竟白盒的挖掘方式比黑盒更容易出洞。
0x05 黑盒挖掘
主要还是写写黑盒挖掘,自己的证书也全是黑盒挖掘过来的。那在挖掘CNVD证书的过程中,我认为最重要的一部分还是在选择挖掘目标上面。那怎么样去寻找满足发放证书条件的目标呢,以下有三个方法。
① 利用空间测绘寻找
② 利用脚本寻找
③ 在CNVD官网寻找
首先来讲讲第一个方法:利用空间测绘,这里以fofa为例
我们可以搜索一些常见的系统可能使用的名称,比如说”管理系统”、”登录系统”、”某某平台”等等
还可以利用组合语法如一些常见登录系统会使用到的一些js文件,css文件等去进行寻找,比如
然后找到这些系统之后,看看归属于哪个公司,判断其归属于哪个公司,最好用的方法就是,在这种技术支持上去看是属于哪个公司
当然也有一些系统是没有这种技术支持的,这个时候我们就需要一些其他的方法去判断其归属于哪个公司,有源代码中有注释的,有进后台发现某某公司开发的,反正找归属是个细心活,没有太多的技巧。找到归属于哪一个公司之后的话,我们就可以利用爱企查等查企业信息等网址对该公司做一个查询,看看其注册资产
注册资产超过5000万,这套系统就满足发放证书的基本条件了,我们就可以进行一个挖掘,假如没超过5000万,我们就不用进行挖掘了,因为即使是挖到了洞,也不满足发放证书的条件。本人自己在最初挖掘CNVD证书的时候就是利用空间测绘这种方法,找满足条件的系统,然后进行挖掘。自己第一次挖掘CNVD的时候也是利用这种方法,也是有幸挖掘到一个Elastic的一个0day,然后申请了如下证书。
这种寻找目标的劣势也很明显,第一就是寻找系统不够精准(需要手动去确定目标是否满足发放证书条件),第二就是需要我们去确定该套系统属于哪一个厂商。就如上两个问题就会浪费大量的时间,导致效率非常的低,所以不是很推荐这种寻找目标的方法。
第二个方法:在CNVD官网寻找
这也是我自己使用最多的一个方法,怎么利用CNVD官网去寻找目标呢,首先来到CNVD官网。
在漏洞列表处,可以看到以往发生的安全漏洞,然后我自己比较喜欢寻找WEB应用的系统,所以我会选择一个WEB应用分类,当然师傅们也可以更具自己擅长挖掘的东西来进行选择。
可以看到其会报道处某某公司的某某系统存在某某漏洞
比如这里有个某某公司,那我们就可以利用爱企查去查询一下这个公司的注册资产,如果超过5000万,满足发放证书条件,那我们就可以根据这个提示去试着寻找一下这个系统,找到之后呢,我们可以利用我们平常的测试手段,尽量模仿打一下CNVD官网所通报出来的漏洞,据我打过多个的经验来看,大多数都是能打到的,找到漏洞点进行漏洞复现的。当然测试到了漏洞点,你可以尝试提交一下,不过百分之99的概率是重复的,既然重复为什么还要在这寻找目标呢。
① 其实这个系统爆出一个漏洞,其实在某种程度上,其系统的安全性就与其他相比来说较低的,那我们就可以对这个系统进行一个详细的测试,细心一点测试的话,你就会收获到一些惊喜。
② 有些系统我们测试一下弱口令,假如我们测试出来弱口令(web应用系统的弱口令CNVD是不收录的),我们可以进入后台再进行一个深度挖掘。
③ 假如CNVD爆出的是某某可以getshell的漏洞,我们可以尝试复现,假如复现成功的话,我们可以把源代码打包备份一份出来,进行一个黑盒加白盒的深度测试。
其上三个方法呢,由前到后提交漏洞重复的概率会依次降低。在发现存在某个漏洞后,我们还可以去寻找该公司的其他系统,看看该公司其他公司是否也存在该种类型的漏洞(因为一个公司不同的系统很有可能是一个开发团队写出来的,一个系统存在问题,那么其开发的另一个系统也很大概率存在该问题),那么怎么寻找该公司的其他问题呢。我们利用爱企查查询一个企业过后,我们可以来到知识产权,然后点击软件著作权信息。
这里就可以寻找一些该公司开发的其他公司系统信息
运气好碰到类似的系统的话,就可以开心地把一份报告变成两份报告,拿两份证书。
0x06 挖掘思路
掌握了收集资产的方法,接下来需要的就是一定的挖掘技巧,在挖CNVD的过程中也存在一些经常挖到的漏洞种类和一些小小的挖掘技巧。
① 大型框架导致的漏洞(如log4j2,shiro身份绕过等等)
大型框架导致的0day,特别是最新爆发的核弹级漏洞log4j2,在平常的测试过程中可以注意一下这种框架漏洞。(log4j2证书鉴赏)
② 目录扫描、源代码、js文件、修改请求返回状态码探针后台地址挖掘未授权漏洞
自己在挖掘这些系统的时候,经常可以挖掘都未授权访问漏洞,挖掘未授权的方法,我们可以使用目录扫描,在源代码中、js文件中查看一些后台的url,还可以通过修改请求的状态码如把0改为1,false改为true等让系统跳转后台地址等。
③ 通过弱口令进入后台挖掘
前台的功能点功能较少,假如某个系统存在弱口令,我们就可以进入后台,扩大我们的攻击面
④ 设备弱口令漏洞
虽然CNVD已经不收录WEB应用的弱口令的通用洞了,但是一些设备的弱口令漏洞其还是正常收录的。当然设备弱口令你挖掘到非常简单,但是你想挖掘到没有重复的那也是相当的卷,所以你想通过挖掘设备弱口令来获取证书的话,你就要去时刻关注这些设备厂商的动态,在其发布新设备的第一时间就去测试该新设备的弱口令,然后用上你最快的手速写好报告,提交报告,然后坐等证书。
⑤ RCE打包源码进行代码审计
当你RCE一个系统的时候,你可以把该系统的源代码打包一份出来,然后通过白盒的方式去审核源代码,进一步扩大战果。
0x07 结尾
大概挖掘思路就是这些,当然可能还有一些没有想到的没有写上来,以后想起来的单独写写。
最后祝大家证书满满。