Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
stylesmuggler — Python PoC 复现 CVE-2026-75650 StyleSmuggler,一个通过报告投毒和失败支付渲染实现的未认证 Magento RCE,并带有 canary 验证。 | Kitploit
工具/GitHubGitHub/fortbridge/stylesmuggler
漏洞分析漏洞利用Web应用程序漏洞利用Web安全渗透测试远程访问工具
GitHubfortbridge/stylesmuggler

stylesmuggler

Python PoC 复现 CVE-2026-75650 StyleSmuggler,一个通过报告投毒和失败支付渲染实现的未认证 Magento RCE,并带有 canary 验证。

查看仓库
842620天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

StyleSmuggler HTTP PoC

针对本地 Magento Open Source 实验环境,对 StyleSmuggler(CVE-2026-75650)进行纯 HTTP 复现的私有研究仓库。

完整技术解析请阅读 Magento StyleSmuggler RCE: Report Poisoning to Code Execution。

该 Python PoC 执行完整的未认证攻击序列:

  1. 污染 Magento 错误报告并从响应中读取其报告 ID;
  2. 创建访客购物车;
  3. 设置失败支付通知所需的访客邮箱;
  4. 存储嵌套的账单地址解析器构造;
  5. 在查询字符串中携带 type、text 和 styles 触发失败支付渲染;
  6. 通过 HTTP 获取每次运行新生成的 canary。

它从不将辅助脚本复制到容器中,也不通过 Docker 调用扫描器。Python 标准库已足够。

针对现有实验环境运行

python3 exploit.py --target http://localhost:18082

最终输出必须包含 RCE VERIFIED 以及该次运行中先前打印的同一个新生成的 STYLESMUGGLER_RUN_... 标记。已有的 canary 无法通过校验,因为每次运行都会生成新的标记。

报告路径必须是目标 PHP 进程所看到的路径。当 Magento 使用其他文档根目录时,请覆盖该路径:

python3 exploit.py \
  --target http://localhost:18082 \
  --report-dir /srv/magento/var/report

自定义 PHP

传入 PHP 语句时不要包含 <?php 或 ?>:

python3 exploit.py \
  --target http://localhost:18082 \
  --code 'file_put_contents(getcwd()."/custom-test.txt", "PHP ".PHP_VERSION.PHP_EOL);'

curl -sS http://localhost:18082/custom-test.txt

该 PoC 会在执行所提供的代码片段之前写入其新生成的验证标记,并在之后仍然验证该标记。

Burp

每个请求,包括报告污染和最终的 canary 获取,都可以通过 HTTP 代理发送:

python3 exploit.py \
  --target http://localhost:18082 \
  --proxy http://127.0.0.1:8082

对于 HTTPS 目标,如果其被拦截的证书不被 Python 信任,请添加 --proxy-insecure。

手动 curl 流程

curl_failed_payment.sh 执行四个 Stage 2 请求,并标注每个请求所到达的 Magento 组件。它需要 curl、jq 和 openssl:

./curl_failed_payment.sh /var/www/html/var/report/REPORT_ID

通过环境变量设置其他目标或 Burp 监听器:

MAGENTO_URL=http://localhost:18082 \
BURP_PROXY=http://127.0.0.1:8082 \
./curl_failed_payment.sh /var/www/html/var/report/REPORT_ID

本地目标

docker-compose.yml 在 127.0.0.1:18082 上提供隔离的 MySQL、OpenSearch 和 PHP/Apache 服务。它期望在 ./magento2-src 处有一个已安装的 Magento 源代码树。

最终干净验证使用的 Magento 提交为:

f8405be831efa461ec18cc5a637cd98afa767015

在运行 Magento 常规的 setup:install 流程之前,克隆源代码并安装其 Composer 依赖:

git clone --filter=blob:none --branch 2.4-develop \
  https://github.com/magento/magento2.git magento2-src
git -C magento2-src checkout f8405be831efa461ec18cc5a637cd98afa767015

docker compose build web
docker compose up -d db opensearch
docker compose run --rm web composer install --no-interaction

在以数据库主机 db、OpenSearch 主机 opensearch 和基础 URL http://localhost:18082/ 安装 Magento 之后,启动 Web 服务:

docker compose up -d web
docker compose ps
下载工具