半夜两点,我盯着NVD上一条刚刷出来的漏洞CVE编号,CVSS评分9.8。查询点进去,漏洞描述里写着“某企业级VPN设备远程代码执行”,查询影响版本从3.2.1到4.1.7。漏洞那一刻的查询感觉很复杂——既想立刻给客户发邮件,又忍不住先骂一句:这破漏洞怎么现在才公开。漏洞
查漏洞这件事,查询没干过的漏洞人以为就是上百度搜“XX系统 漏洞”。搜出来的查询结果要么是几年前的过期公告,要么是漏洞营销号搬运的二手信息,连个原始链接都不给。查询真正靠得住的漏洞,是查询几个固定站点。NVD,也就是美国国家漏洞数据库,算是最基础的入口。它把CVE编号、CVSS评分、受影响产品、参考链接全列出来,格式统一,适合批量筛查。但NVD有个毛病:更新慢。一个漏洞从厂商确认到NVD收录,有时差两三天。对搞应急响应的人来说,两天足够攻击者扫完整个网段。
所以还得盯厂商自己的安全公告页。微软的MSRC、思科的Security Advisories、Apache的security页面,这些地方发得最快。我养成了一个习惯:每周一早上先刷一遍常用产品的厂商公告,比喝咖啡管用。有一次,某开源组件爆出反序列化漏洞,NVD还没动静,Apache的邮件列表里已经有人贴出了PoC片段。我照着改了两行配置,挡掉了一次扫描。
国内的话,CNNVD和CNVD是两个绕不开的。CNNVD偏重漏洞库的标准化收录,CNVD更贴近行业通报。但说实话,这两个站点的搜索体验一般,筛选条件不如NVD细致。有时候查一个国产OA系统的漏洞,CNVD上有编号,点进去只有一段模糊描述,连影响版本都不写全。这时候就得去翻厂商官网,或者去Seebug、Vulhub这些社区找细节。Seebug的漏洞详情页经常带复现步骤,Vulhub直接给你Docker环境,省事。
还有一个地方容易被忽略:GitHub。很多漏洞在官方披露之前,先出现在某个安全研究员的仓库里。搜关键词加上“CVE”或者“exploit”,按最近更新时间排序,经常能捡到宝。当然,也容易踩坑——有些仓库是钓鱼的,或者PoC根本跑不通。我的判断标准很简单:看提交记录和issue区。如果作者连README都写得含糊,直接关掉。
工具方面,我常用的是searchsploit。本地装一个Exploit-DB的镜像,命令行里敲关键词,秒出结果。比开浏览器快,尤其适合在客户现场没外网的时候。另外,nuclei的模板库也值得跟,它把很多漏洞的检测逻辑做成了YAML文件,更新频率高。我试过用nuclei扫一个刚爆出来的Spring漏洞,官方PoC还没放出来,社区模板已经能用了。
说个真事。去年有个客户被勒索,溯源发现入口是一个老旧的Struts2漏洞。我问运维为什么不打补丁,他说“查了NVD,没看到这个版本受影响”。我当场打开NVD,把CVE编号输进去,受影响版本列表里明明写着“2.3.15到2.5.10”。他看的是中文翻译站,翻译把版本号漏了。这事之后,我给自己定了个规矩:所有漏洞信息,必须回源到英文原始公告确认一遍。翻译可以看,但不能信。
查漏洞网站这件事,说到底是个信息源管理问题。你不能只靠一个站,也不能只信一个评分。CVSS 9.8的漏洞如果利用条件苛刻,实际风险可能不如一个7.5的。得结合资产暴露面、利用难度、有没有公开PoC一起看。我见过太多人盯着评分最高的那个,结果忽略了旁边那个已经进野利用的。
最后提一句:别在搜索引擎里直接搜“漏洞查询”。出来的前几条全是广告,点进去让你填手机号。真正干活的网站,界面都丑,加载都慢,但数据准。丑就丑吧,能救命就行。
```