漏洞说明
固件下载地址:
http://www.onlinedown.net/soft/572345.htm
JCG路由固件版本:
JYR-N490R 110.1.2.820
这个漏洞直接在路由web页面里输入即可执行任意命令,没有PoC
漏洞分析
此漏洞是由于JCG路由器中的一个web页面负责处理PING请求和Traceroute请求,用来对IP进行ping操作用于诊断网络链接情况,但由于对于这个命令的检测不严格,导致通过构造特殊的命令,可以执行额外的任意系统命令,下面对此漏洞进行详细分析。
首先,需要获取这个路由器的固件,这里我获取的是型号为JYR-N490R型号的路由器,通过binwalk可以对这个路由器固件结构进行分析。
可以看到,这个固件包含了一个squashfs文件系统,这个系统实际上就是一个类linux系统,再次用binwalk提取这个squashfs文件系统。
这里提示提取错误,看到squashfs-root文件夹里也是空的,但实际上会提取出来一个.squashfs结尾的文件,通过7-zip解压就可以获取到文件内容了。
在web文件夹负责存放路由器的web网页,在这个文件夹内存在一个adminsyscmd_m.htm文件。
分析一下这个文件。
function init() { show_div(false, "syscmd_div"); var sysCmd = getUrlParam("sysCmd"); var sysMagic = getUrlParam("sysMagic"); if (sysCmd.length > 0) { document.getElementById("sysCmd").value = sysCmd; document.getElementById("sysMagic").value = sysMagic; document.getElementById("submitUrl").value = "/result.htm"; document.formSysCmd.submit(); } else { var isDiag = <% jAspWebsGet("diag-support"); %>; if (isDiag) { show_div(true, "syscmd_div"); onCmdChange(); } else { window.location.href = "/"; } } } <
首先会初始化整个页面,其中sysCmd会负责执行系统命令,然后会调用onCmdChange函数。
function onCmdChange() { if (document.getElementById("radio_ping").checked == true) document.getElementById("sysCmd").value = "ping"; else if (document.getElementById("radio_tracert").checked == true) document.getElementById("sysCmd").value = "traceroute"; }
随后会执行系统命令,这个过程没有对命令合法性进行检查,导致通过构造特殊的命令可以执行任意系统命令。
例如
接下来只需要在页面里执行代码就可以了
作者:k0shl
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论