news 2026/8/3 22:16:09

使用PHP构建基于GitHub仓库的CVE漏洞POC查找工具

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用PHP构建基于GitHub仓库的CVE漏洞POC查找工具

创建基于PHP的应用,通过CVE-ID从GitHub查找POC/漏洞利用程序

2021年4月9日,我创建了一个名为git-cve的基于命令行的Python3应用程序,它可以为指定的CVE-ID搜索漏洞利用程序/概念验证代码。但我对此并不满意,因为它不够稳定。我考虑创建一个类似但基于Web图形界面的工具。我看到了来自vulners的一篇帖子,他们发布了一个新的机器人,用于查找CVE-ID的POC/漏洞利用程序。

来源:Vulners Facebook 页面

所以我想,让我们也创建一个类似的东西,但仅使用PHP且无需任何成本。在创建我的Git-CVEPython脚本时,我发现了一个GitHub仓库,它自动收集CVE ID的POC/漏洞利用程序,有趣的是,这些收集到的信息都以JSON格式存储。这对我来说是一个加分项。

GitHub 仓库
GitHub - nomi-sec/PoC-in-GitHub

因此,我考虑将这个仓库用作我应用程序的API,因为它是开源的并且经常更新。那么,让我们开始编写代码。

通过点击“raw”,我们可以查看此页面的原始格式,URL看起来像这样:
https://raw.githubusercontent.com/nomi-sec/PoC-in-GitHub/master/2021/CVE-2021-21975.json

如果我更改/2021/CVE-2021-21975的值,它将显示指定CVE编号的结果。我们将保持其他内容不变,只将这两个值替换为用户输入,.json保持不变。我们不需要从用户那里获取两个输入,因为CVE-ID包含了其发布的年份。

所以,首先让我们使用PHP获取用户输入。我们可以通过HTML表单或使用参数来实现。在本例中,我将使用GET方法和URL参数来获取用户输入。

让我们创建一个名为cve_id的变量,并将用户输入存储在其中。它将通过名为id的URL参数获取用户输入,并将其存储到cve_id变量中。

示例
https://url.tld/cve.php?id=CVE-2020-1234

获取用户输入后,我们的第一步是清理用户输入,因为我们不希望其恶意负载在我们的网页中执行。我们不打算创建另一个变量来存储清理后的输入,而是直接使用htmlentities()从其源头清理用户输入。

现在,我们的首要任务是从这个CVE ID中分割出年份,因为我们需要年份来获取CVE-ID的POC/漏洞利用信息。PHP有一个名为explode的函数,它可以帮助使用特殊字符分隔文本。我们的CVE ID包含一个分隔cve-year-id的特殊字符。我们将使用(-)explode函数来分割年份。分割后,我们将得到3个值:0、1、2。0是CVE,1是YEAR,2是ID。现在让我们分割它。

在上面的代码中,首先我创建了一个名为spl的变量来存储所有分割后的数组,然后,我将数组编号1存储到名为year的变量中。现在我们的任务是调用那个GitHub仓库,以获取关于用户CVE ID的POC的所有信息。

请求URL将以JSON格式响应我们,现在我们必须处理JSON以提取关于CVE-ID的确切信息。PHP内置了一个名为json_decode的函数来解码JSON并提取信息,我们将使用这个json_decode来解码响应。首先让我们看看JSON包含什么。

它包含id、仓库名称、html_url、创建日期等。我们不需要所有这些。我们只提取这个POC的URL和作者名称。如果需要,您可以扩展它,但出于文章目的,我只提取作者的用户名和POC链接。首先,让我们使用PHP函数file_get_contentsjson_decode从URL获取JSON并提取其内容。让我们开始吧。

我们的框架现在已经准备好了,让我们将这些数据提取到我们的客户端页面。

输出将类似于下图。

源代码:
我的项目:https://git-cve.system00-sec.com/

感谢您的阅读。我的主要动机是从旧事物中创造新事物并使它们开源,我并不想取笑他人或在经济上伤害他人,本文只是解释了我如何创建我的项目,仅此而已。
CSD0tFqvECLokhw9aBeRquC3oGLY3Hy/RSVByZf07xCye9yyF8xWYomSZASCxc0RUXVhyF8CC+N/LJEJJQDkE7Uxyy4CIErqFLDnJWdLQ2l5HPWwQtn/yYw2C9E0EWMovZsPQAblzWomQn5u0fo3kA==
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/30 11:19:16

Z-Image-Turbo学术研究引用格式规范建议

Z-Image-Turbo学术研究引用格式规范建议 引言:为何需要标准化的学术引用格式 随着生成式AI技术在图像创作领域的广泛应用,Z-Image-Turbo 作为阿里通义实验室推出的高效图像生成模型,已被广泛应用于艺术设计、创意辅助和科研实验等多个领域。…

作者头像 李华
网站建设 2026/7/30 17:10:08

独立开发者创业:基于Z-Image-Turbo构建订阅制服务

独立开发者创业:基于Z-Image-Turbo构建订阅制服务 从开源模型到商业化产品:科哥的AI图像创业之路 在AIGC浪潮席卷全球的今天,独立开发者正迎来前所未有的创业机遇。阿里通义实验室发布的Z-Image-Turbo WebUI图像快速生成模型,凭…

作者头像 李华
网站建设 2026/7/31 17:05:19

基于Spring Boot框架的农业生产设备销售服务平台的设计与实现

目录摘要开发技术核心代码参考示例1.建立用户稀疏矩阵,用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度总结源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!摘要 随着农业现代化进程的加快,农…

作者头像 李华
网站建设 2026/7/28 3:38:36

nilearn神经影像分析:Python机器学习库快速上手指南

nilearn神经影像分析:Python机器学习库快速上手指南 【免费下载链接】nilearn Machine learning for NeuroImaging in Python 项目地址: https://gitcode.com/gh_mirrors/ni/nilearn 为什么选择nilearn进行神经影像分析? nilearn是一个专门为神经…

作者头像 李华
网站建设 2026/8/1 0:53:04

无障碍设计:视障人士导航系统中的地址匹配挑战

无障碍设计:视障人士导航系统中的地址匹配挑战 为什么传统地理编码API难以处理视障用户的描述 视障人士在使用导航应用时,常常会通过"银行旁边红色大楼"这类描述性语言来表达位置。这种基于环境特征和相对位置的口头描述,与传统的结…

作者头像 李华
网站建设 2026/8/2 12:42:05

实战演练:用MGeo构建智能地址补全系统

实战演练:用MGeo构建智能地址补全系统 为什么需要智能地址补全? 作为SaaS产品的产品经理,你是否遇到过这样的场景:用户填写地址时频繁出错,导致物流配送失败或客户信息不准确?传统解决方案往往需要投入大量…

作者头像 李华