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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
ats-ipallow-method-case — Apache Traffic Server 10.2.0 - عالية - عن بُعد - بقايا صلاحيات - حالة طريقة ip_allow | Kitploit
أدوات/GitHubGitHub/abraxas/ats-ipallow-method-case
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الويبأمن الشبكاتمختبرات وتدريب عملي
GitHubabraxas/ats-ipallow-method-case

ats-ipallow-method-case

Apache Traffic Server 10.2.0 - عالية - عن بُعد - بقايا صلاحيات - حالة طريقة ip_allow

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - ats-ipallow-method-case

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  ats-ipallow-method-case

ats-ipallow-method-case

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

Apache Traffic Server 10.2.0 (b1df7334) - Apache Software Foundation

تتجاوز طرق HTTP/1 ذات الأحرف المختلطة رفض PURGE/PUSH/DELETE/TRACE الافتراضي في ip_allow.yaml، وتُنفّذ TUNNEL إلى الأصل المعاد تعيينه بصلاحية uid الخاص بـ ATS. تحليل YAML و@method في remap غير حساس لحالة الأحرف. أما H1 فيُجزّئ الرمز ثم يستخدم strncmp على بايتات الطلب ويُعيد -1 عند عدم تطابق الحالة. ويعامل عكس الرفض ذلك الرمز غير المعروف على أنه مسموح. أما :method في HTTP/2 فهو غير حساس لحالة الأحرف ويبقى مرفوضًا. لا تزال عمليات PURGE/PUSH في الذاكرة المؤقتة تحتاج إلى wksidx معروف، لذا لا تؤدي الأحرف المختلطة إلى تفريغ أو دفع الذاكرة المؤقتة.

هذا خلل متبقٍّ من قائمة التحكم الافتراضية لطرق الوارد، وليس CVE-2026-33267 (hop-by-hop) وليس قائمة التحكم المعكوسة لـ remap الفارغ غير القياسي (المغلقة في هذا الإصدار المثبّت).

المعرّفلا يوجد CVE بعد
الفئةصلاحية متبقية
الوصولعن بُعد (HTTP/1 غير مصادَق من عميل غير loopback)
CWECWE-178، CWE-863
CVSSعالٍ: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
المنتجApache Traffic Server
المتأثر10.2.0 (b1df7334b39a878971c376da849e8da4984918b6) الوكيل العكسي الافتراضي
المصادقةلا شيء. ip_allow.yaml الافتراضي. remap_required: 1 مع map واحد.
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1:18710 فقط. الصورة ats-10.2.0-lab:local.

ثبّتُّ الوسم 10.2.0، والالتزام b1df7334b39a878971c376da849e8da4984918b6. أحدث إصدار مستقر 17 أغسطس 2026. صورة مبنية من المصدر، وليست أداة استغلال.

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

الوصول إلى وكيل عكسي نموذجي (remap_required: 1 مع map واحد) عبر HTTP/1 من عنوان غير loopback. العنوان 127.0.0.1 مسموح بالكامل. plugin.config فارغ. ip_allow.yaml الافتراضي.

الطريقةالمسارالصلاحية
HTTP/1 delete / DeLeTe بعد remap من sidecar بعنوان 172.xhdrtoken_method_tokenize ثم process_quick_http_filter ثم TUNNEL مع METHOD_NOT_SUPPORTED (HdrToken.cc:512-528، HttpTransact.cc:6855-6858)السلامة (مُثبتة مختبريًا): الأصل يُعيد 200 DELETED ATS-IPALLOW-METHOD-CASE-WITNESS. أما DELETE بالأحرف الكبيرة فتُعيد 403. طريقة الأصل بصلاحية uid الخاص بـ ATS.
HTTP/1 traceنفس TUNNELالاستطلاع (مُثبت مختبريًا): الأصل يُعيد 200 TRACE-OK. لا يبني ATS صدى TRACE (لأن wksidx ليس TRACE). أما TRACE بالأحرف الكبيرة فتُعيد 403.
HTTP/1 purge / pushTUNNEL لطريقة غير معروفة، وليس عملية ذاكرة مؤقتةالسلامة (ذاكرة ATS المؤقتة): مغلقة (مُثبتة مختبريًا). رأى الأصل PURGE-ORIGIN / PUSH-ORIGIN. تحتاج عمليات الذاكرة المؤقتة إلى wksidx معروف. push_method_enabled افتراضيًا 0.
نفس الطلب بالأحرف المختلطةقفزة إضافية واحدة إلى الأصلالتوافر (مُثبت مختبريًا): ليس موتًا للعملية.

