CNVD漏洞和证书挖掘经验总结
前言
本篇文章主要是分享一下本人挖掘CVND漏洞碰到的一些问题,根据过往成功归档的漏洞和未归档的漏洞总结出的经验,也确实给审核的大佬们添了很多麻烦(主要真的没人教一下,闷着头尝试犯了好很多错误,希望各位以后交一个通过一个。当然,也一定要注意测试资产的范围、尺度和授权问题)
首先是大家关注的肯定都是CNVD漏洞的收录和证书颁发的标准,这个其实在我加入到CNVD官方交流群后通过大佬们的交流发现这个规则在近几年是一直在一步步完善的,我这里只能大概说一下最近的标准,保不齐几年后规则会有些许变化。CNVD官方交流群需要挖掘三个归档的漏洞然后才能申请进群的,大佬们如果有的话可以进群关注一下群里消息,有些问题可以在群里反馈
一、事件型漏洞的收录标准
只对事业单位、政府机关、国有企业、中央企业的漏洞进行收录。当然也有一些例外,部分的 "群众性团体组织" 也会收录,但是听大佬说好像最近不收了,这个概念就很模糊,没有明确定义;有时候对事业单位和国有企业的收录也会出现问题,但是这些问题都可以通过CNVD的邮箱进行反馈,沟通问题,下面针对这两种可能出现的问题举例一下:
①有一次提交了一个事业单位的命令执行漏洞,但是该单位的名称是 "XX市物业维修基金管理中心" 看名字实在想不到这是一个事业单位,通过网上对其信息进行检索确认是事业单位,没问题,但是CNVD不认,这就很无奈。当然,也不排除我使用的网站查询的备案记录有问题
顺便补充一下,下图这类的反馈就证明该资产单位的漏洞CNVD不收,状态为 "暂不归档"
网站备案查询工具:ICP备案查询_APP及小程序备案查询 - 站长工具
②也是某一次提交事业单位的文件上传漏洞,该单位的名称是某某康复医院,同样是对该资产不进行收录,虽然医院名字比较奇怪但是资产检索也是没问题的
③再就是一些对国有企业的漏洞信息提交了,这个拒收次数还是比较多的,经过多次尝试后大概猜测可能是对国有企业的股份资产的比例和对于地方国企、大型国企也有区分判断(下面举例,佐证我的猜测,当然这个定义本身也比较模糊,没办法说百分百是这样)
我是直接百度查找该公司是否为国企的,主要看爱企查中对该公司归属的判断
二、事件型漏洞的颁发原创漏洞证明的标准
这里我就直接用CNVD官方群公告里的原话了,总结一下就是很难通过该方法获取证书,全靠运气,千万别为了一个证书给自己搭进去
涉及电信行业单位(中国移动、中国联通、中国电信及中国铁塔公司)和中央部委级别(不含直属事业单位)的高危事件型漏洞
三、通用型漏洞的收录标准
这个目前了解的单单对于收录来说,是没有什么特别的标准,只不过需要网络中确实有多个此资产,总不能自研的系统只有一个单位或者个人在用,发现漏洞上报以后也判断为通用型漏洞。在就是需要证明资产归属,确实是同一个(可以不同版本)资产且能证明该资产确实属于某某公司开发的产品。
而通用漏洞报告的证明方式是有两种的:
一种是需要对系统进行代码审计,审计出漏洞以后结合审计的代码复现漏洞然后上报。这种方法不用上报资产示例,所以可能会出现分歧,就像我上面说的一样,审核人员是会查资产的。不过个人认为这个方法是比较稳妥的,很多大佬也都是通过此类方法;
另一种是需要十例网络资产复现漏洞再进行上报。最低要求是必须有3个成功复现的案例,需要有复现的过程和结果截图,然后网络中有十例资产且至少5例能成功复现该漏洞,当然不排除审核人员复现的时候有部分示例资产漏洞无法复现的,所以能多写点还是多写点。
另外,漏洞的证明是不限制方式的,除了可以通过编写报告证明漏洞,还可以通过录制视频来证明漏洞
四、通用型漏洞的颁发原创漏洞证明的标准
这也是大部分人获取CNVD证书的方式,这里我同样借用CNVD官方群里的公告
对于中危及中危以上通用型漏洞(CVSS2.0基准评分超过4.0分)(除小厂商的产品、非重要APP、黑盒测试案例不满10起等不颁发证书)
这里只说明了除 "小厂商" 、"非重要APP" ,但并没有规定多少。目前师傅们是口口相传对于 "大厂商" 的定义是需要实际缴纳资本达到5000万,只看注册资本是不行的,但是好像有些应用比较多的系统或设备资产但没到实缴资本5000万的也会颁发证书;而对于 "重要APP" 这个定义更是没有说明,目前来看是需要看APP的下载量的。所以最终解释权还是在CNVD官方,但是他们貌似从来没有发布过明确的规定,如果有明白的大佬也请说明一下
五、漏洞编号和证书编号格式
①漏洞提交编号:CNVD-C-年份-编号(只是提交了,没有收录);
②漏洞归档编号:CNVD-年份-编号(提交并收录了);
③原创漏洞证明编号:CNVD-YCGN-编号、CNVD-YCGW-编号、CNVD-YCGS-编号
这里对于原创漏洞证明编号只是举例一下,YCGN是网络设备、YCGW是web应用、YCGS是安全产品,而CNVD收录的漏洞种类是比较多的,肯定还有其他种类,只是我没见过
六、危害级别
危害级别就相当于对漏洞进行评分,也是高中低危评判的标准,评分是从攻击途径、攻击复杂度、认证、机密性、完整性、可用性六个维度进行考量的
低危(<4分);中危(>=4分,<7分);高危(>7分)
不过这好像不完全对,我写这个文章的时候就见到了一个评分7.8分但是归到了低危里面,我也不懂为什么,只能怀疑是系统出错误了
漏洞评分达到10分的就是不需要任何认证(不需要进行登录)的远程命令执行这种漏洞,漏洞等级也是高级
七、审核速度
事件型:一般事件型漏洞审核速度是很快的,这里放一下官网给的原话。
事件型漏洞验证不超过1个工作日,通报到涉事单位时间不超过3个工作日。
事件型漏洞基本上是上午10点前提交,审核没有问题的话,晚上6点前是能归档的。而下午提交就需要等到第二天才能归档。
当然也有特殊情况,比如节假日和护网期间,护网期间以及结束后一段时间内漏洞太多了,可能会出现处理不过来,不过通常是优先处理事件型漏洞
通用型:通用型漏洞相对审核速度要慢一些,这里同样放一下官网给的原话。
通用型漏洞验证取决于复现条件,通报到厂商时间不超过5个工作日。对于处置周期,视处置难度和修复情况而定。
通用型漏洞提交后正常的话,会在三天内进行一审、二审,而三审大概在两周内,因为厂家也需要进行整改,所以有的也会长一些,可能需要一个月时间。
同样在节假日和护网期间这些特殊情况处理会慢一些,护网期间以及结束后一段时间内漏洞太多了,导致两个月甚至更长才审核完成的情况也是有的
CNVD公告地址:
https://www.cnvd.org.cn/webinfo/show/3933
成功归档后且符合漏洞证书条件,都会在下一个周的周三、周四统一制作证书并发放,也存在提前发放的先例,但是如果不是节假日,过了时间还没发很可能就是不符合条件了
个人在各个SRC平台提交漏洞的经验感觉来说,CNVD的审核和证书以及奖励发放速度应该可以算是最快的了,还是比较好的
八、荣誉值和积分
一般原创漏洞积分会在漏洞归档后1~3天内发放,大家归档以后也不用着急。而这里就是按照官方公告直接来看就可以了,简单说一下就是资产单位越厉害,漏洞危害越大分就越高,而通用漏洞会在这个基础上高一些,最少就是0.1分。这里直接附带上官方发的计算公式以及公告文件,大家可自行查看研究
CNVD公告地址:
https://www.cnvd.org.cn/webinfo/show/4815
九、报告书写模板
这里我附带一下我提交的成功归档的漏洞的报告,有需要可以参考一下(CNVD漏洞报告没有固定模板只要将需要的信息都描述清楚即可)
事件型:
通用型:
十、CNVD挖掘中的错误案例总结
①最开始尝试的时候最大的问题就是不清楚到底收录哪些资产,也是通过多次尝试以及收集资料最后总结出来,上面对于各种资产的收录问题已经提及过了
②同样是在初期尝试的时候,挖掘到的一个任意文件上传的漏洞,资产单位是没问题了,但是当时这个漏洞文件上传上去之后是没法执行命令的,而且最开始被驳回也没弄明白需要做什么就直接重新提交了然后就又被驳回了。其实到现在才想到当时可以上传其他的,比如pdf文件做一个储存型XSS漏洞,也是经验不足,浪费了一个漏洞
③这个是最搞笑的,一直重复提交-驳回-提交-驳回,一直到漏洞被修复导致无法复现故而无法归档。这是一个报错注入的漏洞,之前同类漏洞直接归档了,但是不知道这次的为什么审核一定要让我提交明确的数据库实例名。我来来回回提交了三次,第一次只写了POC和执行后的回显,第二次补充了一个用注入拿到的当前用户,第三次补充了一个注入拿到的数据库(没办法,不敢用sqlmap,也不敢多拿数据)
注意:千万不要篡改数据!千万不要非法获取数据!小心使用SQL注入漏洞!小心使用任意文件读取漏洞!
SQL注入漏洞在可能在注册或者更改信息的接口下会出现,写入脏数据或者更改原有信息的情况,所以也就要注意使用sqlmap工具;
任意文件读取漏洞可能调用的是删除文件的接口,确实会有删除文件的接口回显信息的情况,删了文件就麻烦了
④一个未授权访问漏洞,拿不到什么有用的数据,故而没有通过
⑤第一次尝试挖掘通用漏洞,本来想交一个设备弱口令,结果刚好重复了而且通过归档编号来看时间还没差很久,就想着正好进系统看看有没有后台漏洞。找到一个任意文件上传,同样是没法命令执行,只能交了一个后台储存型XSS,可惜危害太低,故而不收录
⑥也是一次对通用漏洞的尝试,好不容易找到一个漏洞,一审、二审都没问题(通常来说一审、二审也是比较好通过的,只要不重复就没什么问题),结果三审的时候需要我证明资产归属,因为我的资产信息都是从fofa中导出的,被驳回后一一核对资产,发现部分资产竟然没法证明属于上报的开发公司,没办法只能放弃
尾声
其实工作之后很少再有时间专门去各大SRC平台上挖掘并提交漏洞,最近几次提交也是在攻防演练项目中挖掘漏洞后在搜索引擎中发现其他同类资产也存在相同漏洞便提交到漏洞平台,经历了一个半月的等待也是通过了审核拿到了我的第一个CNVD证书
最后就是展示一下我在这不到一年的时间内在CNVD中挖掘漏洞的成果,虽然经历了多次失败,但也是通过这些失败总结了很多经验,希望各位大佬每天都能挖出通杀0day
相关文章:

