别再人工刷漏洞库了CNNVD官方API这样接php2shell当天就进台账"

admin 2026-11-01 01:59:52 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

别再人工刷漏洞库了 CNNVD 官方 API 这样接 php2shell 当天就进台账

宝十八
宝十八

网络安全老宋

2026年10月29日 12:00
山东

去阅读

导语: 你好,我是网络安全老宋。安全攻防干货准时送达!

网络安全老宋// 实战教程 · 漏洞情报

// 实战教程 · 漏洞情报

别再人工刷漏洞库了 CNNVD 官方 API 这样接 php2shell 当天就进台账

上周 php2shell(PHP 高危 RCE)多国紧急预警。这篇教你用 CNNVD 官方 OpenAPI,把漏洞情报工程化拉取并接进资产台账,新漏洞一入库,命中的资产当天就弹预警。

CNNVD API漏洞情报php2shell

●一句话精华
漏洞情报的第一落点应该是你自己的资产台账,而不是公众号——把 CNNVD 官方 OpenAPI 接进来,新漏洞一入库,资产先知道。

目录 · Table of Contents

01两个库别搞混:CNNVD 和 CNVD

02为什么用官方 API 而不是爬页面

03前置:实名认证与 AppID

04签名机制:四头加一把 SHA256 锁

05可运行代码:从请求到 XML 链接

06工程化:把情报搬进资产台账

07本周实战与合规收尾

上周有个事挺扎心。10 月 21 日、22 日,国家信息安全漏洞共享平台连发两道公告,PHP 爆出代号「php2shell」的高危远程代码执行漏洞,编号 CVE-2026-109618 和 CVE-2026-109619,对应 CNVD-2026-41674、CNVD-2026-41675。多国机构当天拉响警报,说这漏洞正在被广泛利用,影响 PHP 8.2 到 8.5 一堆版本,底下还拖着 WordPress、Drupal、Laravel 这些大家都在用的框架。

老宋问一句:你单位是哪天知道这个漏洞的?刷新闻看到的?等客户来问才查的?还是根本还没动静?

说真的,漏洞情报这东西,靠人肉刷页面,永远慢半拍。这一篇老宋不教你怎么修 PHP(那个官方公告写得很清楚),而是教你一个更根本的事:怎么用 CNNVD 的官方 API,把漏洞情报自动「搬」进你自己的资产台账。这样新漏洞一入库,命中的资产当天就弹预警,不用你天天盯着网页。

▲ 国家漏洞库经官方 API 流入你的资产台账,新漏洞一入库,资产先知道

01两个库别搞混:CNNVD 和 CNVD

动手之前先正本清源,这俩名字太像,搞混了后面全白干。

CNNVD,全称国家信息安全漏洞库,由中国信息安全测评中心运营,是国内最权威的中文漏洞库之一。它的特点是中文描述细、厂商和产品字段全,还提供「增强版 XML」,里面连补丁链接、参考链接都给你备齐了。

CNVD,全称国家信息安全漏洞共享平台,由 CNCERT 运营。本周那个 php2shell,就是 CNVD 先发的通告。

两个库的编号体系不一样:CNNVD 是 CNNVD-2026-xxxxx,CNVD 是 CNVD-2026-xxxxx,别拿混了。不过 CNNVD 也会同步收录同类漏洞。本篇我们用的,是 CNNVD 对外开放的 OpenAPI 接口——选它,主要图三件事:中文语境、字段最全、适合做资产关联。

02为什么要用官方 API,而不是爬页面

有的兄弟图省事,直接写个脚本爬 CNNVD 网页。老宋劝你别这么干,坑不少。

第一,反爬和登录态。漏洞详情页很多要登录才能看全,爬虫一上去就被限流、被封。

第二,字段不全。网页上展示的字段,和接口返回的增强版 XML 根本不是一个量级,你爬到的可能是阉割版。

第三,合规风险。批量抓取网站,搞不好就踩了人家网站的使用条款,单位用尤其要慎重。

那第三方聚合平台呢?延迟、字段被裁剪、收费、还不可控,真出了事你连数据源都追不回来。

官方 API 就不一样:实名单位申请后字段全、可溯源、稳定,还支持按时间窗口增量拉取——你今天只拉昨天新增的,不用每次全量轰。前提是,你得先完成单位实名认证。个人用户只能查和报送,API 接口是单位实名认证之后才解锁的权益,这点后面细说。

03前置条件:实名认证与 AppID

先把门槛说清楚,免得你兴冲冲去申请发现没资格。

个人用户注册后,权益包括:获取信息安全资讯、海量漏洞信息查询、报送漏洞拿提交证明,实名认证后还能查「受漏洞影响产品信息」。但漏洞信息获取 API 接口,是单位用户完成实名认证之后的专属权益,同时解锁的还有受漏洞影响产品信息、多维度合作资格,以及兼容性、技术支撑、厂商合作等背书。

