漏洞信息
测试设备:D-link DWR-M920
影响范围:D-Link DWR-M920、DWR-M921、DIR-822K 和 DIR-825M 1.1.5
固件:固件版本 V1.1.5

这里可以看到,漏洞跟 /boafrm/formDebugDiagnosticRun、host有关,然后命令执行少不了system之类函数,这里有个细节,漏洞评级5.3,初步判断应该是后台,如果是前台RCE不应该那么低
漏洞分析

启动项分析,这里面看到 boa,http服务用的是 boa,同时根据返回报,快速判断


Boa
这里学习了解到,Boa纯C语言写的最小化 webserver、逻辑简单、单进程、非常依赖boafrm框架
漏洞定位

这里直接找到,在debug.html页面有相关调用

后端分析
看到页面,有command,直接尝试cat /etc/passwd,发现直接可以执行命令,有点离谱,直接结束了吗

通过后端,进一步分析漏洞 boafrm/formDebugDiagnosticRun来接收处理


这里从请求中获取 submit-url参数,用来提交后跳去哪个页面,这里复现分析发现跳转存在信息探测风险



这里也算是发现新漏洞,因为会检查参数是否合法,如果不合法就会报错

这里看见对host参数处理逻辑,host给v5,然后v5字符拼接给v7,system(v7)导致命令执行
这里还进行了过滤,如果前三个字节是top|前4个字节是ping|flash all,这些不会执行,这里前几个字节匹配,可以尝试添加其他字符进行绕过,如下


绕过黑名单命令,到这里就结束了,从漏洞,到后端逻辑,到绕过
这里说一下,/boafrm/formDebugDiagnosticRun是提交表单执行命令,不是直接返回结果,需要访问/debug.htm来查看执行结果!

