# Oracle WebLogic ADF Faces 사전 인증 원격 코드 실행 익스플로잇 (CVE-2022-21445, CVSS 9.8) Oracle WebLogic ADF Faces용 사전 인증 원격 코드 실행 익스플로잇 (CVE-2022-21445, CVSS 9.8). 침투 테스트를 위한 상세한 환경 설정, 페이로드 생성, 원격 디버깅 지침을 포함합니다.
CVE-2022-21445(점수 CVSS 9.8)는 신뢰할 수 없는 데이터의 역직렬화 취약점으로, ADF Faces 구성 요소에 존재하는 것으로 확인되었으며, 공격자가 사전 인증(pre-authentication) 없이 원격에서 악용하여 RCE를 수행할 수 있습니다.
이 취약점은 VNG Corporation의 PeterJson과 VNPT의 Nguyen Jang이라는 두 사이버 보안 전문가에 의해 발견되었습니다. 이후 Oracle은 2021년 10월에 이 보고서를 접수했으며, 패치를 출시하는 데 6개월, 즉 2022년 4월까지 걸렸습니다.
이 글에서의 공격은 Oracle Bussiness Intelligence 버전 12.2.1.4.0에 초점을 맞춥니다.
조건: 라이선스가 활성화된 Window 10+ Pro 또는 Window Home(x64)을 설치하거나 Window Server를 사용합니다(Oracle 제품 우선).
1단계: Java 설치, jdk 8u112 이상(8Ux) 버전. 다운로드 링크: JDKv8U112

2단계: Oracle Database 19c 설치, 다운로드 링크: Oracle 19c
데이터베이스 설치를 위한 폴더를 준비하고, 아래와 같은 경로를 만든 다음 새로 다운로드한 데이터베이스 zip 파일을 ___C:\app\oracle\product\19c\db_home1___에 압축 해제합니다.
setup.application 파일을 관리자 권한으로 실행합니다.

DB 설치 안내에 따라 단계별로 수행합니다.
매우 중요한 주의:
8/17 단계에서 __Create as Container database__를 선택하여 향후 Fusion Middleware 설치 프로세스를 위한 플러거블 DB를 엽니다.

9/17 단계에서 Character를 Unicode(AL32UTF8)로 선택합니다.



3단계: SQL Developer 설치, no-jre 버전. 다운로드 링크: SQLDev-NoJRE

sqldeveloper.application 파일을 관리자 권한으로 실행합니다.

아래 그림과 같이 새 연결에 대한 매개변수를 설정합니다. Username과 Password(위 예시의 경우 hr), Hostname(기본값 localhost), Port(기본값 1521), SID(2단계에서 설치한 전역 데이터베이스 이름)를 변경해야 합니다.

__Test__를 선택했을 때 Success 메시지가 표시되면 연결이 성공한 것이므로 __Connect__를 선택합니다.
4단계: Fusion Middleware Infrastructure(FMW) 12.2.1.3.0 버전 설치, 다운로드 링크 FMW_ver_12.2.1.3.0

5단계: Oracle Bussiness Intelligence(OBIEE) 12.2.1.4.0 버전 설치, 다운로드 링크: OBIEE_ver_12.2.1.4.0
setup_bi_platform-12.2.1.4.0_win64.exe 파일을 관리자 권한으로 실행합니다.

OBIEE 설치 안내에 따라 단계별로 설치합니다.
주의: BI 경로는 FWM을 설치한 경로와 동일해야 합니다. 여기서는 __Oracle/Middleware/Oracle_Home__입니다.

6단계: Repository Creation Utility(RCU)를 사용하여 BI 스키마 설정
C:\Oracle\Middleware\Oracle_Home\oracle_common\bin 경로에서 rcu.bat 파일을 관리자 권한으로 실행합니다.
다음 단계를 순서대로 수행합니다.




7단계: OBIEE용 환경 변수 설정

8단계: BI 도메인 생성





4단계에서 시스템이 로그온 실패를 보고하면 도메인 비밀번호가 정확한지 다시 확인합니다.
8단계에서 시스템이 아래 그림과 같은 오류를 보고하면 Window 라이선스를 활성화했는지, Window가 조건 부분에서 설명한 것과 같은지 확인합니다.
![]()
9단계: 설정이 완료되면 방금 생성한 BI 도메인의 경로 __$Oracle_Home\user_projects\domains\bi\servers\AdminServer\tmp_WL_user\adf.oracle.domain.webapp\i83uao__에 접근합니다.
여기의 모든 jar 파일을 별도의 디렉터리에 복사하여 공격 머신에 공유합니다(랩 환경에서는 이렇게 합니다. 실제 공격 시에도 공격 머신에 타깃 머신과 동일하게 설치하여 소스 코드를 확보해야 합니다).
$Oracle_Home\coherence\lib 경로의 coherence.jar 라이브러리도 이 디렉터리에 추가합니다.
이 디렉터리는 페이로드의 성공 여부를 결정하는 중요한 디렉터리입니다. FMW나 BI의 버전, 각 머신의 설치 환경이 일반적으로 다르기 때문에 정확한 버전이 필요하며, 페이로드 전송 중 발생할 수 있는 위험이나 예외를 줄이기 위해서입니다.
10단계 (원격 디버그가 필요한 경우에만 수행합니다. 다시 말하지만 실제 환경이 아닌 테스트에서는 피해자 머신을 마음대로 설정할 수 없으므로, 공격자는 자신의 머신에 타깃 머신 설정도 수행하여 원격 디버그로 오류를 확인할 수 있어야 합니다.)