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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-42533-Config-Scanner — ماسح تكوين ثابت يكتشف تهيئات nginx المعرضة لخطأ التقاط-تجاوز المعقد ثنائي المسار (خريطة regex + التقاط regex → تجاوز سعة الكومة / تسرب معلومات). | Kitploit
أدوات/GitHubGitHub/0xcyberstan/cve-2026-42533-config-scanner
التحليل الثابتماسحات الثغرات الأمنيةتحليل الكودتدقيق التكوينأمن الويبDevSecOpsسوء التكوين
GitHub0xcyberstan/cve-2026-42533-config-scanner

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-42533-Config-Scanner

ماسح تكوين ثابت يكتشف تهيئات nginx المعرضة لخطأ التقاط-تجاوز المعقد ثنائي المسار (خريطة regex + التقاط regex → تجاوز سعة الكومة / تسرب معلومات).

عرض المستودع
29540منذ 3 أشهرتمت المراجعة من قبل Kitploit
مشاركة

ماسح تصادم الالتقاط في nginx

ماسح ثابت للقراءة فقط يكتشف إعدادات nginx المعرّضة لخطأ فئة تصادم الالتقاط ثنائي المرور complex_value (استشارة F5/nginx SIRT، يوليو 2026). يقوم بتحليل إعداداتك ويبلّغ عن النمط المعرّض مع السبب والموقع. لا يستغل أي شيء ولا يمس الخادم قيد التشغيل.

ملف واحد، مكتبة قياسية فقط، Python 3.6+.

الشرح الكامل للثغرة: https://cyberstan.co.uk/nginx-rce/

الخطأ

يبني nginx العديد من قيم التوجيهات على مرحلتين. تقيس مرحلة LEN الطول وتخصص مخزنًا مؤقتًا، ثم تكتب مرحلة VALUE فيه. تُقرأ التقاطات التعبيرات النمطية ($1 إلى $9، أو المسمّاة (?P<name>...)) من حالة مشتركة لكل طلب. يشغّل map الذي يكون مفتاح مطابقته تعبيرًا نمطيًا مطابقة PCRE جديدة في اللحظة التي تُقيَّم فيها متغيّره، وتلك المطابقة تكتب فوق حالة الالتقاط المشتركة. إذا قِيس التقاط في مرحلة LEN ثم شُغّل map بتعبير نمطي قبل أن تعيد مرحلة VALUE كتابة ذلك الالتقاط، تختلف المرحلتان:

  • التصادم يجعل القيمة أطول من المقيس: تجاوز سعة المخزن المؤقت في الكومة (كتابة خارج الحدود يتحكم بها المهاجم)
  • التصادم يجعل القيمة أقصر من المقيس: إرجاع كومة غير مهيّأة إلى العميل (تسريب معلومات لمؤشرات libc/الكومة)

كلا الاتجاهين قابل للاستغلال عن بُعد عندما يكون مدخل map متأثرًا بالمهاجم ($request_body، $http_*، $arg_*، $uri، $ssl_preread_server_name، وما إلى ذلك).

ما يُعدّ معرّضًا للثغرة

يبلّغ الماسح عن موقع أو خادم عندما تلتقي كل هذه العناصر في مخزن مؤقت واحد ثنائي المرور، بالترتيب القابل للاستغلال:

  1. مصدر الالتقاط: location ~ بتعبير نمطي، أو server_name ~، أو rewrite، أو if (... ~ ...)، أو map بتعبير نمطي مع مجموعة التقاط.
  2. محفّز التصادم: map (http أو stream) بمفتاح مطابقة تعبير نمطي ~ أو ~*، يُشار إليه بمتغيّر خرجه.
  3. مصرف ثنائي المرور يستخدم كلاً من مرجع الالتقاط ومتغيّر map النمطي:
    • التوجيهات أحادية القيمة (return، set، add_header، proxy_method، proxy_pass، rewrite، index، وغيرها): كلا المرجعين في القيمة نفسها.
    • عائلات param/header (proxy_set_header، proxy_set_body، fastcgi_param، scgi_param، uwsgi_param، grpc_set_header): تبني مخزنًا مؤقتًا واحدًا لكل طلب للعائلة بأكملها، لذا يمكن أن يكون المرجعان في توجيهات منفصلة في الموقع نفسه.
  4. الترتيب: يجب تقييم الالتقاط قبل map النمطي. يعمل map النمطي مرة واحدة ويخزّن النتيجة مؤقتًا، لذا فإن map قبل الالتقاط يقرأ حالة متسقة وغير معرّض للثغرة. يبلّغ الماسح عن تلك الحالات كخالية (آمنة لكن هشّة، لا تعِد الترتيب).

