`

D99_Tmp表D99_TmpD99_CMD出现在数据库中解决办法

阅读更多

 

转自:http://www.hh-sh.cn/read_news.aspx?News_ID=2049

 

 

D99_Tmp表D99_TmpD99_CMD出现在数据库中解决办法

阅读117次        [2010-7-5 9:08:52]    

    

    防止非法表D99_Tmp,kill_kk的出现是防止我们的网站不被攻击,同时也是SQL安全防范一道必要的防线,虽说利用这种方式攻击的人都是黑客中的小鸟,但是我们也不得不防,以免造成不可想象的后果,废话不多说了,说下防范方法:

    xp_cmdshell可以让系统管理员以操作系统命令行解释器的方式执行给定的命令字符串,并以文本行方式返回任何输出,是一个功能非常强大的扩展存贮过程。

    一般的黑客攻击SQL Server时,首先采用的方法是执行master扩展存储过程xp_cmdshell命令来破坏数据库,为了数据库安全起见,最好禁止使用xp_cmdShell.

    可以将xp_cmdshell消除:

    以下是引用片段:
    Use Master
        Exec sp_dropextendedproc 'xp_cmdshell'
    Go

    如果需要的话,可以把xp_cmdshell恢复回来:

    以下是引用片段:
    Use Master
        Exec sp_addextendedproc 'xp_cmdshell', 'xplog70.dll'
    Go

    这样就行了,做好每一步的安全防范都很重要。

    当运行
    EXEC master.dbo.xp_cmdshell 'dir c:\'

    这个命令时,系统就会产生D99_Tmp 这个表,当屏蔽掉“xp_cmdshell”后,这个代码就不能运行了。而屏蔽掉“xp_cmdshell”对系统的正常工作不受影响, 建议大家有条件的都屏蔽掉这个存储过程.

    另外:MSSQL数据库存在几个危险的扩展存储过程,默认Public组可执行权限,SQL注入者可利用此读取文件目录及用户组,并可通过先写入数据库然后导出为文件的方法往服务器写入危险脚本进一步提权,或直接使用某些存储过程执行命令,如xp_cmdshell。这些存储过程如下:

sp_makeweBTask
xp_cmdshell
xp_dirtree
xp_fileexist
xp_terminate_process
sp_oamethod
sp_oacreate
xp_regaddmultistring
xp_regdeletekey
xp_regdeletevalue
xp_regenumkeys
xp_regenumvalues
sp_add_job
sp_addtask
xp_regread
xp_regwrITe
xp_readweBTask
xp_makeweBTask
xp_regremovemultistring

    对应措施:删除上述存储过程或可执行文件或修改存储过程相应用户组可执行权限,删除上述存储过程对应脚本为:

drop PROCEDURE sp_makeweBTask
exec master..sp_dropextendedproc xp_cmdshell
exec master..sp_dropextendedproc xp_dirtree
exec master..sp_dropextendedproc xp_fileexist
exec master..sp_dropextendedproc xp_terminate_process
exec master..sp_dropextendedproc sp_oamethod
exec master..sp_dropextendedproc sp_oacreate
exec master..sp_dropextendedproc xp_regaddmultistring
exec master..sp_dropextendedproc xp_regdeletekey
exec master..sp_dropextendedproc xp_regdeletevalue
exec master..sp_dropextendedproc xp_regenumkeys
exec master..sp_dropextendedproc xp_regenumvalues
exec master..sp_dropextendedproc sp_add_job
exec master..sp_dropextendedproc sp_addtask
exec master..sp_dropextendedproc xp_regread
exec master..sp_dropextendedproc xp_regwrITe
exec master..sp_dropextendedproc xp_readweBTask
exec master..sp_dropextendedproc xp_makeweBTask
exec master..sp_dropextendedproc xp_regremovemultistring

    在程序方面:检测自己的网站是否有漏洞,工具很多,用阿D就行了。简单的预防的办法,就是在写asp程序都用这样方式吧:

    在写代码 id=request("id")
    改为 id=int(request("id"))
    这样 id变数字后面的 SQL 字串就会被清除

    另外将 sql="select * from XXX where id=" & id
    改为 sql="select * from XXX where id='" & id & "'"
    那么黑客加入的 SQL 字串,不会被处理执行或执行失败

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics