news 2026/4/16 21:46:16

Next.js CVE-2025-29927漏洞自动化扫描器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Next.js CVE-2025-29927漏洞自动化扫描器

Next.js CVE-2025-29927漏洞自动化扫描器

项目简介

本项目是一个专为安全研究人员设计的自动化扫描工具。它通过分析目标网站的HTTP响应头及特定端点,智能识别其是否使用Next.js框架,并精确判断其版本是否受到CVE-2025-29927漏洞的影响。工具支持从命令行参数或文件批量读取URL,并可选地进行漏洞利用尝试,所有操作均可通过丰富的命令行选项进行精细控制。

功能特性

  • Next.js框架识别:自动检测目标网站是否基于Next.js构建。
  • 漏洞版本检测:核对Next.js版本,准确判断其是否属于已修复的安全版本(如15.2.3, 14.2.25, 13.5.9, 12.3.5)。
  • 自动化漏洞利用尝试:在用户明确授权下,可结合自定义字典文件对潜在漏洞进行探测。
  • 灵活的输入源:支持通过命令行直接输入URL列表,或从文本文件中按行读取URL。
  • 可定制的浏览器环境:允许指定自定义的Chromium/Chrome可执行文件路径,增强环境兼容性。
  • 多重输出选项:支持在控制台输出详细的扫描日志(Verbose模式)或简洁的JSON格式结果,并可将结果保存至指定文件。
  • 可选的请求控制:提供跟随重定向、使用特定请求头等高级选项,以适应不同的扫描场景。

安装指南

  1. 环境准备:确保系统中已安装Node.js运行环境。
  2. 克隆项目:使用Git将项目代码克隆到本地。
    gitclone https://github.com/ferpalma21/Automated-Next.js-Security-Scanner-for-CVE-2025-29927.gitcdAutomated-Next.js-Security-Scanner-for-CVE-2025-29927.git
  3. 安装依赖:进入项目目录,使用npm安装所需依赖包(包括puppeteeryargs)。
    npminstall
  4. 浏览器驱动puppeteer默认会下载Chromium。如果你的系统中已有特定路径的Chromium/Chrome(例如/snap/bin/chromium),可以通过-c参数指定,以避免重复下载。

使用说明

工具通过命令行参数进行配置和调用。

基础扫描命令

扫描单个网站:

nodeindex.js-u"https://example.com"

从文件批量扫描URL(每行一个):

nodeindex.js-furls.txt

常用参数组合示例

启用详细输出模式,便于观察扫描过程:

nodeindex.js-u"https://example.com"-v

扫描并将检测到的易受攻击站点保存到结果文件:

nodeindex.js-ftargets.txt-ovulnerable_sites.json

尝试利用漏洞(谨慎使用,请确保拥有测试授权):

nodeindex.js-u"https://target-site.com"-a-wpaths_wordlist.txt

指定自定义浏览器路径并启用无头模式:

nodeindex.js-u"https://example.com"-c"/usr/bin/google-chrome-stable"-t

命令行参数速查表

短参数长参数描述
-u--urls待扫描的URL列表,用空格或逗号分隔。
-f--file包含URL列表的文件路径,每行一个URL。
-c--chromeChromium/Chrome可执行文件路径(默认:/snap/bin/chromium)。
-o--output用于保存漏洞扫描结果的文件路径。
-v--verbose启用详细日志输出模式。
-r--redirect跟随HTTP重定向(可能导致误报)。
-a--attack尝试对发现的潜在漏洞进行利用测试。
-w--wordlist用于漏洞利用尝试的路径字典文件。
-t--headless以无头模式启动Puppeteer浏览器。
-x--headers测试失败时,尝试使用备用请求头格式。
-h--help显示帮助信息。

核心代码

以下是项目中的关键代码片段,展示了参数解析、日志记录和核心检测逻辑。

1. 命令行参数配置与解析

此部分代码使用yargs库定义和解析所有命令行选项,并设置默认的URL列表。

