服务器安全之如何防范SQL用户提升windows用户权限

2019-01-0210:53:23 发表评论 605

上篇文章所讲的是一个特定的例子,但是反应了一个问题,世界上没有绝对的安全。
安全是有很多很多细节所组成起来的。上面例子中的管理员已经做了一些必要的安全措施。
补丁打得也很及时,但是依然存在着很大的问题。不仅仅是asp没有过滤掉特殊字符。还有一些
比较严重的问题,比如说开启了ms ftp服务,这样入侵者就可以通过暴力破解ftp密码来获得
windows的密码。
如果要谈2000的安全设置,要写上厚厚的一本书也可以。下面仅仅就这个例子中来谈谈。

asp编程要注意的一些问题:
1 涉及用户名与口令的程序最好封装在服务器端,尽量少的在ASP文件里出现,
2 涉及到与数据库连接地用户名与口令应给予最小的权限。如本例,事后问了朋友,
他使用的是sa用户,因此我能够运行很多的存储过程。
3 屏蔽很多特殊字符,如; ‘这种危险的字符必须要给过滤掉。
4 在处理类似留言板、BBS等输入框的ASP程序中,最好屏蔽掉HTML、javascript、VBScript
语句,如无特殊要求,可以限定只允许输入字母与数字,屏蔽掉特殊字符。同时对输入字符
的长度进行限制。而且不但在客户端进行输入合法性检查,同时要在服务器端程序中进行类
似检查。
5 要使用access的话,千万注意到保护好你的mdb文件,别让别人下载。

SQL SERVER的安全
本例中SQL SERVER的设置也存在着很多的问题。比如很多存储过程没有drop,是这次入侵中的
功臣,也是安全的极大的隐患。
1 使用安全的密码策略
2 及时更新补丁程序。
与windows一样,SQL SERVER的许多漏洞会由补丁程序来弥补。建议在安装补丁程序之前先
在测试机器上做测试,同时提前做好目标服务器的数据备份。而很多管理员往往不注意给SQL
SERVER打补丁。最近就有Resolution服务远程栈缓冲区溢出漏洞,很多站点都没有注意到。
3 严格控制数据库用户的权限,轻易不要给让用户对表有直接的查询、更改、插入、删除权限,
可以通过给用户以访问视图的权限,以及只具有执行存储过程的权限。在上面也提到了。
4 把危险的和不必要的存储过程删除,
xp_cmdshell,很危险的一个存储过程,能够执行dos命令,可以通过下述SQL语句
use master
sp_dropextendedproc ‘xp_cmdshell‘
不过依然可以通过sp_addextendedproc来恢复,因此最好删除或改名xplog70.dll(sql server 2000)
xpsql70.dll(sql serer 7.0)
以下存储过程也很危险
xp_fileexist,用来确定一个文件是否存在。 xp_getfiledetails,可以获得文件详细资料。
xp_dirtree,可以展开你需要了解的目录,获得所有目录深度。 Xp_getnetname,可以获得
服务器名称。
去掉不需要的注册表访问的存储过程,如下:
Xp_regaddmultistring Xp_regdeletekey Xp_regdeletevalue Xp_regenumvalues
Xp_regread Xp_regremovemultistring Xp_regwrite
如果你不需要请丢弃OLE自动存储过程,这些过程包括如下:
Sp_OACreate Sp_OADestroy Sp_OAGetErrorInfo Sp_OAGetProperty
Sp_OAMethod Sp_OASetProperty Sp_OAStop

 

 

头像

发表评论

您必须登录才能发表评论!