国外某大牛研究发现,NetGear路由器wndr3700v4的固件存在认证漏洞。一旦Web界面认证绕过了,后续可以做的事情就会很多。
NetGear的wndr3700v4固件中有一个可执行脚本net-cgi,这个功能很像busy-box。所以里面有很多的地方可以研究,这里我们比较感兴趣的是cmd_ping6()这个模块。
这个功能利用char *host函数来工作的,主要的功能是通过机器名或者IPv6来进行ping操作。这个是一个很常见的功能,不过这个固件里面,它使用了sprintf ()这个函数,它将字符串复制到shell命令中去执行了,这是一个最简单的缓冲区溢出漏洞,最终他会将输入内容传递到system ()这个函数来执行。
那如果这个用户没有使用IPv6怎么办呢?没关系,只要命令被system ()执行了,管它ping命令是否成功执行干毛?
回头看一下,这个漏洞是如何产生的。
cmd_ping6()通过cgi_commit ()调用,cgi_commit ()通过sub_4052d0()调用。
页面执行的时候,是使用的ping6_traceroute6_hidden_info.htm这个页面。
我们来试着执行一些小命令测试一下:
虽然是一个小测试,但是效果是立竿见影的,就算是远端,你也可以轻易的知道命令是否执行成功了。
对与这个漏洞,这名外国大牛利用Python写出了一个EXP,这个EXP主要执行了以下几个功能:
1.通过指纹识别,验证是否存在漏洞。2.将该设备的Web认证禁用。3.通过命令注入,设置iptables,开启telnet,对外网开启2323端口并监听。4.重新启用Web认证,恢复其原始状态。
下载EXP
运行该 EXP 需要安装 Bowcaster。
本文来源:黑客与极客 作者:佚名