前言

  发现MYSQL手注注入方式用得多了,几乎都快忘记其它数据库注入的方式了,这里不讲绕过姿势和写shell,毕竟网上很多前辈都给了方法,我只讲一些基本的注入方式(只是记录一下各自的特性,记下来方便以后参考回忆。)

MYSQL数据库

  从5.0以后,就有information_schema自带库,通过它可以注入查询想要的数据

  只有两个字段和单引号闭合的情况下

  ?id=1' and 1=2 union select 1,table_name from information_schema.tables where table_schema=database()%23

  tables       自带库中的一个表

  table_name   是该表的一个字段名

  %23      是#的url编码,#注释是MySQL特有的注释符,--注释是通用于大多数据库

  key_column_usage、schemata、columns表等

  通过它也能获取想要的数据,一般来说输出长度和数量都有限制,可以分页查询limit来读取数据

  获取数据库名

  获取表名

  获取字段名

 

MSSQL数据库

  一样的思路,判断是否存在注入,猜字段数,联合查询得到输出点,才开始查数据

  需要注意的是:

    1.联合查询时使用union all ,这点与MySQL有点区别的。

    2.才输出点占位填充时,当不确定它每个位置的数据类型,使用NULL填充;否则数据类型要一一对应起来。

    3.注释符就只有--

  重点来了:

    1.表master.dbo.sysdatabases(master系统库)

      select name from master.dbo.sysdatabases

      name为字段名,查询数据库名(没有database()函数)

    2.表dbo.sysobjects

      select name from dbo.sysobjects where xtype='U'

      name为字段名,,查询表名(当前库下的dbo.sysobjects表记录着,U表示用户库,S表示系统库)

    3.表dbo.syscolumns

      select name from dbo.syscolumns where id=value

      name为字段名,id为字段名(记录表的id),所以在查表名是应该查它的id,当要查字段名是要通过id查找,表名行不通的,查数据时才要用到表名

 

Access数据库

  它并没有自带库,只能猜测表名的方式,获取数据

  比如:and exists(select*from admin)

  方法很多,不止一种

  当get到表名后,而无法猜到字段名时,可以通过偏移注入方式获取数据;

  同样,当其他类型数据库权限不够而无法查询通过查询自带库获取信息,可以通过这种偏移注入方法获取数据

Oracle数据库

  接触这类型的很少,不熟悉

  查数据库版本

    select banner from sys.v_$version where rownum=1

  查询表名

    select table_name from user_tables where rownum=1

    user_tables为当前用户的表

  查字段名

    select column_name from user_tab_columns where table_name=表名 and rownum=1

     user_tab_columns当前用户的字段表

  查第二个字段名

    select column_name from user_tab_columns where table_name=表名 and column_name<>查到的第一个字段名 and rownum=1

  oracle数据库可以参考https://www.freebuf.com/column/174974.html

