★我要吧★

 找回密码
 注册[Register]
搜索
qq空间相册密码查看为什么登陆后需要激活无法注册?

Serv-U远程拒绝服务漏洞以及原因分析[转]

[复制链接]
发表于 2011-12-22 22:37:01 | 显示全部楼层 |阅读模式
Serv-U远程拒绝服务漏洞以及原因分析
原创:isno(isno)
来源:www.xfocus.org
serv-u ftp server远程拒绝服务漏洞以及原因分析
涉及程序版本:
serv-u ftp server v4.0.0.4(以前版本也可能存在该漏洞,没有测试过)
漏洞类型:
远程拒绝服务
漏洞描述:
前几天使用了一下rhinosoft出品的serv-u ftp,感觉还不错,简单
测试了一下其安全性,发现当用匿名用户登陆后,发送list nnnn...命令,
后跟的字符数量达到253字节时,服务端报错,并且错误对话框无法关闭,
只能重启serv-u ftp服务才行。
由于是由长字符串造成的,我一开始还认为是溢出之类的漏洞。后来
经过深入分析程序汇编代码,发现这不是一般的溢出,甚至可以说不是
serv-u的本身程序的问题,而是一个win32 api的设计上的bug。
getfullpathnamea这个api用来获取指定文件的路径,但是它在处理
长文件名时没有考虑好边界条件,造成可能访问到不存在的内存地址,
在serv-u的例子里就造成了拒绝服务攻击。本来一般像这种访问不存在
在serv-u的例子里就造成了拒绝服务攻击。本来一般像这种访问不存在
内存的漏洞,程序的异常处理都可以回恢复过来的,不至于造成程序崩溃,
但是正是由于这个问题是由系统dll出错而造成的,而不是应用程序本身
的问题,所以应用程序的异常处理例程无法正确处理该问题,从而导致了
服务端程序崩掉。
不仅仅是list命令受该漏洞影响,所有后跟参数是文件名的命令都有
这个问题,例如mdtm等等。另外触发这个漏洞的串长度是根据ftp根目录的
设置不同而定的,我写了个程序来测试该漏洞,程序见后面。
由于这个漏洞无法用来得到权限,所以也懒得报告到bugtraq上去了,
不过分析漏洞的过程还是让我有点收获,起码知道了编程中哪些地方是程
序员容易忽视而造成安全漏洞的地方,微软的程序员也一样犯这样的错误。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

QQ|手机版|小黑屋|☆我要吧☆ ( 豫ICP备13016831号-1 )

GMT+8, 2024-12-22 21:17 , Processed in 0.831474 second(s), 22 queries .

Powered by abc369 X3.4

© 2001-2023 abc369.

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