CNVD漏洞和证书挖掘经验总结
前言 本篇文章主要是分享一下本人挖掘CVND漏洞碰到的一些问题,根据过往成功归档的漏洞和未归档的漏洞总结出的经验,也确实给审核的大佬们添了很多麻烦(主要真的没人教一下,闷着头尝试犯了好很多错误,希望各位以后交一个…...

阿里rtc旁路推流TypeScript版NODE运行
阿里云音视频服务云端录制typescript版本; 编译后可以使用 node index.js运行 package.json 版本 // npm install --save alicloud/rtc201801112.3.0 "alicloud/rtc20180111": "^2.3.0",引入 import Client, { StartCloudRecordRequest, StopCloudRecord…...

计算机书籍分享
0.简介 数据库系统概念、深入理解计算机系统、领域驱动设计、Linux高性能服务器编程 高清版本pdf 1.链接 数据库系统概念: 链接: https://pan.baidu.com/s/17zz7QFevV2Eni9qHJyLEGA 提取码: wfrx 深入理解计算机系统 链接: https://pan.baidu.com/s/19yiJG8GqHJR…...

处理ASAM-MDF格式的开源python库asammdf
asammdf是一个强大的Python库,专为处理ASAM(Association for Standardization of Automation and Measuring Systems)MDF(Measurement Data Format)文件而设计。MDF是一种用于存储测量和诊断数据的标准格式,…...

物业管理小程序开发
物业小程序的开发是一个综合性的项目,旨在提升物业管理效率和增强业主的服务体验。以下是关于物业小程序开发的一些关键方面: 一、需求分析 目标用户:识别主要用户群体,包括业主、租户、物业管理人员等。 功能需求: 物…...

【Vue】Pinia
系列文章目录 第八章 Pinia 文章目录 系列文章目录前言一、安装和配置:二、基本使用三、一个更真实的例子 前言 Pinia是Vue.js应用程序的状态管理库。它提供了一种简单,轻量级的解决方案,用于在Vue应用程序中管理和维护状态。Pinia库的特点…...

帕金森病患者的生命长度:科学管理与乐观心态是关键
在快节奏的现代生活中,健康成为了我们最宝贵的财富之一。然而,当“帕金森病”这个名词悄然进入我们的视野时,不少人心中难免会涌起一丝不安与担忧。帕金森病,作为一种常见的神经系统退行性疾病,确实给患者的日常生活带…...

详解Linux中cat命令
在 Linux 命令的世界中,cat 命令就像是一位多才多艺的艺术家,它能够将文本文件的美妙旋律编织在一起,或者单独演奏它们的每一个音符。下面,让我们以一种充满情感的方式,用 Markdown 格式来探索 cat 命令的多种用途。 …...

Mysql高级篇(中)—— SQL优化之查询截取分析
SQL优化之查询截取分析 一、慢查询日志(1)简述(2)如何开启(3)慢查询日志分析工具介绍(了解)(4)官方工具 mysqldumpslow简述如何使用 二、SHOW PROCESSLIST三、(了解&…...

企业如何制作一个官方网站?
随着实体宣传的减弱,提高线上的宣传是新式的宣传方式,那么企业搭建网站成为线上宣传的重要途径。企业如何去搭建网站呢?如何拥有一个专业的网站来展示企业文化和企业销售产品?今天我给大家带来干货:如何一步步构建自己…...

游戏开发2025年最新版——八股文面试题(unity,虚幻,cocos都适用)
1.静态合批与动态合批的原理是什么?有什么限制条件?为什么?对CPU和GPU产生的影响分别是什么? 原理:Unity运行时可以将一些物体进行合并,从而用一个描绘调用来渲染他们,就是一个drawcall批次。 限…...

如何查看线程
1、首先找到我们的电脑安装jdk的位置,这里给大家展示一下博主本人的电脑jdk路径下的jconsole位置。 2、 ok,那么找到这个jconsole程序我们直接双击打开就可以查看我们电脑的本地进程: jconsole 这里能够罗列出你系统上的 java 进程࿰…...

详细分析Spring的动态代理机制
文章目录 1. JDK动态代理和CGLIB动态代理的区别1.1 适用范围1.2 生成的代理类1.3 调用方式 2. 问题引入3. 创建工程验证 Spring 默认采用的动态代理机制3.1 引入 Maven 依赖3.2 UserController.java3.3 UserService.java3.4 UserServiceImpl.java(save方法添加了Tra…...

Redis数据类型,使用场景,事物及分布式锁
文章目录 关于Redis1.常用数据类型1.字符串(String)2.哈希(Hash)3.列表(List)4.集合(Set)5.有序集合(Sorted Set)6.位图(Bitmap)7.超日…...

目标检测系列(一)什么是目标检测
目录 一、相关名词解释 二、目标检测算法 三、目标检测模型 四、目标检测应用 五、目标检测数据集 六、目标检测常用标注工具 一、相关名词解释 关于图像识别的计算机视觉四大类任务: 分类(Classification):解决“是什么&…...

STM32CubeIDE | 使用HAL库的ADC读取内部传感器温度
1、cubemx配置 1.1、系统配置 1.2、GPIO配置 PB2设置为“GPIO_Output” user label设置为“LED” 1.3、串口配置 模式选择为“Asynchronous”,其他默认 1.4、时钟树配置 全部保持默认 2、ADC配置 通道选择“Temperature Sensor Channel”,其他默认 …...

茶思屋直播|TinyEngine+AI:聚焦主航道,在实践中探索低代码技术黑土地
低代码引擎使能开发者定制低代码平台。它是低代码平台的底座,提供可视化搭建页面等基础能力,既可以通过线上搭配组合,也可以通过cli创建个人工程进行二次开发,实时定制出自己的低代码平台。适用于多场景的低代码平台开发ÿ…...

Ansible流程控制-条件_循环_错误处理_包含导入_块异常处理
文章目录 Ansible流程控制介绍1. 条件判断2. 循环3. 循环控制4. 错误处理5. 包含和导入6. 块和异常处理7. 角色的流程控制*include_tasks、import_tasks_include之间的区别 条件语句再细说且、或、非、是模糊条件when指令的详细使用方法 循环语句再细说如何使用使用item变量结合…...

Mybatis-为什么使用Mybatis,它存在哪些优点和缺点?
优点: 基于 SQL 语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL单独写,解除SQL与程序代码的耦合,便于统⼀管理。与 JDBC 相比,减少了 50%以上的代码量,消除…...

银河麒麟高级服务器操作系统V10外接硬盘挂载指南
银河麒麟高级服务器操作系统V10外接硬盘挂载指南 1、临时挂载外接硬盘2、永久挂载外接硬盘3、总结 💖The Begin💖点点关注,收藏不迷路💖 在使用银河麒麟高级服务器操作系统V10时,您可能希望将外接硬盘(如sd…...

免费制作证件照的小程序源码
1、效果展示 证件照制作,证件照免费制作,证件照调用api源码,解析代码。证件照制作小程序包,可以下载程序包,最初级版本免费下载。以上是高级版本。如果你有开发能力的话可以自己写前端,然后以下调用以下api…...

面经宝典【1】-拼多多
这个专题我主要想的是吧这些面经题目给整合起来,自己时不时可以看看然后回答回答,然后再根据一些面经去查漏补缺,具体的答案我都记录在在自己的语雀笔记当中,如果想要的可以私聊我,当然这些答案一般在网上都能找到。 今…...

AI画图用到的网站与资源
1、画图 爱灯泡 midjourney官网 可以使用stable-diffusion的网站 2、素材 花瓣 figma 3、...

C++——多线程编程(从入门到放弃)
进程:运行中的程序 线程:进程中的进程 线程的最大数量取决于CPU的核心数 一、将两个函数添加到不同线程中 demo:两个函数test01()和test02(),实现将用户输入的参数进行打印输出1000次 将这两个函数均放到独立的线程t1和t2中&…...

江协科技STM32学习- P14 示例程序(定时器定时中断和定时器外部时钟)
🚀write in front🚀 🔎大家好,我是黄桃罐头,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝…...

2024年CSP-J认证 CCF信息学奥赛C++ 中小学初级组 第一轮真题-阅读程序题解析
2024 CCF认证第一轮(CSP-J)真题 二、阅读程序题 (程序输入不超过数组或字符串定义的范围,判断题正确填√错误填X;除特殊说明外,判断题 1.5分,选择题3分,共计40 分) 第一题 01 #include <iostream>…...

Hive ROW_NUMBER() 简介
在 Apache Hive 中,ROW_NUMBER() 是一个窗口函数,常用于为查询结果中的每一行生成唯一的行号。它在 SQL 查询结果集中按照指定的排序规则对每一行进行编号。ROW_NUMBER() 的实现依赖于 Hive 的分布式执行框架和排序机制。 为了理解 ROW_NUMBER() 的底层实…...

java是干什么的
Java 是一种广泛使用的编程语言,主要用于以下几个方面: Web 开发:Java 可以用于创建动态网页和 Web 应用程序,常见的框架有 Spring 和 JavaServer Faces(JSF)。 企业级应用:Java 被广泛应用于…...

AI与量化投资人才培养计划-连接职场 助力走在金融行业前沿
AI与量化投资人才培养计划-连接职场 助力走在金融行业前沿 人工智能(AI)的快速发展,量化投资已逐渐成为金融行业的新趋势,对专业人才的需求日益迫切。本文将深入探讨一项针对AI与量化投资的人才培养计划,旨在为金融专业…...

《CUDA编程》2.CUDA中的线程组织
0 来自GPU的hello world 在visua studio 中新建一个CUDA runtime项目,然后把kernel.cu中的代码删掉,输入以下代码 #include"cuda_runtime.h" #include"device_launch_parameters.h"#include<stdio.h>__global__ void hello_…...