漏洞标题:esm-dev 136 - 路径遍历
发布日期:2025-07-11
漏洞作者:Byte Reaper
供应商主页:https://github.com/esm-dev/esm.sh
软件链接:https://github.com/esm-dev/esm.sh
CVE编号:CVE-2025-59342
漏洞详情
- 文件:exploit.c
- 日期:2025年9月17日
- 目标:esm-dev
- 版本:136
- 目标端点:/transform
- 目标标头:X-Zone-Id
- 漏洞类型:路径遍历
编译与运行
|
|
代码结构
主要函数
exit64bit()
该函数通过汇编指令检查系统调用,并根据结果退出程序。
write_cb()
cURL库的写入回调函数,用于处理HTTP响应数据。
checkLen()
检查缓冲区长度,防止缓冲区溢出。
request()
主请求函数,负责发送漏洞利用请求:
- 初始化cURL对象
- 构建目标URL(支持自定义端口)
- 设置POST数据(JSON格式)
- 配置HTTP标头,包含恶意X-Zone-Id
- 发送请求并分析响应
bypass()
WAF绕过函数,尝试多种编码的路径遍历payload:
- URL编码绕过
- 双重编码绕过
- Unicode编码绕过
- 空字节注入
- 特殊字符混淆
main()
主函数:
- 显示作者和漏洞信息
- 检查操作系统架构(仅支持Linux x86_64)
- 解析命令行参数:
-u:目标URL-p:目标端口-v:详细模式-c:cookie文件-k:自定义payload-b:启用WAF绕过模式
技术特点
漏洞利用方式
通过向/transform端点发送POST请求,在X-Zone-Id标头中注入路径遍历序列:
|
|
Payload多样性
程序内置了16种不同的路径遍历payload变体,用于绕过可能的过滤机制:
- 标准路径遍历:
..//..//modules//transform//... - 点号混淆:
..../..../m.o.d.u.les/transform/... - 反斜杠混淆:
..\/..\/modules\/transform\/... - 问号混淆:
.//.//m?odu?le?s/tran.sfo.rm/... - URL编码:
..%252f%252f..%252f%252fmodules%252f%252ftransform%252f%252f... - 双重编码:
%252e%252e%252f%252f%252e%252e%252f%252fmodules%252f%252ftransform%252f%252f... - 空字节注入:
.%00.//.%00.//modules//transform//... - Unicode编码:
%u002e%u002e%u2215%u2215%u002e%u002e%u2215%u2215modules%u002e%u002etransform%u002e%u002e...
系统检查
程序在运行时检查:
- 操作系统是否为Linux
- 架构是否为x86_64
- 使用
uname系统调用获取系统信息
网络功能
- 使用libcurl进行HTTP通信
- 支持HTTPS(禁用证书验证)
- 可设置超时和连接超时
- 支持cookie持久化
- 详细的响应分析
响应分析
程序会检查:
- HTTP状态码(200-300范围)
- 响应内容中的关键词:
- “Exploit!”
- “cve.js”
- “mjs”
- “console”
- “code”
- “map”
- 等特定字符串
汇编使用
代码中多处使用内联汇编:
- 系统调用(syscall)
- 条件判断
- 内存操作
- 退出控制
使用示例
基本使用
|
|
指定端口
|
|
启用详细模式
|
|
WAF绕过模式
|
|
自定义payload
|
|
安全说明
此代码仅供安全研究和授权测试使用。未经授权对系统进行测试是非法的。使用者需遵守所有适用的法律法规。