MSSQL注入-反弹注入

MSSQL注射攻击是最为复杂的数据库攻击技术,由于该数据库功能十分强大,存储过程以及函数语句十分丰富,这些灵活的语句造就了新颖独特的攻击思路。
MSSQL反弹注入
明明是SQL的注射点却无法进行注射,注射工具猜解的速度异常缓慢,错误提示信息关闭,无法返回注射结果等,这些都是在注射攻击中常常遇到的问题。为了解决以上这些疑难杂症,比较好的解决方法就是使用反弹注射技术,而反弹注射技术则需要依靠opendatasource函数支持
反弹注入:利用SQL语句,让目标的数据库来访问你的数据库,然后插入数据
让目标机器来访问攻击者所准备的数据库,且插入信息【远程连接数据库】
所以得有一个数据库
我们前面说到,MSSQL注人一反弹注入实际就是把查询出来的数据发送到我们的MSSQL服务器上,那么我们需要自己的MSSQL数据库和一个公网IP,香港云可以免费申请一个虚拟空间,然后虚拟空间中开启MSSQL然后直接使用,可以免去MSSOL安装环境并且不需要特意购置云服务器来获取一个公网IP。
http://www.webweb.com/
随便拿个邮箱然后注册就行
在这里插入图片描述
匿名邮箱也可以:http://24mail.chacuo.net/
在这里插入图片描述
在这里插入图片描述
登入进去后选择数据库管理的SQL Server管理创建数据库
在这里插入图片描述

这里在插一句MSSQL显错注入的注意事项
首先猜字段
然后联合查询,记住要写UNION ALL
然后猜输出点要使用NULL去填充
注释只有–+ (不要想着#)
sysobjects查询系统表(xtype='U‘)
syscolumns字段(id= )指定sysobjects库中表名对应id
下面展示的靶场可以显错注入也可以反弹注入
insert into 插入语句
连接通道.数据库.dbo.表
表与表之间插入数据可以一瞬间带走所有数据,字段数必须相同

Insert into很明显是插入语句然后出现了个opendatasource.
opendatasource为了方便理解,可以看理解为‘使用opendatasource函数将当前数据库查询的结果发送到另一数据
库服务器中。
语法:
OPENDATASOURCE(provider_ name,init string)
provider
name
注册为用于访问数据源的OLE DB提供程序的PROGID的名称
MSSQL的名称为SQLOLEDB
init_ string
连接字符串
连接地址、端口、用户名、密码、数据库名
server=连接地址,端口;uid=用户名;pwd=密码;database=数据库名称
连接上服务器后选定数据表…把后面语句的查询结果插入到那个表里面
突然发现自己没有连接库的工具,这里就附上上课的一张截图吧,语句该这么写,然后连上数据库查看就行
在这里插入图片描述
下面那个SQL Server控制台应该可以演示
在这里插入图片描述
这里我们连接一下
在这里插入图片描述
在这里插入图片描述
先创建一个temp表。
在这里插入图片描述
在这里插入图片描述
开靶场,这里我选择一步到位了,后面的查询语句想必都很熟悉了就不一一演示了。
在这里插入图片描述
还是出了点小问题,没有连接器在香港云的控制台操作有点迷,但思路就是这样
在这里插入图片描述
靶场提示flag在admin表里,进去查。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里通过报错注入拿到了flag
反弹注入就按着上面的思路来就行,可能是我数据库信息在opendatasource函数里面填写的有问题,导致连接没成功。

未完待续…

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值