constpuppeteer=require('puppeteer');constyargs=require('yargs');constfs=require('fs');constargv=yargs.option('u',{alias:'urls',description:'List of URLs separated by space or comma',type:'string'}).option('f',{alias:'file',description:'A file with URLs, one for each line',type:'string'}).option('c',{alias:'chrome',description:'Chromium Path',default:'/snap/bin/chromium',type:'string'}).option('o',{alias:'output',description:'Output file of vulnerable sites',type:'string'}).option('v',{alias:'verbose',description:'A small description of the process'}).option('r',{alias:'redirect',description:'Follow redirect (not recommended might lead to false positives)'}).option('a',{alias:'attack',description:'It will try to exploit the vulnerability'}).option('w',{alias:'wordlist',description:'A wordlist of paths'}).option('t',{alias:'headless',description:'If the t flag or headless flag is set, it will launch a headless puppeteer.',}).option('x',{alias:'headers',description:'It will try with middleware:middleware:middleware:middleware:middleware first; in case it fails. It will retry with src/middleware:src/middleware:src/middleware:src/middleware:src/middleware'}).help('help').alias('h','help').argv;constWEBSITES=argv.u?argv.u.split(/[\s,]+/).map(url=>url.trim()):argv.f?fs.readFileSync(argv.f,'utf8').split('\n').map(url=>url.trim()).filter(Boolean):['https://www.boxeurdesrues.com','https://www.sportsshoes.com/',];

2. 日志记录函数

一个条件式日志函数,仅在启用了详细输出(-v)时,将带颜色的消息打印到控制台。

constlog=(message,colorCode='\x1b[0m')=>{if(argv.v)console.log(`${colorCode}${message}\x1b[0m`);};

3. 漏洞修复版本定义

一个常量数组,列出了针对CVE-2025-29927已修复的安全版本号,用于与检测到的版本进行比对。

constVERSIONS_PATCHED=['15.2.3','14.2.25','13.5.9','12.3.5'];

6HFtX5dABrKlqXeO5PUv/9hUQdIGzBuLffwHXrPCx7A=
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

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

RIFE视频插值技术:从入门到精通的完整指南

RIFE视频插值技术:从入门到精通的完整指南 【免费下载链接】ECCV2022-RIFE 项目地址: https://gitcode.com/gh_mirrors/eccv/ECCV2022-RIFE 视频帧插值技术正在彻底改变我们处理视频内容的方式!ECCV2022-RIFE作为实时中间流估计的开创性项目&…

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

电源管理入门必看:零基础掌握核心概念

电源管理入门:从零开始搞懂电子系统的“能量心脏”你有没有想过,为什么你的手机能用一整天?为什么一块小小的锂电池能让智能手表运行好几天?又或者,为什么有些嵌入式设备在休眠状态下几年都不换电池?答案藏…

作者头像 李华
网站建设 2026/4/16 18:01:16

稀疏激活架构重塑大模型成本效益比

稀疏激活架构重塑大模型成本效益比 【免费下载链接】Ling-flash-2.0 项目地址: https://ai.gitcode.com/hf_mirrors/inclusionAI/Ling-flash-2.0 在人工智能规模化部署的关键节点,算力成本与模型性能的平衡成为行业核心议题。蚂蚁集团最新开源的Ling-flash-…

作者头像 李华
网站建设 2026/4/16 14:23:09

FlashAI终极指南:零门槛部署本地大模型,彻底告别数据隐私焦虑

导语:在AI技术飞速发展的今天,FlashAI多模态版整合包以其革命性的本地部署方案,为用户提供了文档处理、音视频分析、图片识别等全方位智能服务。这款工具集将复杂的大模型技术转化为简单易用的桌面应用,让每个人都能安全享受AI带来…

作者头像 李华
网站建设 2026/4/16 14:29:15

Obsidian42-BRAT 终极使用指南:Beta插件自动更新解决方案

Obsidian42-BRAT 终极使用指南:Beta插件自动更新解决方案 【免费下载链接】obsidian42-brat BRAT - Beta Reviewers Auto-update Tool for Obsidian. 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian42-brat Obsidian42-BRAT(Beta Review…

作者头像 李华
网站建设 2026/4/16 14:28:22

Stable Virtual Camera:扩散模型驱动的3D视角生成革命

Stable Virtual Camera:扩散模型驱动的3D视角生成革命 【免费下载链接】stable-virtual-camera Stable Virtual Camera: Generative View Synthesis with Diffusion Models 项目地址: https://gitcode.com/gh_mirrors/st/stable-virtual-camera 你是否曾想过…

作者头像 李华