news 2026/4/16 12:51:29

基于PHP构建:利用GitHub仓库通过CVE-ID查找POC/漏洞利用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于PHP构建:利用GitHub仓库通过CVE-ID查找POC/漏洞利用

基于PHP的应用:通过CVE-ID从GitHub查找POC/漏洞利用

在2021年4月9日,我创建了一个名为git-cve的基于命令行(cli)的Python3应用程序。git-cve可以根据指定的CVE-ID搜索漏洞利用(Exploit)或概念验证(POC)。但我对此并不满意,因为它不够稳定。我当时想创建一个类似的工具,但要基于Web图形用户界面(GUI)。我看到了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表单或URL参数来实现。在本例中,我将使用GET方法和URL参数来获取用户输入。

让我们创建一个名为cve_id的变量,并将用户输入存储在其中。

<?php $cve_id = $_GET['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,分别对应CVE、YEAR、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和作者姓名。如果需要,你可以扩展它,但出于本文目的,我只提取作者的GitHub用户名和POC链接。

首先,让我们使用PHP函数file_get_contents从URL获取JSON,并使用json_decode来提取JSON内容。开始吧。

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

输出将类似于下面的图片。

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

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

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

DeepSeek-R1开源:超越GPT-4o的推理神器来了!

大模型推理能力再突破&#xff0c;DeepSeek-R1系列开源模型凭借纯强化学习训练方法&#xff0c;在数学、代码等复杂任务上达到与OpenAI o1相当的性能&#xff0c;为研究社区提供全新探索工具。 【免费下载链接】DeepSeek-R1 探索新一代推理模型&#xff0c;DeepSeek-R1系列以大…

作者头像 李华
网站建设 2026/4/13 9:56:47

收藏!智能体核心推理范式:ReAct(Reasoning+Acting)全解析

一、ReAct 是什么&#xff1f;新手也能懂的核心定义 简单来说&#xff0c;ReAct Reasoning&#xff08;推理思考&#xff09; Acting&#xff08;执行行动&#xff09;&#xff0c;它不是单一的模型功能&#xff0c;而是一套让大语言模型&#xff08;LLM&#xff09;具备“自主…

作者头像 李华
网站建设 2026/4/16 10:16:26

懂啊!2025 网安工程师证报考避坑指南,考点变革 + 流程拆解,看完事半功倍!

网络信息安全工程师是一种专门从事网络安全工作的职业。随着互联网的快速发展和普及&#xff0c;网络安全问题也日益突出&#xff0c;因此网络信息安全工程师的需求也越来越大。 网络信息安全工程师主要负责保护网络系统和数据的安全&#xff0c;防止黑客攻击、病毒侵入、数据泄…

作者头像 李华
网站建设 2026/4/16 10:21:46

大模型开发必看:Text2SQL与RAG如何选择?工程视角深度解析

本文从工程视角剖析Text2SQL与RAG的本质区别&#xff1a;Text2SQL解决确定性结构查询问题&#xff0c;通过自然语言到SQL的精确翻译返回固定结果&#xff1b;RAG解决不确定性知识检索问题&#xff0c;通过相似度检索和生成回答。Text2SQL失败显性易检测&#xff0c;RAG失败则是…

作者头像 李华
网站建设 2026/4/13 8:10:13

为什么顶级企业都在用Open-AutoGLM而非虚拟机?性能对比数据震惊业内

第一章&#xff1a;Open-AutoGLM用的是虚拟机吗?Open-AutoGLM 并不依赖传统意义上的虚拟机&#xff08;VM&#xff09;来运行其核心功能。它是一个基于容器化技术的自动化大语言模型推理与部署框架&#xff0c;主要利用 Docker 容器实现环境隔离和可移植性。相比虚拟机&#x…

作者头像 李华