
CVE-2025-10035_GoAnywhere Get RCE

الوصف
فاحص خفيف بلغة Python يكتشف ما إذا كان مثيل GoAnywhere معرضًا لـ CVE‑2025‑10035.
ترسل هذه الأداة طلب GET مصممًا بعناية مع User-Agent عشوائي (باستخدام fake-useragent مع قائمة احتياطية)، ولا تتبع عمليات إعادة التوجيه، وتفحص ترويسة Location، وتصنّف المثيل على أنه غير مصحح (معرض) أو مصحح (غير معرض).
ملاحظة: يحتوي هذا المستودع حاليًا على الفاحص فقط. قد يُضاف PoC لاحقًا في موقع منفصل وواضح التسمية إذا/عندما يكون ذلك مناسبًا — في الوقت الحالي هذا المشروع للكشف فقط.
CVE‑2025‑10035 (ملخص لهذا الفاحص)
قد يُنشئ AdminErrorHandlerServlet غير المصحح في GoAnywhere رمز طلب ترخيص صالحًا ويعيده مضمّنًا في رابط إعادة توجيه. يظهر هذا الرمز عادةً كمعامل استعلام bundle في ترويسة Location (غالبًا ما يعيد التوجيه إلى my.goanywhere.com).
my.goanywhere.com (أو مضيف آخر) مع معامل استعلام bundle. وجود bundle = معرض./license/Unlicensed.xhtml بدون bundle، أو لا يعيد التوجيه إطلاقًا.تذكير أخلاقي: قم فقط بتشغيل هذا الفاحص ضد أنظمة تملكها أو مخوَّلًا صراحةً لاختبارها. الفحص غير المصرح به قد يكون غير قانوني و/أو مزعجًا.
User-Agent عشوائي لكل طلب (fake-useragent + قائمة احتياطية).allow_redirects=False) حتى يمكن فحص ترويسة Location.multiprocessing.dummy.Pool.colorama.requestsfake-useragentcoloramaurllib3 (عادةً ما تُثبَّت مع requests)requirements.txt
python -m venv .venv # اختياري لكن يُنصح به source .venv/bin/activate # macOS / Linux .venv\Scripts\activate # Windows pip install -r requirements.txt
فيما يلي أمثلة عملية يمكنك نسخها/لصقها لتشغيل الفاحص في سيناريوهات مختلفة: اختبار سريع لهدف واحد، فحص مجمّع، فحص منخفض المعدل لأمان بيئة الإنتاج، التشغيل داخل Docker، ومقتطف GitHub Actions بسيط لتشغيل الفاحص دوريًا أو عند الدفع.
تفترض هذه الأمثلة أن ملف السكربت الخاص بك يُسمى
check_goanywhere.pyويمكن تشغيله باستخدامpython check_goanywhere.py. عدّل أسماء الملفات والمسارات وعدد الخيوط لتناسب بيئتك.
# افحص الأهداف المدرجة في examples/targets.txt وألحق المضيفات المعرضة بـ results.txt
python check_goanywhere.py examples/targets.txt results.txt
# استخدم 10 خيوط عاملة لفحص أسرع (كن حذرًا مع التزامن ضد بيئات الإنتاج)
python check_goanywhere.py examples/targets.txt results.txt 10
----
## نموذج الإخراج
فيما يلي نماذج إخراج واقعية يمكنك توقعها عند تشغيل الفاحص. تفترض جميع الأمثلة أن اللافتة الافتراضية تُطبع في البداية؛ الأسطر بين `[]` تُظهر رسائل الحالة الملونة التي يطبعها السكربت على الطرفية. بعد الفحص، تُلحق المضيفات المعرضة بملف النتائج.
- [-] غير معرض: https://0.0.0.0:443 - n/N
- [-] خطأ: http://0.0.0.0:8000 - n/N
- [-] خطأ: https://0.0.0.0:443 - n/N
- [-] خطأ: https://0.0.0.0:443 - n/N
- [-] خطأ: https://0.0.0.0:443 - n/N
- [-] غير معرض: https://0.0.0.0:443 - n/N
- [+] معرض: https://0.0.0.0:443 - n/N