逼格or随性?看我是如何混一波CVE编号!
字数 1487 2025-08-18 11:37:19
CVE漏洞挖掘实战指南
1. CVE简介
CVE (Common Vulnerabilities & Exposures)是公共漏洞和暴露的标准化命名系统,它为已确认的信息安全漏洞提供唯一的标识符。CVE的主要作用包括:
- 为漏洞提供统一的命名规范
- 便于在不同安全工具和数据库间共享漏洞信息
- 作为安全信息共享的"关键字"
2. 获取CVE编号的途径
2.1 通过CNA厂商提交
CNA (CVE Numbering Authority)是获得授权分配CVE编号的组织,包括:
- 知名软件厂商(如Microsoft、Adobe等)
- 研究机构
- 漏洞赏金平台
特点:
- 漏洞质量要求较高
- 挖掘难度大
- 但获得的CVE编号更有价值
2.2 通过MITRE直接提交
对于不在CNA列表中的项目发现的漏洞,可以直接向MITRE提交:
优势:
- 目标选择范围更广
- 漏洞质量要求相对较低
- 适合初学者获取第一个CVE编号
3. 目标选择策略
3.1 目标来源
推荐在GitHub上搜索开源CMS项目:
- 使用"CMS"关键词搜索(约7万+结果)
- 选择活跃但不太知名的项目
3.2 编程语言选择
| 语言 | 优点 | 缺点 |
|---|---|---|
| PHP | 环境搭建快速(PHPStudy 5分钟) | 漏洞竞争可能激烈 |
| Java | 熟悉语言可提高效率 | 环境搭建复杂(IDE, JDK, Web服务器) |
| 其他(C#, Python等) | 根据个人专长选择 | 可能需要特定环境 |
建议:初学者优先选择PHP项目
4. 漏洞类型选择
4.1 推荐漏洞类型:CSRF
选择原因:
- 开发者重视程度低(已退出OWASP TOP10)
- 防护实现容易出错
- 相比SQL注入/XSS更容易发现
4.2 其他漏洞类型分析
- SQL注入:开源项目通常已做防护(预编译/参数化查询)
- XSS:通常有基本防护(实体编码/正则替换),需要构造复杂payload绕过
5. 实战挖掘流程
5.1 环境准备
- 下载目标CMS(建议科学上网加速)
- 使用PHPStudy等集成环境快速搭建
- 访问后台(前端功能有限,重点在增删改操作)
5.2 漏洞定位
- 寻找敏感功能点(如用户管理)
- 检查防护措施:
- 查看源码搜索"token"字段
- 测试是否真正验证token
5.3 常见token绕过方法
- 存在XSS时:使用Ajax跨域获取DOM中的token
- Token固定:根据用户ID单向hash生成,可预测
- 假防护:有token字段但服务器不验证
6. 漏洞提交流程
6.1 准备材料
- 漏洞详细说明(英文)
- 发布在个人博客或项目issues中
- 准备以下信息:
- 漏洞类型
- 受影响产品及版本
- 厂商确认状态
- 攻击类型和影响
- 复现步骤
6.2 提交地址
- MITRE提交页面:https://cveform.mitre.org/
6.3 提交技巧
- 使用Chrome浏览器(自带翻译功能)
- 配合有道等翻译工具准备英文材料
- 一次提交多个漏洞可提高效率
7. 后续跟进
- 提交后会自动收到确认邮件
- 通常1天左右会收到含CVE编号的回复
- 若一天内提交多个漏洞,可能不会每份都自动回复
8. 进阶建议
- 长期发展应转向CNA列表中的大厂漏洞
- 简历提升或初次尝试可从小型开源项目入手
- 持续学习更复杂的漏洞类型和技术
9. 注意事项
- 敏感漏洞细节不要公开披露
- 遵守负责任的漏洞披露原则
- 确保测试行为合法合规
通过以上系统化的方法,即使是初学者也能有效挖掘并获得CVE编号,为职业发展或技术探索提供有力支持。