跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python

SRC 漏洞挖掘流程及 CNVD 提交指南

基于 FOFA 进行目标资产检索、Python 脚本验证存活、结合 Xray 与 Crawlergo 联动扫描漏洞以及向 CNVD 等 SRC 平台提交漏洞的完整流程。内容涵盖工具准备、语法构造、代码实现及注意事项,旨在帮助安全研究人员合法合规地进行漏洞挖掘。

岁月神偷发布于 2025/2/7更新于 2026/5/3132 浏览
SRC 漏洞挖掘流程及 CNVD 提交指南

简介

SRC(Security Response Center)是企业用于接收用户报告产品安全漏洞的站点,连接白帽子与企业。目前国内主要有漏洞报告平台和企业 SRC 两种形式。请注意,挖洞必须合法合规,确保目标有授权,遵守法律法规。

目前 CNVD 接受政府、医疗、学校以及部分集团和国企等 SRC 漏洞,这增加了挖掘难度。以下是完整的挖洞思路:

  1. 寻找挖洞目标
  2. 使用趁手的挖洞工具
  3. 执行扫描
  4. 漏洞验证
  5. 提交漏洞

过程中使用的工具

本文涉及的知识领域和工具主要包括:

  • Python 基本使用
  • 漏洞扫描工具的使用
  • 漏洞验证能力
  • 网络空间测绘平台(FOFA、Hunter、Quake)、企查查、爱企查
  • 长亭 Xray 漏洞扫描工具
  • 360 Crawlergo 动态爬虫工具
  • SRC 漏洞提交平台

主要使用的 Python 脚本包括:

  • FOFA API 调用脚本
  • 目标 URL 存活验证脚本
  • Xray 和 Crawlergo 联动脚本

注意:示例代码基于 Mac 系统编写,Windows 用户需根据提示修改路径或环境。

详细过程

一、寻找挖洞目标

1.1 工具介绍
  1. 网络空间测绘平台:FOFA、奇安信 Hunter、360 Quake(部分需会员);
  2. API 脚本;
  3. 企查查、爱企查(部分功能需会员)。
1.2 目标检索过程

以 FOFA 为例批量检索目标地址,使用 FOFA 语法检索并通过 API 脚本下载数据。

事先组织好查询语法,本次以域名方式检索,对域名为 .gov.cn、地区为中国、状态码为 200 进行检索。由于会员限制每天只提取 1 万个目标,需优化检索语法。

host=".gov.cn" && country="CN" && status_code="200"

通过对地区细分可以再次筛选数据,例如北京地区:

host=".gov.cn" && country="CN" && status_code="200" && region="Beijing"

通过 FOFA API 进行数据提取,运行前需在个人中心获取邮箱和 API Key。

# 申明:此工具仅供学习使用,不负有相关法律责任
# Windows 用户和 Linux 用户均可直接使用,无需进行修改

import base64
import csv
import requests

# 查询函数
def Inquire(email, api_key, query):
    qbase64 = base64.b64encode(query.encode()).decode()
    api = 'https://fofa.info/api/v1/search/all?email={}&key={}&qbase64={}&size=10000'.format(email, api_key, qbase64)
    print("正在请求页面查询{}".format(query))
    response = requests.get(api)
    data_result = response.json()["results"]
    count = len(data_result)
    print("总共可获取数量为{}条数据\n".format(count))
    # print(data_result)
    count_range = GetNumber()
    write_file(query, data_result, count_range)

# 下载次数函数
def GetNumber():
    count_range = input('请输入获取数据的数量 (最大限制 10000 条):')
    # count_range = 10000 #若使用批量查询,默认下载数可以直接设置
    return int(count_range)

# 写入函数
def write_file(query, data, count_range):
    filename = query + '.csv'
    with open(filename, 'a', newline="") as f:
        writer = csv.writer(f)
        writer.writerow(["URL", "IP 地址", "访问端口号"])
        for result in data:
            list_data = [result[0].strip(), result[1].strip(), result[2].strip()]
            writer.writerow(list_data)
            count_range -= 1
            if count_range == 0:
                break

# 交互界面
def GUI_Communication():
    print("\n\t FOFA——API 接口工具\n")
    email = input('Email:')
    api_key = input('api_key:')
    num = int(input('是否为单量查询 (是 1/否 0):'))
    if num == 1:
        query = input('查询语法:')
        Inquire(email, api_key, query)
    elif num == 0:
        with open("gammers.txt", 'r') as f:
            for query_data in f.readlines():
                query = query_data.replace('\n', '')
                Inquire(email, api_key, query)
    else:
        print("只能输入 0 或 1!")

