漏洞概述 TOTOLINK EX1200L cstecgi.cgi 存在一个 NULL 指针解引用漏洞,导致拒绝服务(Denial of Service)。攻击者可以通过发送一个精心构造的 POST 请求到 CGI 端点 来触发此漏洞。 影响范围 受影响固件:TOTOLINK EX1200L 固件 V9.3.5u.6146_B20201023 漏洞端点:POST 修复方案 目前页面中未提供具体的修复方案。建议用户联系 TOTOLINK 官方获取最新的固件更新或补丁。 POC 代码 复现步骤 1. 下载官方 EX1200L 固件 V9.3.5u.6146_B20201023。 2. 提取固件镜像并定位根文件系统和二进制文件。 3. 在模拟环境中使用 qemu-mipsel 和提取的根文件系统作为 sysroot 启动 CGI 二进制文件。 4. 设置 CGI 相关环境变量以模拟 HTTP POST 请求。 5. 将 PoC JSON 主体通过 stdin 传递给 CGI 程序。 6. 观察进程因 SIGSEGV 崩溃。 本地复现命令 观察结果 进程以 SIGSEGV 终止。 本地 PoC 输出显示退出码 -11。 GDB 回溯显示:#0 strcoll() #1 0x004259ec in cstecgi.cgi 崩溃时的寄存器状态:a0 = valid pointer a1 = 0x0 故障指令:strcoll:4: lbu v0,0(a1) 解释 在崩溃状态下, 比较两个字符串,第二个参数为 NULL。指令 直接解引用 a1。由于 a1 为 0x0,进程立即出错。这证明处理程序最终调用了带有未验证 NULL 指针的字符串比较逻辑。 影响 一个精心构造的请求可以可靠地崩溃 cstecgi.cgi,导致受影响的管理 CGI 组件的拒绝服务。