freeBuf
CVE-2021-43474:D-Link DIR-823G命令注入漏洞分析
2023-03-13 11:42:52
所属地 北京

D-Link DIR-823G是中国友讯(D-Link)公司的一款无线路由器。D-Link DIR-823G 1.02B05固件版本存在命令注入漏洞,该漏洞源于程序缺少对外部提交数据的验证,攻击者可利用该漏洞执行任意系统命令。

Part1漏洞状态
漏洞细节漏洞POC漏洞EXP在野利用
未知
Part2漏洞描述
‍漏洞名称

D-Link DIR-823G命令注入漏洞

CVE编号CVE-2021-43474
漏洞类型命令注入
漏洞等级高危(9.8)
公开状态公开
漏洞描述D-Link DIR-823G 1.02B05固件版本中存在命令注入漏洞,该漏洞源于程序缺少对外部提交数据的验证,攻击者可利用该漏洞执行任意系统命令。
时间线2022-4-7 NVD发布
影响产品

D-Link DIR-823G 1.02B05

Part3漏洞复现

1. 复现环境

系统版本:Kali 2022.4

固件版本:DIR823G_V1.0.2B05

2. 复现步骤

使用FAT运行固件

图片

访问http://192.168.0.1/Login.html,确保固件成功运行。

图片

运行PoC

图片

访问http://192.168.0.1/CSX.txt,此时可以读取写入的数据,漏洞复现成功。

图片

Part4漏洞分析

使用binwalk从固件提取数据。

图片

在rcS文件中发现系统运行了goahead程序,并在bin/目录下查找到了goahead文件。

图片

分析goahead文件,可以在sub_423F90函数中发现/HNAP1路径的处理程序为sub_42383C函数。

图片

sub_42383C函数的第31行代码使用参数a7作为系统命令的一部分,然后第32行代码执行了这个命令,值得注意的是该函数在执行命令前并未对参数a7进行检查。

图片

接下来通过动态调试来了解参数a7。通过查看snprintf函数的汇编代码,可以确定寄存器$a3对应参数a7。

图片

在gdb中设置断点0x00423A04并运行PoC,随后可以观察到寄存器$a3指向post请求数据。即post请求数据作为系统命令的一部分,因此可以通过构造HTTP请求进行命令注入。

图片

Part5修复建议

厂家已发布漏洞修复程序,尽快升级到最新版本。

本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