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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
ats-realip-plugin-acl — Apache Traffic Server 10.2.0 - عالية - عن بُعد - بقايا صلاحيات - فشل إضمار ACL في realip PLUGIN | Kitploit
أدوات/GitHubGitHub/abraxas/ats-realip-plugin-acl
المصادقة والترخيصتحليل الثغرات الأمنيةبروكسيات الويب والاعتراضأمن الويباختبار الاختراقسوء التكوينمختبرات وتدريب عملي
GitHubabraxas/ats-realip-plugin-acl

ats-realip-plugin-acl

Apache Traffic Server 10.2.0 - عالية - عن بُعد - بقايا صلاحيات - فشل إضمار ACL في realip PLUGIN

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - ats-realip-plugin-acl

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  ats-realip-plugin-acl

ats-realip-plugin-acl

الفئة: صلاحية متبقية الوصول: عن بُعد

Apache Traffic Server 10.2.0 (b1df7334) - Apache Software Foundation

وحدة realip التجريبية مع acl.subjects: PLUGIN الموثّقة تفتح إعادة تعيين @src_ip عند الفشل (fail-open). إذا لم تستدعِ realip الدالة TSHttpTxnVerifiedAddrSet، يبقى _verified_addr بقيمة AF_UNSPEC. موضوع PLUGIN لا يكون nullptr أبدًا، لذا لا يُنفَّذ أبدًا الرجوع الاحتياطي إلى PEER. تكون ats_is_ip خاطئة، ويُتخطّى @src_ip، وتبقى ip_matches صحيحة. فتطابق قائمة السماح في إعادة التعيين العميل غير الموثوق.

القيمة الافتراضية لـ acl.subjects هي PEER. وrealip ليست في plugin.config القياسي. ولا يقرأ ip_allow.yaml الخاص بالجلسة PLUGIN أبدًا. أما نمط X-Forwarded-For الكلاسيكي من أي طرف فمغلق (يلزم trustedAddress؛ ويجب أن يكون الترويسة عنوانًا واحدًا صالحًا لـ inet_pton).

المعرّفلا يوجد CVE بعد
الفئةصلاحية متبقية (فتح عند الفشل في ACL إعادة التعيين)
الوصولعن بُعد (HTTP غير مصادَق من خارج trustedAddress)
CWECWE-863
CVSSعالٍ: 8.1 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
المنتجApache Traffic Server
المتأثر10.2.0 (b1df7334b39a878971c376da849e8da4984918b6) realip التجريبية + موضوعات PLUGIN
المصادقةلا شيء. العميل ليس ضمن trustedAddress.
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1:18770 فقط

ثبّتُّ وسم الإصدار العام 10.2.0 وكشف الالتزام b1df7334. المختبر عبارة عن وكيل عكسي ats-10.2.0-lab:local مبني من المصدر على واجهة الاسترجاع (loopback). CONTROL PEER يعيد 403. PLUGIN يعيد 200. ولا يزال PURGE للجلسة يعيد 403.

ما يمكن للمهاجم فعله

الوصول إلى ATS مع تحميل realip.so التجريبية وضبط proxy.config.acl.subjects: PLUGIN (أو PLUGIN,PEER). وإعادة تعيين السماح @src_ip=10.0.0.0/8. والاتصال من عنوان خارج trustedAddress.

الطريقةالمخرجالصلاحية
HTTP من 172.x خارج trustedAddress إلى إعادة تعيين @src_ip=10.0.0.0/8realip تتخطى TSHttpTxnVerifiedAddrSet (address_setter.cc:29-38)؛ موضوع PLUGIN حاضر دائمًا (UrlRewrite.cc:462-473)؛ تخطّي @src_ip عندما !ats_is_ip (:495-514)السلامة (مُثبتة مختبريًا): ACL إعادة التعيين يطابق. الأصل يعيد 200 مع ATS-REALIP-PLUGIN-ACL-WITNESS. أما CONTROL مع acl.subjects=PEER فيعيد 403.
المثل مع Client-IP: 10.1.2.3 من النظير غير الموثوقsimple.cc verify خاطئة؛ تُتجاهل الترويسةالسلامة (مُثبتة مختبريًا): لا يزال الفتح عند الفشل يعيد 200. وليس انتحالًا للعنوان المُتحقَّق منه.
PURGE من العميل نفسهip_allow.yaml للجلسة PEERمغلق (مُثبت مختبريًا): 403. لا تعيد PLUGIN كتابة ACL الاتصال أبدًا.
مضيف بدون @src_ipالخريطة الافتراضيةمغلق (مُثبت مختبريًا): النص DENIED، بلا شاهد.