الاستخدام

# scan a single config (follows include directives by default)
python3 nginx_capture_clobber_scan.py /etc/nginx/nginx.conf

# scan a directory (uses nginx.conf if present, else all *.conf)
python3 nginx_capture_clobber_scan.py /etc/nginx/

# scan several roots
python3 nginx_capture_clobber_scan.py site-a.conf site-b.conf

# machine-readable output
python3 nginx_capture_clobber_scan.py /etc/nginx/nginx.conf --json

# do not expand include directives
python3 nginx_capture_clobber_scan.py /etc/nginx/nginx.conf --no-includes

الخيارات

الخيارالتأثير
--jsonإخراج تقرير JSON بدلاً من النص.
--no-includesعدم اتباع توجيهات include.

رموز الخروج

الرمزالمعنى
0لم يتم العثور على أي إعدادات قابلة للاستغلال.
1تم العثور على إعداد واحد قابل للاستغلال على الأقل.
2خطأ في الاستخدام (لم يتم إعطاء مسار، أو لم يتم العثور على أي مسار).

قابل للاستخدام في CI، نظرًا لأن الإعداد القابل للاستغلال يُرجع رمز خروج غير صفري:

python3 nginx_capture_clobber_scan.py /etc/nginx/nginx.conf || echo "review needed"

المخرجات

يطبع وضع النص، لكل نتيجة: الملف والسطر، والنطاق المحيط، وتوجيه الـ sink، ومتغيرات الالتقاط والـ map المعنية، والـ map المسبِّبة، وسببًا من سطر واحد. تسرد قسمًا مُنقّحًا حالات التعايش بالترتيب الآمن. يُنتج --json:

{
  "vulnerable": true,
  "findings": [
    {
      "file": "/etc/nginx/conf.d/api.conf",
      "line": 12,
      "scope": "location ~ ^/api/(.+)$",
      "directive": "proxy (family buffer)",
      "captures": ["$1"],
      "map_vars": ["$is_bot"],
      "triggers": ["$is_bot <- regex-map on $http_user_agent [nginx.conf:30]"],
      "reason": "..."
    }
  ],
  "cleared_safe_order": [],
  "regex_maps": [],
  "missing_includes": []
}

إصلاح ما يتم العثور عليه

  1. طبّق تصحيح المورّد (nginx 1.30.4 stable / 1.31.3 mainline، NGINX Plus R36 P7 / 37.0.3.1). هذا هو الإصلاح الكامل الوحيد. يضيف التصحيح حارسًا حدوديًا (ngx_http_script_check_length()) يمنع تمريرة VALUE من الكتابة خارج المخزن المؤقت المخصص، ويحسب طول السلسلة المُعادة من البايتات المكتوبة فعليًا بدلًا من قياس تمريرة LEN، مما يسدّ اتجاهي الفائض وتسريب المعلومات.
  2. تقوية الإعداد المؤقتة (دفاع في العمق، وليست بديلًا عن التصحيح):
    • لا تُشِر إلى متغير map بتعبير نمطي في نفس الموقع أو المخزن المؤقت مع مرجع $1 إلى $9 أو مرجع التقاط مسمّى.
    • لا تُعِد استخدام نفس المجموعة (?P<name>...) عبر عدة خرائط regex.
    • أبعِد مراجع الالتقاط ومراجع خريطة regex عن نفس عائلة proxy_set_header أو fastcgi_param.

القيود

  • التحليل الساكن: يقرأ الإعداد، لا السلوك وقت التشغيل. لا يمكنه حلّ القيم التي تنتجها متغيرات set الديناميكية.
  • أهداف include غير القابلة للقراءة (على سبيل المثال المسارات المطلقة غير الموجودة محليًا) تُبلَّغ ضمن missing_includes، ولا تُتخطّى بصمت. شغّله على المضيف الذي يُحلّ فيه الإعداد للحصول على تغطية كاملة.
  • يمكن تحييد إصابة الالتقاط-قبل-الخريطة المُبلَّغ عنها وقت التشغيل إذا كان متغير الخريطة ذلك قد قُيِّم سابقًا في نفس الطلب (سيكون مخزّنًا مؤقتًا بالفعل). لا يزال الماسح يبلّغ عن هذه، وهو الخيار المحافظ لفحص أمني ذاتي.

المرجع

تحليل الثغرة وسلسلة الاستغلال: https://cyberstan.co.uk/nginx-rce/

تنزيل الأداة