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

使用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智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

http://www.jsqmd.com/news/214894/

相关文章:

  • AI Agent构建全攻略:从技术原理到工程实践,程序员必备指南,建议收藏!
  • 【必藏干货】大模型Agent技能包:Agent Skills标准化框架详解,让AI开发像搭积木一样简单
  • Z-Image-Turbo学术研究引用格式规范建议
  • 军事仿真:MGeo在战场环境建模中的特殊应用
  • AI团队协作:Z-Image-Turbo多用户权限管理方案
  • 【必收藏】AI落地训练营:详解大模型核心技巧——上下文工程
  • 独立开发者创业:基于Z-Image-Turbo构建订阅制服务
  • 保险行业应用:基于MGeo的灾害地址快速核损系统
  • Z-Image-Turbo编程代码艺术字体生成
  • AI如何帮你理解SOFTMAX函数曲线?
  • 性能瓶颈突破:Z-Image-Turbo多卡并行训练可行性分析
  • AI绘画延迟高?Z-Image-Turbo GPU算力适配优化实战
  • 开源项目可持续性:Z-Image-Turbo维护频率与路线图
  • Z-Image-Turbo科幻世界构建:太空站、外星地表生成
  • 【收藏必看】大模型核心概念全解析:从小白到程序员的入门进阶指南
  • 迟滞比较器在工业控制中的5个经典应用案例
  • Z-Image-Turbo输出目录配置:自定义保存路径方法
  • 极客日报推荐:Z-Image-Turbo入选本周最值得关注开源项目
  • JetBrains试用期重置终极指南:告别30天限制的完整解决方案
  • Z-Image-Turbo低多边形Low Poly风格表现
  • 零基础学网络:5分钟上手反掩码计算器
  • AI智能体开发入门:零基础也能做的第一个智能程序
  • 企业级应用:Z-Image-Turbo支撑每日万张图像生成需求
  • MGeo模型对长尾地址的覆盖能力研究
  • 1小时搭建ORACLE数据库原型:快速验证你的想法
  • cuda核心调度优化:Z-Image-Turbo性能调优
  • 企业级实战:基于MGeo的跨境地址标准化系统架构设计
  • 0基础成功转行网络安全工程师,经验总结都在这(建议收藏)_0基础转行网络安全
  • MGeo模型在海洋渔业船舶停靠点记录中的创新用法
  • RF-DETR:AI如何革新目标检测模型开发