当前位置: 首页 > news >正文

基于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-CVE Python脚本时,我发现了一个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智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

公众号二维码

公众号二维码

http://www.rkmt.cn/news/147537.html

相关文章:

  • FFmpeg编写笔记(九十二)基于Kotlin的开源Android推流器StreamPack
  • 2025年热门的陶瓷卫生瓷具工厂推荐:不错的陶瓷卫生瓷具工厂有哪些? - 工业品牌热点
  • 药物筛片平台哪家强?重磅公布2025-2026年药物筛选推荐品牌排行榜 - 品牌推荐大师1
  • 2025年环卫服务公司实力推荐:环卫承包公司/市政道路清扫/市政清洁公司一站式解决方案 - 品牌推荐官
  • 东方博宜OJ 2420:汉诺塔(4) ← 递归
  • 2025年知名的生涯规划设备/生涯规划模拟系统校园应用优选榜 - 品牌宣传支持者
  • 2025年12月陕西地弹门维修公司最新排名盘点:技术实力与本地化服务双维度测评 - 深度智识库
  • 香港服务器租用带宽类型全解
  • CodeSpirit .NET 10 升级说明
  • 【算法】day 19 leetcode 100 矩阵+贪心 - 详解
  • 北京顺义婚内财产协议律所推荐:2025-2026靠谱机构 TOP5 选择攻略 - 老周说教育
  • 【独家首发】cogagent Open-AutoGLM内部架构曝光,专家级调优策略首次公开
  • Knip - 一键清理项目无用代码
  • 你还在手动写脚本?Open-AutoGLM一键生成短视频内容的5个关键步骤
  • 2025年螺杆泵靠谱厂家推荐:螺杆泵专业供应商选择与个性化定制厂家选择指南 - mypinpai
  • 伊朗新闻数据集-33万+条波斯语新闻文本-涵盖社会政治经济国际多领域-完整标题摘要正文-支持NLP研究文本分析内容挖掘应用-2016至2022年期间的各类新闻内容-自然语言处理研究、跨文化传播分析
  • 2025年12月陕西幕墙安装公司最新推荐榜:含幕墙安装维修、雨棚更换、地弹门维修、窗户改造 - 深度智识库
  • 快排(非递归)和归并的实现
  • 保姆级2025网安学习路线:从零到专家,一份超详细避坑指南
  • 2025年引流获客工具推荐排行榜,新测评精选服务商推荐 - mypinpai
  • 2025年质量好的粘结钕铁硼塑磁转子TOP实力厂家推荐榜 - 品牌宣传支持者
  • 为什么顶级创作者都在用Open-AutoGLM?揭秘智能视频生成背后的黑科技
  • 错过cogagent Open-AutoGLM等于错过AI未来:3分钟看懂技术拐点
  • 计算机毕业设计springboot农村住宅房屋信息管理应用系统 基于Spring Boot的农村住宅信息管理系统设计与实现 Spring Boot框架下的农村房屋信息管理平台开发
  • 2025年白酒厂家实力推荐榜:纯粮食高梁酒/酱香型纯粮白酒/封坛老酒源头厂家精选 - 品牌推荐官
  • Open-AutoGLM设备需求曝光(稀缺配置清单):企业级部署不可忽视的5项硬指标
  • Amazon_Unlocked_Mobile_413840条_Amazon解锁手机用户评论数据集_品牌_价格_评分_评论文本_适用于情感分析与推荐系统_高覆盖率样本与详细字段统计_用户情感分析
  • 为什么顶级智能设备都在用Open-AutoGLM做语音唤醒?真相曝光
  • 揭秘cogagent与AutoGLM融合黑科技:实现真正自主任务执行
  • 【大模型落地关键一步】:Open-AutoGLM部署硬件选型避坑指南