> 技术文档 > 【工业安全】-CVE-2024-30891- Tenda AC18路由器 命令注入漏洞_命令注入漏洞 路由器

【工业安全】-CVE-2024-30891- Tenda AC18路由器 命令注入漏洞_命令注入漏洞 路由器


1.漏洞描述

2.漏洞复现

 2.1 qemu-user 模拟:

 2.2qemu-system模拟:

3.漏洞分析

4.poc代码:


1.漏洞描述

漏洞编号:CVE-2024-30891

漏洞名称:Tenda AC18命令注入

威胁等级:高危

漏洞详情:Tenda AC 18 v15.03.05.05的/goform/exeCommand中存在命令注入漏洞,攻击者可利用该漏洞构造命令输入参数以执行任意命令。

影响范围:v15.03.05.05


2.漏洞复现

在/home/CVE-2024-30891目录下,用qemu-usr用户模式模拟,把固件模拟运行起来。

2.1 qemu-user 模拟:

1.首先在CVE-2022-35555.py同级目录下,binwalk -eM 解压文件

2.然后对binwalk解包后的固件中的任何二进制文件执行 file 命令,查看下设备的cpu 架构。

命令:file ./bin/httpd

可知Tenda AC18路由器的httpd是基于ARM架构的 32 位小端序可执行文件

3.给httpd文件可执行权限,命令:chmod+xhttpd

4.复制squashfs-root目录下的webroot_ro文件到webroot中

rm -rf webroot ln -s webroot_ro/ webroot

5.执行模拟命令,sudo qemu-mipsel-static-L . ./bin/httpd

但是卡在这里了,在IDA里面看一下httpd,搜索 welcome,定向分析可知Loc_2E2FC会对 check_network 函数的返回值进行判断,只有网络检查通过才会跳转到右侧loc_2E320继续执行,否则会被卡住。

修改图中MOV R3,R0为MOV R3,#1 。

具体修改时,先在 https://disasm.pro/上查一下汇编对应的十六进制:

6.将path 后的httpd 替换原来的文件。

重新给httpd文件可执行权限,进入squashfs-root目录,打开终端。

执行命令: sudo qemu-arm-static -L . ./bin/httpd