
Oracle Access Manager (CVE-2018-2879)를 위한 패딩 오라클 익스플로잇으로, 암호화된 쿠키를 복호화하고 임의의 평문을 암호화하여 침투 테스트 중 인증 우회를 가능하게 합니다.
이 익스플로잇은 Oracle OAM 11.1.2.3.0에 대한 침투 테스트 중에 개발되었습니다. sec-consult의 기술 설명을 기반으로 작성되었습니다.
https://www.sec-consult.com/en/blog/2018/05/oracle-access-managers-identity-crisis/
이 익스플로잇은 python-paddingoracle에 의존하며, 여기서 다운로드할 수 있습니다.
https://github.com/mwielgoszewski/python-paddingoracle
# python oracle-oam-exploit.py -h
####### # # # #######
# # # # ## ## # # # ##### # #### # #####
# # # # # # # # # # # # # # # # # #
# # # # # # # ##### ## # # # # # # #
# # ####### # # # ## ##### # # # # #
# # # # # # # # # # # # # # #
####### # # # # ####### # # # ###### #### # #
Oracle Padding Oracle
coded by: Mostafa Soliman
usage: oracle-oam-exploit.py [-h] [-e ENCRYPT] [-d DECRYPT] [-v] URL
positional arguments:
URL Target resource URL
optional arguments:
-h, --help show this help message and exit
-e ENCRYPT, --encrypt ENCRYPT
Encrypt plain text data
-d DECRYPT, --decrypt DECRYPT
Decrypt base64 encode cipher text
-v, --verb Show decrypt block info
익스플로잇은 Oracle OAM 인증이 필요한 리소스의 URL을 입력받아 다음 단계를 수행합니다:
침투 테스터는 -d 플래그를 사용하여 복호화하려는 암호화된 값(encquery, encreplay, cookie)을 지정할 수 있습니다.
침투 테스터는 -e 플래그를 사용하여 암호화하려는 평문 값을 지정할 수 있습니다.
Oracle OAM SDK를 리버싱하면 쿠키가 다음과 같은 구조로 구성되어 있음을 알 수 있습니다.
Salt= ACL= AuthId= Ip= TCT= SessionId= userId= validate=BASE64Encode(MD5(Salt+AuthId+Ip+ACL+TCT+SessionId))
따라서 쿠키를 구성하려면, -d 플래그를 사용해 유효한 평문 쿠키를 얻은 후 수정한 다음 -e를 사용하여 다시 암호화하십시오.
