news 2026/4/17 15:19:06

基于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/3/14 16:45:08

5Arduino 字符串

Arduino 字符串 在Arduino编程中&#xff0c;字符串&#xff08;String&#xff09;是一种用于存储和操作文本数据的数据类型。字符串可以包含字母、数字、符号等字符&#xff0c;是处理文本信息的重要工具。本文将详细介绍Arduino中的字符串数据类型&#xff0c;包括如何创建…

作者头像 李华
网站建设 2026/4/18 3:49:46

【Open-AutoGLM实战指南】:3天快速上手智谱开源图学习框架

第一章&#xff1a;Open-AutoGLM框架概述与核心特性Open-AutoGLM 是一个开源的自动化通用语言模型集成框架&#xff0c;专为简化多模型协同推理与任务编排而设计。该框架支持主流大语言模型&#xff08;LLM&#xff09;的即插即用接入&#xff0c;通过统一接口抽象实现模型能力…

作者头像 李华
网站建设 2026/4/17 13:19:40

普源信号发生器无输出、波形失真等问题的解决方法

普源&#xff08;RIGOL&#xff09;信号发生器作为电子设计和测试中的重要设备&#xff0c;广泛应用于模拟信号源的生成和调试。然而&#xff0c;在实际使用过程中&#xff0c;用户可能会遇到无输出、波形失真等问题&#xff0c;影响测试效率和结果。本文将系统总结普源信号发生…

作者头像 李华
网站建设 2026/4/9 2:51:40

Wan2.2视频生成模型:电影级画质与复杂动态新体验

导语 【免费下载链接】Wan2.2-T2V-A14B-Diffusers 项目地址: https://ai.gitcode.com/hf_mirrors/Wan-AI/Wan2.2-T2V-A14B-Diffusers Wan2.2视频生成模型正式发布&#xff0c;通过创新的混合专家&#xff08;MoE&#xff09;架构和增强训练数据&#xff0c;实现了电影级…

作者头像 李华
网站建设 2026/4/16 2:48:59

edu漏洞挖掘实战:三个典型案例的思路分享

edu漏洞挖掘实战&#xff1a;三个典型案例的思路分享 前言 最近整理了几个edu系统的漏洞案例&#xff0c;也不能说有意思吧&#xff0c;反正都是大部分会遇到的类型&#xff0c;edu系统一直是个很好的练手场景&#xff0c;系统多、类型丰富&#xff0c;也经常能碰到一些意想不…

作者头像 李华
网站建设 2026/4/13 14:13:53

VibeVoice:AI驱动的多角色超长语音生成新突破

VibeVoice&#xff1a;AI驱动的多角色超长语音生成新突破 【免费下载链接】VibeVoice-1.5B 项目地址: https://ai.gitcode.com/hf_mirrors/microsoft/VibeVoice-1.5B 导语&#xff1a;微软最新开源的VibeVoice-1.5B模型重新定义了AI语音合成技术边界&#xff0c;实现90…

作者头像 李华