مُثبت مختبريًا مقابل مُستنتَج: PLUGIN 200، وPEER 403، وPURGE 403، والخريطة المرفوضة، والفتح عند الفشل مع الترويسة غير الموثوقة كلها مختبريًا. أما ما يمنحه الأصل بعد ذلك فهو مُستنتَج من إعادة التعيين التي كان يُفترض أن تكون لـ 10/8 فقط.

يتطلب: realip.so التجريبي بالإضافة إلى acl.subjects=PLUGIN (أو PLUGIN,PEER). إعادة تعيين قائمة السماح @src_ip. ليس افتراضيًا.

السطح المجاور الذي يبقى مغلقًا

السطحالمختبر
CONTROL acl.subjects=PEER403 على نفس خريطة @src_ip
الجلسة ip_allow.yamlPURGE من المهاجم 403
خريطة بدون @src_ipDENIED
trustedAddress فارغلا يتحقق أبدًا؛ لا يزال fail-open فقط عندما تكون subjects هي PLUGIN
XFF الكلاسيكي من أي مصدرمغلق. يجب أن يكون الترويسة عنوان inet_pton واحدًا من نظير موثوق
SNI ip_allowPEER/PROXY فقط؛ المصافحة تحدث قبل ترويسات HTTP
subjects الافتراضية PEERالمتبقي لا ينطبق

ليس المتبقي الكلاسيكي "ثق بـ X-Forwarded-For من أي مصدر". المتبقي هو مسار ACL لإعادة تعيين PLUGIN الموثّق.

المختبر

python3 ats-realip-plugin-acl-Abraxas-Labs.py

أو

cd lab
./run.sh

Loopback 127.0.0.1:18770 (الأصل 18771). مشروع Compose ats-realip-plugin-acl. الصورة ats-10.2.0-lab:local. الحاوية الجانبية للمهاجم 172.x. الشاهد ATS-REALIP-PLUGIN-ACL-WITNESS. السطر الأخير:

SUCCESS ats-realip-plugin-acl control-http=403 poc-http=200 purge-http=403 denied-http=200 spoof-http=200 trusted-http=200 ATS-REALIP-PLUGIN-ACL-WITNESS

الإصلاح

تعامل مع PLUGIN على أنه غير متاح عندما تكون get_verified_client_addr مساوية لـ AF_UNSPEC (أو اجعل الدالة الجالبة تُرجع nullptr، بما يطابق TSHttpTxnVerifiedAddrGet). عندها يعمل الرجوع الاحتياطي إلى PEER. لا تتخطَّ @src_ip عندما يكون مؤشر subject غير فارغ لكنه ليس عنوان IP. افشل بشكل مغلق (fail closed) عند استخدام قائمة سماح.

حتى ذلك الحين، اترك acl.subjects على PEER إذا كنت تُحمّل realip لأغراض التسجيل فقط. لا تضبط PLUGIN إلا إذا كان كل عميل يمكنه الوصول إلى إعادة التعيين (remap) هو بالفعل وكيل موثوق.

المراجع

  • github.com/apache/trafficserver وسم 10.2.0 (b1df7334b39a878971c376da849e8da4984918b6)
  • plugins/experimental/realip/address_setter.cc
  • src/proxy/http/remap/UrlRewrite.cc PerformACLFiltering
  • include/proxy/ProxyTransaction.h get_verified_client_addr
  • دليل إدارة realip
  • CWE-863
تنزيل الأداة