申请路径不复杂:登录 CNNVD 官网,进「单位中心」,找「账号安全」里的「OpenAPI 密钥管理」,申请生成 API 密钥,你会拿到两个东西——APP\_ID 和 APP\_SECRET。

老宋重点提醒一句:APP\_SECRET 是签名用的根密钥,千万别硬编码进代码仓库,更别截图发群里。建议放环境变量或者你们单位的密钥管理服务,出问题的是密钥泄露,不是代码。

04签名机制:四个请求头加一把 SHA256 锁

拿到密钥,调用之前得先搞懂它的签名。接口要求你在请求头里带四个东西:

X-Appid 是你的 APP\_ID;X-Timestamp 是当前毫秒时间戳;X-Nonce 是一个随机串,专门防重放;X-Sign 是签名本身。

签名的算法很简单,但设计得挺讲究:把「请求方法 + 接口URI + 时间戳 + 随机串 + APP\_SECRET」拼成一行字符串,做一次 SHA256,结果就是 X-Sign。

为什么这么设计?方法加 URI,防止有人篡改你要调的接口;时间戳加随机串,配合有效期,防止别人把你的请求拦下来重放一遍。而最关键的 APP\_SECRET,永远只参与签名,不从网络里走。换句话说,就算有人截获了你这一次请求,没有 secret 他也造不出下一个合法签名。

▲ 3D 等距视角,左侧四张叠放的 HTTP 请求头卡片,右侧一个发光的橙色挂锁代表 SHA256 签名锁,橙色箭头连接,浅色背景,科技感

05可运行代码:从请求到拿到 XML 链接

光说不练没用,老宋给你一段能直接跑的 Python。核心就是拼签名、组请求头、发 POST、拿返回。

⏰ Shell

CNNVD 官方 API 拉取漏洞 XML 信息(单位实名认证用户)

需自行替换 APP\_ID 和 APP\_SECRET,建议从环境变量读取

import hashlib, json, random, string, time, requests

HOST = \"https://www.cnnvd.org.cn\"

URI  = \"/cnnvdweb/2.0/openapi/vul/xml\"

URL  = HOST + URI

APP\_ID     = \"替换为你的APP\_ID\"

APP\_SECRET = \"替换为你的APP\_SECRET\"   # 别写死,用环境变量或密钥管理服务

1. 构造认证参数

method    = \"POST\"

timestamp = str(int(time.time() \* 1000))

nonce     = \"\".join(random.choices(string.ascii\_letters + string.digits, k=16))

2. 计算签名:SHA256(method + URI + timestamp + nonce + secret)

sign\_str = f\"{method}{URI}{timestamp}{nonce}{APP\_SECRET}\"

