如何修改SQL SERVER内置存储过程

   SQLSERVER估计是为了安装或者其它方面,它内置了一批危险的存储过程。能读到注册表信息,能写入注册表信息,能读磁盘共享信息等等……各位看到这儿,心里可能会在想,我的网站中有其它的代码,又不像查询分析器那样能直接将结果输出。给你这个权限,也不能怎么样,还是看不到信息。如果各位这样想就大错特错了。提示一下,如果攻击者有CREATE TABLE的权限,那么创建一个临时表,然后将信息INSERT到表中,然SELECT出来,接着跟数字进行比较,让SQL SERVER报错,那么结果就全出来了……所以我们要报着宁错杀,不放过的态度进行修补。

  先来列出危险的内置存储过程:

  xp_cmdshell

  xp_regaddmultistring

  xp_regdeletekey

  xp_regdeletevalue

  xp_regenumkeys

  xp_regenumvalues

  xp_regread

  xp_regremovemultistring

  xp_regwrite

  ActiveX自动脚本:

  sp_OACreate

  sp_OADestroy

  sp_OAMethod

  sp_OAGetProperty

  sp_OASetProperty

  sp_OAGetErrorInfo

  sp_OAStop

  以上各项全在我们封杀之列,例如xp_cmdshell屏蔽的方法为:

  sp_dropextendedproc 'xp_cmdshell'

  如果需要的话,再用

  sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'

  进行恢复。如果你不知道xp_cmdshell使用的是哪个.dll文件的话,可以使用

  sp_helpextendedproc xp_cmdshel

  来查看xp_cmdshell使用的是哪个动态联接库。另外,将xp_cmdshell屏蔽后,我们还需要做的步骤是将xpsql70.dll文件进行改名,以防止获得SA的攻击者将它进行恢复。

时间: 2024-10-27 00:19:31

如何修改SQL SERVER内置存储过程的相关文章

修改SQL SERVER内置存储过程

server|存储过程 SQLSERVER估计是为了安装或者其它方面,它内置了一批危险的存储过程.能读到注册表信息,能写入注册表信息,能读磁盘共享信息等等--各位看到这儿,心里可能会在想,我的网站中有其它的代码,又不像查询分析器那样能直接将结果输出.给你这个权限,也不能怎么样,还是看不到信息.如果各位这样想就大错特错了.提示一下,如果攻击者有CREATE TABLE的权限,那么创建一个临时表,然后将信息INSERT到表中,然SELECT出来,接着跟数字进行比较,让SQL SERVER报错,那么结

Sql Server内置函数实现MD5加密

原文:Sql Server内置函数实现MD5加密 实例 MD5加密"123456": HashBytes('MD5','123456') 结果:0xE10ADC3949BA59ABBE56E057F20F883E (提示:看完最后,结果要进行转换.)   函数 函数 描述 返回值 HashBytes  HashBytes ('加密方式', '待加密的值')加密方式= MD2 | MD4 | MD5 | SHA | SHA1 返回值类型:varbinary(maximum 8000 by

ASP访问SQL Server内置对象

server|对象|访问|内置对象 平常我们只听说过ADO等一类ASP对象,但在ASP中还有个鲜为人知的专门SQL Server的ASP访问对象,它就是SQLOLE.SQLServer对象.SQLOLE.SQLServer可以直接访问SQL Server的系统属性.以Set oSQLServer = CreateObject ("SQLOLE.SQLServer")语句将产生一个SQL Server服务器对象. ---- 若要查看此服务器中数据库的集合,可用语句: For Each S

SQL SERVER 临时表导致存储过程重编译(recompile)的一些探讨

   SQLSERVER为了确保返回正确的值,或者处于性能上的顾虑,有意不重用缓存在内存里的执行计划,而重新编译执行计划的这种行为,被称为重编译 (recompile).那么引发存储过程重编译的条件有哪一些呢?下面罗列了一些导致重编译(recompile)的条件:     - 对查询所引用的表或视图进行更改(ALTER TABLE 和 ALTER VIEW).     - 对执行计划所使用的任何索引进行更改.     - 对执行计划所使用的统计信息进行更新,这些更新可能是从语句(如 UPDATE

SQL Server数据库的存储过程中定义的临时表,真的有必要显式删除(drop table #tableName)吗?

原文:SQL Server数据库的存储过程中定义的临时表,真的有必要显式删除(drop table #tableName)吗?   本文出处:http://www.cnblogs.com/wy123/p/6704619.html      问题背景 在写SQL Server存储过程中,如果存储过程中定义了临时表,有些人习惯在存储过程结束的时候一个一个显式地删除过程中定义的临时表(drop table #tName),有些人又没有这个习惯,对于不明真相的群众或者喜欢思考的人会问,存储过程中定义的临

《PowerShell V3——SQL Server 2012数据库自动化运维权威指南》——2.6 修改SQL Server实例配置

2.6 修改SQL Server实例配置 本方案讲述如何使用PowerShell修改实例配置设置. 2.6.1 准备 在本方案,你将会: 修改FillFactor到60%启用SQL Server Agent设置最小服务器内存到500MB修改验证方式为Mixed 2.6.2 如何做- 让我们用PowerShell修改一些SQL Server设置. 1.通过"Start | Accessories | Windows PowerShell | Windows PowerShell ISE"

有用的SQL Server语句和存储过程

server|存储过程|语句 SQL  Server语句和存储过程   -- ====================================================== --列出SQL SERVER 所有表,字段名,主键,类型,长度,小数位数等信息 --在查询分析器里运行即可,可以生成一个表,导出到EXCEL中 -- ====================================================== SELECT        (case when a

修改SQL Server 2005执行环境

执行环境是SQL Server中设定用户权限的认证方式,例如,当您登录到SQL Server的时候,登录账户就被赋予了一定的权限,其中可能包括登录的功能.访问数据库以及在数据库中执行某些操作的功能. SQL Server 2005包含了EXECUTE AS语句,通过使用EXECUTE AS语句,您可以为批处理和过程转换执行环境,这样,调用该批处理或过程的用户就可以使用不同的权限来操作了. 所有权链 在我正式讲解SQL Server 2005中执行环境的问题之前,先来简单地说说所有权链的工作原理.

SQL Server内建SQLDiag工具程序的使用

前言:SQLDiag是SQL Server内建的诊断收集共享程序, [SQL Server 2005]默认位置:C:\Program http://www.aliyun.com/zixun/aggregation/19352.html">Files\Microsoft SQL Server\90\Tools\Binn\SQLDiag.exe你可以在任何路径下执行SQLDiag因为此路径已被加到path系统变量,执行sqldiag -?或sqldiag /?即可显示参数说明SQL 2005的