欢迎访问Sunbet,Sunbet是欧博Allbet的官方网站!

首页Sunbet_新闻事件正文

CVE-2019-16057 Dlink DNS320 NAS网盘 无需认证 命令注入漏洞分析

b9e08c31ae1faa592020-01-1533安全技术漏洞分析

CVE-2019-16057 Dlink DNS320 NAS网盘 无需认证 命令注入漏洞分析

漏洞概述

Dlink DNS320 是一款NAS网络存储 ,双盘位,市场价格大概在三四百多元。

CVE-2019-16057漏洞的触发无需认证,可以最高权限执行任意命令,根据漏洞纰漏信息,适用于 2.05.B10及以下的版本。

漏洞分析

下载固件

$ wget ftp://ftp2.dlink.com/SECURITY_ADVISEMENTS/DNS-320/DNS-320_REVA_FIRMWARE_PATCH_2.05.B10.ZIP
$ unzip DNS-320_REVA_FIRMWARE_PATCH_2.05.B10.ZIP

解压后文件DLINK_DNS320.2.05b10(2.13.0226.2016)便是我们需要的固件。

固件解压

$ binwalk -e ./DLINK_DNS320.2.05b10(2.13.0226.2016)

解开的固件如下:

CVE-2019-16057 Dlink DNS320 NAS网盘 无需认证 命令注入漏洞分析  安全技术 漏洞分析 第1张

静态分析

根据漏洞纰漏信息,漏洞点登录过程中,IDA打开/cgi/login_mgr.cgi,检索字符串login,查找引用:

CVE-2019-16057 Dlink DNS320 NAS网盘 无需认证 命令注入漏洞分析  安全技术 漏洞分析 第2张

可以找到具体的登录函数process_login,在登录函数process_login中,首先使用函数cgiFormString取出了post的几个字段的数据:

CVE-2019-16057 Dlink DNS320 NAS网盘 无需认证 命令注入漏洞分析  安全技术 漏洞分析 第3张

下面又进行了认证操作:

CVE-2019-16057 Dlink DNS320 NAS网盘 无需认证 命令注入漏洞分析  安全技术 漏洞分析 第4张

认证函数是将post的用户名密码与/etc/shadow中存储的账户比较,身为一个攻击者,不知道正确的用户名密码认证失败后,会执行以下流程(以下else便是认证失败的分支):

魔法才能打败魔法:关于获取csrf-token前端技巧思考

前言 如果说一个产品RCE漏洞相对描述是“一语中的”、“一发入魂”的杀气,想必各大厂商在对杀气感知和处理上总是最快最灵敏的,从各大专有SRC对报告的反映速度、修复速度、挖掘难易程度来说,也很好的佐证了这一点。log里保存着任何服务器接收到的数据原文随时溯源当场处理爱憎分明、系统环境在被攻击时的奇怪变化一看便知,一个好的RCE确实是无敌的,至少在被受攻击者审计出来前,高效便捷准确有效。但它一旦被使用,变会在厂商眼皮下留下“挨打痕迹”。 另一对立面的“面向用户攻击”就没RCE那么方便了,比如一个简单的xss或者csrf的利用,虽然可以在不侵入和损坏框架主体的情况下触发,但需要用户少许的

CVE-2019-16057 Dlink DNS320 NAS网盘 无需认证 命令注入漏洞分析  安全技术 漏洞分析 第5张

可以看到会执行一个函数vuln_func,参数是获取到的post的参数port,仔细查看一下这个函数:

CVE-2019-16057 Dlink DNS320 NAS网盘 无需认证 命令注入漏洞分析  安全技术 漏洞分析 第6张

可以看到很明显的一个命令注入,port的参数值会被拼接到变量s中然后被传入system函数执行,并且这个参数值并没有被严格的检查。如果使用一些绕过字符,便可造成任意命令执行。

一个成功的poc如下:

CVE-2019-16057 Dlink DNS320 NAS网盘 无需认证 命令注入漏洞分析  安全技术 漏洞分析 第7张

补丁对比

获得修复版本固件:

$ wget ftp://ftp2.dlink.com/SECURITY_ADVISEMENTS/DNS-320/REVA/DNS-320_REVA_FIRMWARE_v2.06B01.zip
$ unzip DNS-320_REVA_FIRMWARE_v2.06B01.zip

固件解压:

$ binwalk -e DLINK_DNS320.2.06b01\(2.13.0322.2019\)

使用IDA打开我们关心的login_mgr.cgi文件:

CVE-2019-16057 Dlink DNS320 NAS网盘 无需认证 命令注入漏洞分析  安全技术 漏洞分析 第8张

可以看到在修复版本中将port的值转换为了一个整形,规避了特殊字符,因而避免了注入的可能。

小结

之前分析过这个设备发现了一些问题,这次在分析的时候除了这个注入点外也看到了其它的一些不严谨的地方。这个设备还是有一些挖掘空间的。

参考链接

  1. Flaw Gives Hackers Remote Access to Files Stored on D-Link DNS-320 Devices
  2. D-Link DNS-320 ShareCenter <= 2.05.B10 - Unauthenticated Remote code execution
  3. DNS-320 :: H/W Rev. Ax :: F/W 2.05b10 and Lower (older) :: CVE-2019-16057 :: Remote Command Execution / RCE


网友评论