x\_sign   = hashlib.sha256(sign\_str.encode(\"utf-8\")).hexdigest()

3. 组装请求头与请求体(按发布时间窗口增量拉取)

headers = {\"Content-Type\": \"application/json\",

\"X-Appid\": APP\_ID, \"X-Timestamp\": timestamp,

\"X-Nonce\": nonce, \"X-Sign\": x\_sign}

payload = {\"pageNum\": 1, \"pageSize\": 50,

\"publishStartDate\": \"2026-10-21\",

\"publishEndDate\": \"2026-10-23\"}

try:

r = requests.post(URL, json=payload, headers=headers, timeout=10)

data = r.json()

for rec in data[\"data\"][\"records\"]:

xmlContent 是 XML 下载链接,有效期仅 10 分钟,拿到尽快下载

print(rec[\"vulName\"], \"->\", rec[\"xmlContent\"])

except Exception as e:

print(\"请求出错:\", e)

返回结构里,data.total 是命中总数,data.records 是漏洞列表,每条都有 vulName、cve\_id(在 XML 里)、危害等级,以及最关键的 xmlContent——那是 XML 详情文件的下载链接。注意,这个链接有效期只有 10 分钟,你拿到就得赶紧下,别等下午再想起来。

06工程化:把情报搬进资产台账

到这一步,你只是「能拉」了。真正的价值在「拉完之后」。老宋给你一条最小可用的工程化链路:

第一步,增量拉取。别每次全量,用 publishStartDate 和 publishEndDate 每天拉昨天的增量,cron 定时跑,稳。

第二步,XML 解析入库。把每条漏洞的 CNNVD 编号、CVE 编号、厂商、产品、漏洞描述、技术危害等级、综合危害等级、补丁链接、参考链接,落进你们自己的漏洞库表(MySQL 就行)。

第三步,也是最值钱的一步——资产关联匹配。把你解析出来的厂商和产品,和 CMDB 里的资产清单做比对。比如 XML 里出现「Drupal / SAML SSO」,你 CMDB 里刚好有十台跑 Drupal 的 Web 服务器,那就自动命中,生成一张预警工单。

第四步,接进 SOC 或者你们的漏洞管理平台。和一键处置、告警系统打通,形成「情报进来 → 资产命中 → 工单生成 → 处置闭环」的完整回路。到这,漏洞情报才真正从「看新闻」变成了「管资产」。

▲ 深蓝技术线框蓝图风格,漏洞情报工程化链路从左到右:定时拉取齿轮、XML 解析节点、漏洞入库圆柱、资产匹配节点、SOC 预警铃铛,青白线条连接,深蓝背景

07本周实战与合规收尾

回到开头那个 php2shell。用上面这套流程,你在 10 月 23 日早上拉一下 10 月 21 日到 23 日的窗口,CNNVD 同步收录的那几条 PHP 漏洞就进你库了。再一匹配 CMDB,凡是跑了 PHP 8.3 低于 8.3.36、或者 WordPress、Drupal、Laravel 的资产,当天就能弹出预警:「贵单位 X 台 Web 服务器命中 CNNVD 新收 PHP 高危 RCE,请 48 小时内升级至 PHP 8.5.12、8.4.27、8.3.36 或 8.2.35」。

这比人工刷页面快在哪?自动化当天入库,人肉可能一两天天后才刷到,而这一两天,漏洞的 PoC 已经在网上传开了。处置建议直接引用官方:升级到修复版本;暂不能升的,用 WAF 拦异常 multipart 请求、调 pm.max\_requests 这些临时缓解。

最后几点合规提醒,老宋一并交代:xmlContent 链接 10 分钟有效期,下载要快;接口有频率限制,按官方节奏走增量,别狂刷;密钥保管好,别进 git;数据只用于本单位合规预警和资产处置,守好 CNNVD 的使用边界。也别把 CNNVD 当唯一源,和 CISA KEV、CNVD、NVD 交叉比对,覆盖才全。

// 老宋说

把漏洞情报从「看新闻」升级成「拉接口」,听起来是个技术动作,本质是安全运营从被动到主动的一小步。本周 php2shell 这种「PoC 已广泛传播」的高危漏洞,留给甲方的反应时间是以小时计的。你单位要是还在靠人肉刷页面,等看到的时候资产可能已经被扫了。实名认证、申请 API、接进台账——这三步今晚就能立项,比等任何一条提醒都实在。

读推荐阅读

  1. 本次分析的原文章:CNNVD 通过官方 API 接口获取漏洞信息(baby神 @ 51CTO)

https://blog.51cto.com/babyshen/15036775

  1. CNNVD 漏洞 XML 信息获取接口文档(官方,2026-06-24 更新)

https://www.cnnvd.org.cn/frontend/specDocDownload

  1. CNNVD 官网:漏洞通报、热点漏洞与文档规范下载

https://www.cnnvd.org.cn/

  1. 国家信息安全漏洞共享平台(CNVD)关于 PHP 远程代码执行漏洞的安全公告(php2shell)

https://www.cert.org.cn/publish/main/9/2026/20261022162132536309183/20261022162132536309183\_.html

  1. 界面新闻:PHP 高危漏洞或冲击全球七成网站,多国机构紧急预警

https://new.qq.com/rain/a/20261022A0DMWH00

网络安全老宋 · 转载请注明出处

防御,不是在演练期间发现攻击,而是在演练开始前就把攻击面收敛到最小。

end

不想错过文章内容?读完请点一下“在看**”,加个“关注”,您的支持是我创作的动力

期待您的一键三连支持(点赞、在看、分享~)

前路“无人”:自主车辆加速奔向战场" 网络安全文章

前路“无人”:自主车辆加速奔向战场"

报告分析地面无人自主车辆技术发展现状及军事应用前景,指出商业领域技术突破推动军用自主车辆跨越式发展。报告建议美国防部以自主技术优先为核心,快速整合地面无人自主车辆,降低军人风险、提升保障能力。报告详述美军多个在研项目进展,并对比乌克兰、英国、俄罗斯、中国等国发展情况,提出优先采纳民用自主技术、推行开放架构与灵活采办等可操作建议。
CNVD漏洞周报2026年第42期" 网络安全文章

CNVD漏洞周报2026年第42期"

CNVD本周共收录623个漏洞,其中高危334个、0day占比78%,涉及PHP远程代码执行与IBM产品SQL注入等高危风险,厂商已发布补丁,建议用户及时更新系统并关注电信、工控等行业漏洞动态。
评论:0   参与:  0