Exploit d'oracle de padding pour Oracle Access Manager (CVE-2018-2879) permettant le déchiffrement de cookies chiffrés et le chiffrement de texte clair arbitraire pour le contournement d'authentification lors de tests d'intrusion.
Cet exploit a été développé lors d'une activité de test d'intrusion contre Oracle OAM 11.1.2.3.0. Il a été développé sur la base de la description technique de sec-consult.
https://www.sec-consult.com/en/blog/2018/05/oracle-access-managers-identity-crisis/
L'exploit dépend de python-paddingoracle, il peut être téléchargé depuis ici.
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
L'exploit reçoit l'URL de la ressource qui nécessite une authentification Oracle OAM. Il effectue les étapes suivantes :
Le testeur peut spécifier n'importe quelle valeur chiffrée (encquery, encreplay, cookie) qu'il souhaite déchiffrer à l'aide du drapeau -d.
Le testeur peut spécifier n'importe quelle valeur en texte clair qu'il souhaite chiffrer à l'aide du drapeau -e.
En rétro-ingénierie du SDK Oracle OAM, nous pouvons voir que le cookie est constitué de la structure ci-dessous.
Salt= ACL= AuthId= Ip= TCT= SessionId= userId= validate=BASE64Encode(MD5(Salt+AuthId+Ip+ACL+TCT+SessionId))
Donc, pour construire un cookie, obtenez-en un en texte clair valide à l'aide du drapeau -d, modifiez-le puis chiffrez-le à nouveau avec -e.
