有关SQL Server SA权限问题的小结

发布时间:2020-08-26编辑:脚本学堂
本文介绍下,有关sql server中sa权限的一些问题,有需要的朋友,参考下吧。

在取得SA权限后,远程用Sqlexec执行cmd命令,出现提示SQL_ERROR,原因可能是sql server中去掉了xp_cmdshell
需要工具:SQL Query Analyzer和SqlExec Sunx Version。
  
一,去掉xp_cmdshell的方法
首先:
1.去掉xp_cmdshell扩展过程的方法是使用如下语句:
 

复制代码 代码示例:
if exists (select * from dbo.sysobjects where id=object_id(N'[dbo].[xpcmdshell]') and
OBJECTPROPERTY(id,N'IsExtendedProc')=1)exec sp_dropextendedproc N'[dbo].[xp_cmdshell]'

2.添加xp_cmdshell扩展过程的方法是使用如下语句:
 

复制代码 代码示例:
sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll'

在取得SA权限后远程用Sqlexec执行cmd命令,出现提示SQL_ERROR,那么很可能是去掉了xp_cmdshell。

二,被去掉xp_cmdshell后恢复的两种方法:
方法一、
使用SQL Query Analyzer连接对方后直接写入,挺方便sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll'

方法二、
使用SqlExec Sunx Version首先在SqlExec Sunx Version的Format选项里填上%s,在CMD选项里输入sp_addextendedproc 'xp_cmdshell','xpsql70.dll'或者对Sql2000情况下使用sp_addextendedproc 'xp_cmdshell','xplog70.dll'

另外使用SqlExec Sunx Version来去除xp_cmdshell的方法和加的时候选择条件一样,然后输入sp_dropextendedproc 'xp_cmdshell'即可。
  
假如对方已经把xplog70.dll删除或者改了名,可以用下面的方法继续hack任务:
当出现如下现象暗示代表很有可能是xplog70.dll删除或者改了名。
在查询分析器中写入sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll'提示数据库中已存在名为'xp_cmdshell'的对象。