防止非法表D99_Tmp,kill_kk的出现是防止我们的网站不被攻击,同时也是SQL漏洞。 
利用注入点.可以在你的数据库里.多建一个表.然后可以利用注入点.读取你网站的所有信息放到这个表里.再输出来给"黑客"看.. 
一般的黑客攻击SQLServer时,首先采用的方法是执行master扩展存储过程xp_cmdshell命令来破坏数据库,为了数据库安全起见,最好禁止使用xp_cmdShell,xp_cmdshell可以让系统管理员以操作系统命令行解释器的方式执行给定的命令字符串,并以文本行方式返回任何输出,是一个功能非常强大的扩展存贮过程。 
一般情况下,xp_cmdshell对管理员来说也是不必要的,xp_cmdshell的消除不会对Server造成任何影响。 
可以将xp_cmdshell消除: 
UseMaster 
Execsp_dropextendedprocN'xp_cmdshell' 
Go 
如果需要的话,可以把xp_cmdshell恢复回来: 
UseMaster 
Execsp_addextendedprocN'xp_cmdshell',N'xplog70.dll' 
Go 
自己有服务器,并用SQLServer的用户,最好都运行一下这个代码,运行的方法很简单就是在查询分析器中执行一下,之后很多黑客的攻击方法就没门了. 
UseMaster 
Execsp_dropextendedprocN'xp_cmdshell' 
Go 
当运行 
EXECmaster.dbo.xp_cmdshell'dirc:\' 
这个命令时,系统就会产生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 
对应措施:删除上述存储过程或可执行文件或修改存储过程相应用户组可执行权限,删除上述存储过程对应脚本为: 
dropPROCEDUREsp_makeweBTask 
execmaster..sp_dropextendedprocxp_cmdshell 
execmaster..sp_dropextendedprocxp_dirtree 
execmaster..sp_dropextendedprocxp_fileexist 
execmaster..sp_dropextendedprocxp_terminate_process 
execmaster..sp_dropextendedprocsp_oamethod 
execmaster..sp_dropextendedprocsp_oacreate 
execmaster..sp_dropextendedprocxp_regaddmultistring 
execmaster..sp_dropextendedprocxp_regdeletekey 
execmaster..sp_dropextendedprocxp_regdeletevalue 
execmaster..sp_dropextendedprocxp_regenumkeys 
execmaster..sp_dropextendedprocxp_regenumvalues 
execmaster..sp_dropextendedprocsp_add_job 
execmaster..sp_dropextendedprocsp_addtask 
execmaster..sp_dropextendedprocxp_regread 
execmaster..sp_dropextendedprocxp_regwrITe 
execmaster..sp_dropextendedprocxp_readweBTask 
execmaster..sp_dropextendedprocxp_makeweBTask 
execmaster..sp_dropextendedprocxp_regremovemultistring 
数据库中如发现D99_TMP数据表,请先通知网站管理员修补sql注入漏洞,该表为某SQL注入工具默认自增表,内容为C盘目录下全部文件及文件夹名称,服务器网管应检查xp_dirtree扩展存储过程权限,设置为public组不可读即可防止恶意访客读取本地文件信息,或删除xp_dirtree存储过程或删除xpstar.dll文件,该文件位于sql安装目录下。 
EXECsp_addextendedprocxp_dirtree,@dllname='xpstar.dll' 
EXECsp_addextendedprocxp_fileexist,@dllname='xpstar.dll' 
在程序方面:简单的预防的办法,就是在写asp程序都用这样方式吧: 
在写代码id=request("id") 
改为id=int(request("id")) 
这样id变数字后面的SQL字串就会被清除 
另外将sql="select*fromXXXwhereid="&id 
改为sql="select*fromXXXwhereid='"&id&"'" 
那么黑客加入的SQL字串,不会被处理执行或执行失败 |   
 
 
 
 |