MSSQL数据库中发现D99_tmp表的处理方法
相信很多ASP+MSSQL的网站都有被人注入过的经历,数据库表中多了一些表,类似以下的表D99_tmp,D99_cmd,kill_kk。
D99_tmp(subdirectory,depth,file三个字段,里面的数据都是网站文件和目录)
MSSQL数据库存在几个危险的扩展存储过程,默认Public组可执行权限,SQL注入者可利用此读取文件目录及用户组,并可通过先写入数据库然后导出为文件的方法往服务器写入危险脚本进一步提权,或直接使用某些存储过程执行命令,如xp_cmdshell。
xp_cmdshell可以让系统管理员以操作系统命令行解释器的方式执行给定的命令字符串,并以文本行方式返回任何输出,是一个功能非常强大的扩展存储过程。一般的黑客攻击SQL
Server时,首先采用的方法是执行master扩展存储过程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
可以消除的存储过程如下:
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..
相关文档:
--1. 创建表,添加测试数据
CREATE TABLE tb(id int, [value] varchar(10))
INSERT tb SELECT 1, 'aa'
UNION ALL SELECT 1, 'bb'
UNION ALL SELECT 2, 'aaa'
UNION ALL SELECT 2, 'bbb'
UNION ALL SELECT 2, 'ccc'
--SELECT * from tb
/**//*
id value
----------- ----------
1 aa
1 bb
2 aaa
......
下面是ORACLE行列转换通用存储过程:
1、
Function Fun_Split_Str(p_Str Varchar2, p_Division Varchar2, p_Seq Int)
Return Varchar2 Is
v_First Int;
v_Last Int;
Begin
If p_Seq < 1 Then
&nbs ......
数据类型
类型
描述
bit
整型
bit 数据类型是整型,其值只能是0、1或空值。这种数据类型用于存储只有两种可能值的数据 ,如Yes 或No、True 或Fa lse 、On 或Off
int
整型
int 数据类型可以存储从- 231( ......
--字段添加说明
EXEC sp_addextendedproperty 'MS_Description', '要添加的说明', 'user', dbo, 'table', 表名, 'column', 列名
--删除字段说明
EXEC sp_dropextendedproperty 'MS_Description', 'user', dbo, 'table', 表名, 'column', 字段名
--查看字段说明
SELECT
[Table Name] = i_s.TAB ......
@echo off
:dosmenu
REM 选择菜单
echo Windows 服务启动或关闭 By hope 2008年2月7日
echo.
echo [1]启动Sql Server2005 [2]关闭Sql Server2005
echo [3]启动Oracle9i [4]关闭Oracle9i
echo.
echo ......