常州网络公司首页 >>> 数据库 >> MSSQL

数据库里有个表显示网站的文件目录--关于SQL存储过程 xp_dirtree 安全问题

发布时间:2009-9-21 10:13:18   浏览次数:7775

一次我在数据库里发现一个不正常的表名,打开一看,里面是我网站的所有文件,我突然想到,我这小站有注入的漏洞,准备好好查一下。
当时还想,怎么会把我所有文件放到数据库里呢?后来到网上查了一下,原来有这样一个存储过程可以列出目录中所有的文件和目录,就是xp_dirtree。

xp_dirtree的使用方法:

exec master..xp_dirtree "d:",1
表示列出D盘里当前文件夹的目录和文件
当然,1可以改成0,改成0的话,那就是列出所有文件,包括目录里的文件,这样远行速度上很慢。

所以只要能注入,就会把你网站目录里的文件列出来,这样就可以看到你网站里的所以文件了。

那怎样不让列出呢。最直接的办法就是删除这个存储过程,所以我什么也没有想,删除了。

可后来我地还原数据库时,提示找不到这存储过程xp_dirtree,看来这个存储过程不只是让你来调用的,SQL本身系统也会用到,所以没办法,又加上了。

可安全问题怎么办呢?那就是存储过程的权限问题了。

解决方法:
在数据库master的扩展存储过程里,找到xp_dirtree;
右击,在所有任务里点管理权限;
把public权限去掉;

OK,没问题了。

上一条:SQL 2005 中数据导入和导出操作步骤
下一条:SQL2005,错误 0xc00470fe 数据流任务 产品级别对于 组件“源 - TestDB01$”(1) 而言不足
首页 | 在线留言 | 网站地图

CopyRight ©2008-2014   糊涂蛋技术网    苏ICP备05013073号
站长:万创   QQ:54960248  E-mail:xlxcn#126.com