مُثبت مختبريًا مقابل مُستنتج: رفض الأحرف الكبيرة، وTUNNEL لـ DELETE/TRACE بالأحرف المختلطة، وإغلاق PURGE/PUSH في الذاكرة المؤقتة: مختبري. أما DELETE/TRACE على الأصل فلا يحدثان إلا إذا كان ذلك الأصل يوحّد حالة أحرف الطريقة (IIS / بعض إصدارات Java). أصول RFC 9110 الحساسة لحالة الأحرف (nginx، httpd، Go) تُجيب بـ 501. أصل المختبر يوحّد حالة الأحرف.

يتطلب: HTTP/1 من عميل غير loopback. remap_required: 1 بالإضافة إلى map واحد. الرفض الافتراضي الوارد لـ PURGE/PUSH/DELETE/TRACE. HTTP/2 :method nocase لا يزال مرفوضًا.

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

السطحالمختبر
DELETE / TRACE بحالة أحرف مطابقة من 172.x403، لم يتم الوصول إلى الأصل
HTTP/2 :method بحالة أحرف مختلطةnocase tokenize، لا يزال مرفوضًا
purge / push بحالة أحرف مختلطة كعمليات ذاكرة مؤقتة في ATSرأى الأصل الفعل؛ بقي مسار الذاكرة المؤقتة مغلقًا
رفض وجهة CONNECT (0.0.0.0/8، RFC1918، link-local، ::ffff:0:0/96)ip_allow.yaml الافتراضي الصادر
إخفاق remap_required: 1404، وليس مرحّلًا مفتوحًا
ACL remap معكوس فارغ غير قياسيإصلاح CHANGELOG صمد
CVE-2026-33267 hop-by-hop / إزالة @مغلق على هذا التثبيت

كيف وجدته

ip_allow.yaml الافتراضي هو ACL الطرق البعيدة القياسي. يستخدم تحميل YAML الدالة hdrtoken_tokenize (nocase). ثم يقوم عكس DENY بتعيين _method_mask = ALL & ~listed و _deny_nonstandard_methods = true مع قائمة غير قياسية فارغة (IPAllow.cc:545-548).

يقوم محلل HTTP/1 بعمل tokenize باستخدام hdrtoken_method_tokenize. الـ DFA غير حساس لحالة الأحرف؛ ثم تقوم الدالة المساعدة بـ strncmp لبايتات الطلب مقابل السلسلة المعروفة وتعيد -1 عند عدم تطابق حالة الأحرف:

retval = hdrtoken_tokenize(string, string_len, &string_out);
if (retval >= 0) {
  if (strncmp(string, string_out, string_len) != 0) {
    // Not a case match
    retval = -1;
  }
}

EndRemapRequest يسأل isNonstandardMethodAllowed عن method == -1 (IPAllow.h:365-376). مجموعة غير قياسية فارغة مع رفض غير القياسي تعني !method_in_set، لذا الأحرف المختلطة مسموح بها. is_this_http_method_supported(-1) خاطئة. METHOD_NOT_SUPPORTED يضبط ProxyMode_t::TUNNELLING ويعيد true. تقول الوثائق إن ATS يمرر الطرق غير المعروفة إلى الأصل. يتم تخطي البحث في الذاكرة المؤقتة في وضع TUNNELLING.

:method في HTTP/2 يمر عبر HTTPHdr::method_set -> hdrtoken_tokenize دون فحص لحالة الأحرف. delete في H2 يصبح DELETE ويُرفض. هذه البقايا هي HTTP/1.

المنعطفات الخاطئة: اعتبار أن الأصول الحساسة لحالة الأحرف في RFC 9110 تجعل قائمة الرفض بلا أثر (تبقى PURGE/PUSH في ذاكرة ATS المؤقتة مغلقة؛ DELETE/TRACE على الأصل هو البقايا)؛ استخدام curl من 127.0.0.1 (allow ALL)؛ الادعاء بتنظيف الذاكرة المؤقتة؛ إعادة تصنيف hop-by-hop.

المسرحية: صدفة عكسية. الأوراكل هو سلسلة شاهد على الأصل بعد 403 بأحرف كبيرة.

المختبر

python3 ats-ipallow-method-case-Abraxas-Labs.py

أو

cd lab
./run.sh

Loopback 127.0.0.1:18710. مشروع Compose ats-ipallow-method-case. الصورة ats-10.2.0-lab:local (بناء المصدر من 10.2.0). الحاوية الجانبية للمهاجم على 172.x بحيث لا يُخفي localhost ALL حالة الرفض. يُطبّع Origin حالة الأحرف في method. الشاهد ATS-IPALLOW-METHOD-CASE-WITNESS. السطر الأخير:

SUCCESS ats-ipallow-method-case how=live control=DELETE/TRACE-403 poc=delete/DeLeTe/trace-tunneled cache-purge-push=closed ATS-IPALLOW-METHOD-CASE-WITNESS

الإصلاح

تنزيل الأداة