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中
需要注意的是,需要用单引号构造闭合
攻击