点击这里给我发消息 点击这里给我发消息
首页 > 行业资讯 > MSSQL>详细内容

MSSQL预防非法表D99_Tmp,kill_kk的建立

添加时间:2014-7-3
    相关阅读: 数据库 程序 SQL MSSQL 网站 系统

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

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

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

  可以将xp_cmdshell消除:

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

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

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

  这样就行了,做好每一步的安全防范都很重要,希望可以帮到你们.

  sql server 2000数据库,不知道为什么多了个D99_CMD表,说明网站有注入漏洞。

  利用注入点.可以在你的数据库里.多建一个表.然后可以利用注入点.读取你网站的所有信息放到这个表里.再输出来给"黑客"看..

  一般的黑客攻击SQL Server时,首先采用的方法是执行master扩展存储过程xp_cmdshell命令来破坏数据库,为了数据库安全起见,最好禁止使用xp_cmdShell,xp_cmdshell可以让系统管理员以操作系统命令行解释器的方式执行给定的命令字符串, 并以文本行方式返回任何输出,是一个功能非常强大的扩展存贮过程。

  一般情况下,xp_cmdshell对管理员来说也是不必要的,xp_cmdshell的消除不会对Server造成任何影响。

  可以将xp_cmdshell消除: 
  Use Master 
  Exec sp_dropextendedproc N'xp_cmdshell' 
  Go 
  
  如果需要的话,可以把xp_cmdshell恢复回来: 
  Use Master 
  Exec sp_addextendedproc N'xp_cmdshell', N'xplog70.dll' 
  Go

  自己有服务器,并用SQL Server 的用户, 最好都运行 一下这个代码, 运行 的方法很简单就是在查询分析器中执行一下, 之后很多黑客的攻击方法就没门了.

  Use Master 
  Exec sp_dropextendedproc N'xp_cmdshell' 
  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

  数据库中如发现D99_TMP数据表,请先通知网站管理员修补sql注入漏洞,该表为某SQL注入工具默认自增表,内容为C盘目录下全部文件及文件夹名称,服务器网管应检查xp_dirtree扩展存储过程权限,设置为public组不可读即可防止恶意访客读取本地文件信息,或删除xp_dirtree存储过程或删除xpstar.dll文件,该文件位于sql安装目录下。

  EXEC sp_addextendedproc xp_dirtree ,@dllname ='xpstar.dll'
  EXEC sp_addextendedproc xp_fileexist ,@dllname ='xpstar.dll'

  在程序方面:简单的预防的办法,就是在写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 字串,不会被处理执行或执行失败

咨询热线:020-85648757 85648755 85648616 0755-27912581 客服:020-85648756 0755-27912581 业务传真:020-32579052
广州市网景网络科技有限公司 Copyright◎2003-2008 Veelink.com. All Rights Reserved.
广州商务地址:广东省广州市黄埔大道中203号(海景园区)海景花园C栋501室
= 深圳商务地址:深圳市宝源路华丰宝源大厦606
研发中心:广东广州市天河软件园海景园区 粤ICP备05103322号 工商注册