if __name__ == '__main__':
    GUI_Communication()

脚本运行后输入正确的邮箱和 API Key,将组织好的语法进行输入,填写下载数量对数据下载,会在脚本目录生成一个以语法命令命名的表格文档,打开即为需要的目标地址。

接下来需要对目标存活性进行验证,并输出为格式化 URL(http://ip 或域名:端口),方便进行漏洞挖掘。使用 Python 脚本进行存活验证,需提前将表格里的 URL 保存到文本中每行一个目标 URL,放置在该代码相同文件夹即可。脚本运行完后会在同级目录生成 url_ok.txt 文件,该文件为最终目标 URL。

# 申明:此工具仅供学习使用,不负有相关法律责任
# Windows 用户需将代码中的./url.txt 的./去掉即可

import requests

def foo():
    for url in open("./url.txt"):
        url = url.strip()
        if 'http' in url or 'https' in url:
            url1 = url
            url2 = None
        else:
            url1 = f'http://{url}'
            url2 = f'https://{url}'
        try:
            ok = requests.get(url1, timeout=(5, 8))
            if ok.status_code == 200:
                print(url1, ok.status_code)
                with open("./url_ok.txt", 'a+') as url_ok:
                    url_ok.write(url1 + "\n")
                    url_ok.close()
            else:
                ok_1 = requests.get(url2, timeout=(5, 8))
                if ok_1.status_code == 200:
                    print(url2, ok_1.status_code)
                    with open("./url_ok.txt", 'a+') as url_ok:
                        url_ok.write(url2 + "\n")
                        url_ok.close()
                else:
                    print(url2, ok.status_code)
        except:
            try:
                ok2 = requests.get(url2, timeout=(5, 8))
                if ok2.status_code == 200:
                    print(url2, ok2.status_code)
                    with open("./url_ok.txt", 'a+') as url_ok:
                        url_ok.write(url1 + "\n")
                        url_ok.close()
                else:
                    print(url2, ok2.status_code)
            except:
                print(f"{url2} URL 无效")

if __name__ == "__main__":
    foo()

二、趁手的挖洞工具

工具有很多,自己使用顺手即可。

2.1 工具介绍
  • Xray:一款由长亭洞鉴核心引擎中提取出的社区版漏洞扫描神器。
  • 360-Crawlergo:360 安全团队开发的一个使用 Chrome Headless 模式进行 URL 入口收集的动态爬虫工具。
  • 联动脚本:实现 Xray 和 Crawlergo 的配合使用。

本次使用 Xray 和 Crawlergo 进行联动,对整理好的目标进行漏洞挖掘。具体使用可参考 Xray 官方教程。

2.2 工具下载链接
  • Xray:建议直接通过官网下载,GitHub 版本更新可能不及时。
  • 360-Crawlergo:可通过 GitHub 获取。
  • 联动脚本:可通过 GitHub 获取。
2.3 工具使用

下载适合自己操作系统类型的工具(如 Mac arm64 版本),统一放置在一个文件夹中。

将下载的 Crawlergo 和 Xray 放置在联动脚本程序中,然后删除联动脚本程序自带的 crawlergo 和 xray 文件夹。注意需要修改 crawlergo_darwin_arm64 文件名为 crawlergo,修改主程序 launcher.py 和 launcher_new.py 部分代码,主要是 Chrome 路径改为本地路径。例如博主 Chrome 浏览器位置为:/Applications/Google Chrome.app/Contents/MacOS/Google Chrome。

将第一步获取的目标放置在 targets.txt 文件中,注意需要逐行隔开。然后本地开始使用 Xray 监听 127.0.0.1:7777,脚本编写默认监听 7777 端口。联动本质为通过脚本将 Crawlergo 爬取的目标数据发送给正在监听的 Xray,然后实现目标的漏洞检查。

启动 Xray 监听命令如下:

./xray_darwin_arm64 webscan --listen 127.0.0.1:7777 --html-output proxy.html

启动联动主程序爬取目标,等待片刻,爬虫会将爬取的数据通过本地回环 7777 端口发送给 Xray,随后等待输出报告即可。

三、漏洞验证

漏洞验证是从事 Web 安全必须掌握的技能。通常报告里面会给相应的验证脚本和验证思路,大家直接根据报告进行验证一般都没有问题。

四、提交漏洞

提交 SRC 漏洞平台有很多,以下列出部分常见平台供参考:

  • 阿里巴巴 (ASRC): https://security.alibaba.com/
  • 阿里云先知: https://xianzhi.aliyun.com/
  • 百度 (BSRC): https://bsrc.baidu.com/
  • 腾讯 (TSRC): https://security.tencent.com/
  • 360 (360SRC): https://security.360.cn/
  • 美团 (MTSRC): https://security.meituan.com/
  • 京东 (JSRC): https://security.jd.com/
  • 华为 (HBP): https://bugbounty.huawei.com/
  • 深信服 (SSRC): https://security.sangfor.com.cn/
  • 小米 (MISRC): https://sec.xiaomi.com/
  • 网易 (NSRC): https://aq.163.com/
  • 快手 (KwaiSRC): https://security.kuaishou.com/
  • 哔哩哔哩 (BILISRC): https://security.bilibili.com/
  • 携程 (CSRC): https://sec.ctrip.com/
  • 饿了么 (ESRC): https://security.ele.me/
  • 滴滴出行 (DSRC): https://sec.didichuxing.com/
  • 字节跳动 (ByteDance): https://security.bytedance.com/
  • 蚂蚁集团 (AntSRC): https://security.alipay.com/
  • 平安 (PSRC): https://security.pingan.com/
  • 中国移动 (CMCCSRC): https://src.chinamobile.com/
  • 中国电信 (CTSRC): https://src.chinatelecom.com.cn/
  • 中国联通 (CU-SRC): https://src.chinaunicom.com.cn/

注意事项

  1. 漏洞挖掘过程一定要授权进行,不要非法挖洞,注意挖洞尺度;
  2. 检索目标 URL 时可以通过多种途径,不一定只有文中介绍的那些方法;
  3. 文中介绍的 Python 脚本,如果是 Windows 客户端需要修改部分代码;
  4. 文中的 Python 脚本如果有运行时报错,大概率可能是没有安装 Python 包,需要 pip install 安装一下;
  5. 如果官网下载的 Xray 运行报错,是因为当前最新版本的 Xray 默认运行不会生成新的配置文件,会找旧的配置文件就是 config.yaml 文件,所以如果之前没有用过这个工具,需要先下载旧版本然后生成配置文件拷贝给新版本进行使用;
  6. Xray 和 360-Crawlergo 联动脚本需要修改浏览器目录配置,根据自己系统路径进行修改;
  7. 如果出现爬取的目标发送给 Xray,Xray 没有扫描的动作,可能是目标的问题,尝试更换其他目标;
  8. 有更好的工具欢迎评论分享,大家一起学习,共同进步。

目录

  1. 简介
  2. 过程中使用的工具
  3. 详细过程
  4. 一、寻找挖洞目标
  5. 1.1 工具介绍
  6. 1.2 目标检索过程
  7. 申明:此工具仅供学习使用,不负有相关法律责任
  8. Windows 用户和 Linux 用户均可直接使用,无需进行修改
  9. 查询函数
  10. 下载次数函数
  11. 写入函数
  12. 交互界面
  13. 申明:此工具仅供学习使用,不负有相关法律责任
  14. Windows 用户需将代码中的./url.txt 的./去掉即可
  15. 二、趁手的挖洞工具
  16. 2.1 工具介绍
  17. 2.2 工具下载链接
  18. 2.3 工具使用
  19. 三、漏洞验证
  20. 四、提交漏洞
  21. 注意事项
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 在 C++ Win32 项目中使用 WinUI3 窗口
  • 1Panel 部署 Open WebUI 镜像加速:ghcr.io 切换至国内镜像源
  • Windows 系统配置 AI 工具网络代理及一键切换脚本
  • AI写论文引用的文献是真的吗?别再被“幻觉引用”坑了!宏智树AI:所有参考文献均来自知网/维普,真实可查,AIGC率<10%
  • 使用 TRAE CN 将 MasterGo 设计稿转化为前端代码
  • 自媒体副业变现路径与实操建议
  • Python 入门指南:特性、优势与学习路径
  • OpenClaw 开源机械手重塑机器人抓取技术
  • Python 数据类实战:@dataclass 装饰器详解
  • SALMONN:支持语音音频与音乐的开源大语言模型
  • LM Studio 模型加载全攻略:从格式识别到本地部署
  • 快速排序非递归实现详解
  • Z-Image-Turbo_UI 部署与 WebUI 使用指南
  • OpenClaw 开源 AI 智能体核心原理与本地部署教程
  • Spring Boot 配置属性自动绑定实战
  • Node.js 文件读写同步异步与事件循环机制
  • Trae AI 编辑器对话记录导出脚本实现
  • Ollama 本地部署大语言模型使用指南
  • 大模型产品经理学习路线详解
  • Linux 网络基础:局域网通信与跨网段传输

相关免费在线工具

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online