多种类型SQL注入的更多相关文章

  1. 类型SQL注入实验 Part1

    准备为PHPstudy环境 <?php $id = $_GET['t']; $conn = mysql_connect("127.0.0.1","root" ...

  2. 《Web安全攻防渗透测试实战指南》 各类型 SQL注入 实验过程整理

    Union注入 https://www.jianshu.com/p/8a11bf55aaee Boolean注入 https://www.jianshu.com/p/e4086f59812d 报错注入 ...

  3. 转:PHP中防止SQL注入的方法

    [一.在服务器端配置] 安全,PHP代码编写是一方面,PHP的配置更是非常关键. 我们php手手工安装的,php的默认配置文件在 /usr/local/apache2/conf/php.ini,我们最 ...

  4. php防止SQL注入详解及防范

    SQL 注入是PHP应用中最常见的漏洞之一.事实上令人惊奇的是,开发者要同时犯两个错误才会引发一个SQL注入漏洞一个是没有对输入的数据进行过滤(过滤输入),还有一个是没有对发送到数据库的数据进行转义( ...

  5. php防止sql注入的方法(转)

    [一.在服务器端配置] 安全,PHP代码编写是一方面,PHP的配置更是非常关键. 我们php手手工安装的,php的默认配置文件在 /usr/local/apache2/conf/php.ini,我们最 ...

  6. SQL注入是什么?如何防止?

    SQL注入是什么?如何防止? SQL注入是一种注入攻击,可以执行恶意SQL语句.下面本篇文章就来带大家了解一下SQL注入,简单介绍一下防止SQL注入攻击的方法,希望对大家有所帮助. 什么是SQL注入? ...

  7. SQL注入学习(一)

    注入攻击的本质:web应用程序没有过滤用户输入或过滤不严谨,直接把用户输入的恶意数据当做代码执行 两个条件: 1.用户能够控制输入 2.原本程序要执行的代码,拼接了用户输入的数据 注入类型 SQL注入 ...

  8. sql注入解析

    sql注入解析 sql注入解析(一)基本语法 sql注入解析(二)执行注入 sql注入解析(三)数据库类型 sql注入解析(四)避开过滤

  9. web应用程序安全攻防---sql注入和xss跨站脚本攻击

    kali视频学习请看 http://www.cnblogs.com/lidong20179210/p/8909569.html 博文主要内容包括两种常见的web攻击 sql注入 XSS跨站脚本攻击 代 ...

随机推荐

  1. Ican协议建立连接我的感悟

    有一个情形我突然之间想明白了. 注意下面情形:                             假设节点A与节点B已经 正常的建立了连接,并且进行了通讯. 假设 节点B收到了 节点A 的 &q ...

  2. HDU - 6201 transaction transaction transaction(spfa求最长路)

    题意:有n个点,n-1条边的无向图,已知每个点书的售价,以及在边上行走的路费,问任选两个点作为起点和终点,能获得的最大利益是多少. 分析: 1.从某个结点出发,首先需要在该结点a花费price[a]买 ...

  3. Day4-T1

    原题目 Hades 与 Dionysus 在狂饮后玩起了多米诺骨牌的小游戏. 现在桌上有 N 块多米诺骨牌,每块多米诺骨牌上半部分和下半部分上都有一个整数.每次翻转可让 一块多米诺骨牌上下翻转,即上下 ...

  4. Oracle SQL存储过程结构、异常处理示例

    -- 存储过程结结构. -- EXCeption不是存储过程必须部分,可以用作本存储过程的异常处理,但如果没有异常处理,出了异常将会终止程序 CREATE PROCEDURE procedure_na ...

  5. Python 中使用 ddt 来进行数据驱动,批量执行用例,修改ddt代码

    1. 什么是数据驱动? 使用数据驱动有什么好处? 用例执行是靠数据来驱动的,每条测试用例除了测试数据不一样意外,所有的用例代码都是一样的,为了使用例批量执行,我们会使用数据驱动的思想来批量执行测试用例 ...

  6. 在Windows中安装vim

    这篇文章主要教大家如何在Windows系统下安装最好用的编辑器VIM 来自百度百科的介绍: Vim是一个类似于Vi的著名的功能强大.高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性. VIM ...

  7. java开发 中台

    中台就是接入层啊,一般有中台的都是比较大的项目,后台会分为很多模块,比如订单模块,比如会员模块,接入层需要做的就是对数据的封装,权限的过滤,以及各种安全什么的, 前台需要什么数据,接入层去对应的后台微 ...

  8. Spark 调优

    资源调优 (1). 在部署 spark 集群中指定资源分配的默认参数 在 spark 安装包的 conf 下的 spark-env.sh SPARK_WORKER_CORES SPARK_WORKER ...

  9. Elasticsearch 更新文档

    章节 Elasticsearch 基本概念 Elasticsearch 安装 Elasticsearch 使用集群 Elasticsearch 健康检查 Elasticsearch 列出索引 Elas ...

  10. Linux-课后练习(第二章命令)20200217-2