DIR-846系列命令执行漏洞

固件安全
2023-08-27 14:08
92642

CVE-2023-33735

D-Link DIR-846 v1.00A52 被发现包含通过 /HNAP1 接口中的 tomography_ping_address 参数的远程命令执行 (RCE) 漏洞。

固件下载

固件下载地址

模拟固件

使用FirmAE一键模拟固件

但是发现访问ip/login.html页面总是被重定向到index.html

查看网络

这里显示HNAP1认证一直是503状态,说明http服务还是有些问题的

遇到这类服务配置问题,我们需要去找一下日志文件

在这里找到配置文件,日志被关闭了,那我们在根目录创建一个error文件,并且更改配置文件

重启一下服务

我们去网页上刷新一下界面,发现error日志有如下

根据这个日志,我们猜测是php服务没有正常开启

在etc中发现了php7的初始化文件

启动php服务

发现网页正常了

漏洞分析

提示说tomography_ping_address存在RCE

由于有filter检测,tomography_ping_number和tomography_ping_size参数都为FILTER_VALIDATE_INT类型,所以不能构造命令执行。但是tomography_ping_address参数可以被构造。除此之外,还有个check_domain函数去检测

他用正则表达式过滤掉了一些参数,但是没有过滤单引号,这使得我们可以去构造exec函数里面单引号的闭合。正则表达式中规定不能有空格和">"等,我们只能执行无参数指令如ls,想要执行其他的我们需要找其他方法。

有哪些无参数命令可以去执行并造成有效果的攻击?我们想到了可以去执行shell脚本,如果我们可以去写一个文件的内容,然后再去执行它,就能达到目标效果了。

这里我们发现SetNTPServerSettings的接口可以对/etc/config/system文件中的时区进行修改

因此,我们可以利用SetNTPServerSettings接口去修改/etc/config/system文件的内容,在里面注入命令。

所以攻击流程就是先使用SetNTPServerSettings接口往/etc/config/system文件中注入命令,然后再用SetNetworkTomographySettings接口去执行/etc/config/system文件

攻击

  • 使用SetNTPServerSettings接口往/etc/config/system文件中注入命令

  • 使用SetNetworkTomographySettings接口执行/etc/config/system

CVE-2022-46552

D-Link DIR-846 固件 FW100A53DBR 被发现包含通过 lan(0)_dhcps_staticlist 参数的远程命令执行 (RCE) 漏洞。此漏洞是通过精心设计的 POST 请求来利用的。

固件下载

固件下载地址

模拟

使用FirmAE一键模拟固件,遇到和上面一样的问题,解决方法是一样的

漏洞分析

根据提示 lan(0)_dhcps_staticlist 存在RCE

查看changename.sh

$vl_arr[1]和$vl_arr[1]会当作changename.sh的参数,并在倒数第二行执行

攻击

构造POST传参

CVE-2022-46642

D-Link DIR-846 A1_FW100A43 被发现包含通过 SetAutoUpgradeInfo 函数中的 auto_upgrade_hour 参数的命令注入漏洞。

固件下载

固件下载地址

漏洞分析

根据提示,漏洞出现在 SetAutoUpgradeInfo

攻击

CVE-2021-46315

D-Link 路由器 DIR-846 DIR846A1_FW100A43.bin 和 DIR846enFW100A53DLA-Retail.bin 中的 HNAP1/control/SetWizardConfig.php 中存在远程命令执行 (RCE) 漏洞。恶意用户可利用该漏洞在ssid0或ssid1参数中的shell元字符中使用“\”或反引号导致任意命令执行。由于CVE-2019-17510漏洞尚未得到修补和改进www/hnap1/control/setwizardconfig.php,也可以使用换行符和反引号来绕过。

漏洞分析

根据提示 SetWizardConfig.php 中存在远程命令执行 (RCE) 漏洞

这里有命令执行点 unicode_2 或者 unicode_5 都是可以去构造名命令执行的

我们向上追溯数据

$unicode_5 = $data["ssid0"];
$data["ssid0"] = trim($option["wl(1).(0)_ssid"]);

因此 $unicode_5的来源是 wl(1).(0)_ssid

攻击

构造POST传参

{"SetWizardConfig":{"wl(1).(0)_ssid":"$(id>aaaa)","wl(0).(0)_ssid":"ls"}}

CVE-2020-21016

固件为 846A100 的 D-Link DIR-35 设备允许远程攻击者通过 HNAP1/control/SetGuestWLanSettings.php 以根用户身份执行任意代码。

##固件下载

固件下载地址:http://www.dlink.com.cn/techsupport/download.ashx?file=6577

分析漏洞

根据提示,漏洞在 SetGuestWLanSettings.php中


需要注意的是,需要用单引号构造闭合

攻击


分享到

参与评论

0 / 200

全部评论 0

暂无人评论
投稿
签到
联系我们
关于我们