zoukankan      html  css  js  c++  java
  • SQL注入分类以及联合查询回显注入

    SQL 注入的定义:

            很多应用程序都使用数据库来存储信息。SQL 命令就是前端应用程序和后端数据库之间的接口。攻击者可利用应用程序根据提交的数据动态生成SQL 命令的特性, 在URL 、表单域, 或者其他的输入域中输入自己的SQL 命令, 改变SQL 命令的操作, 将被修改的SQL 命令注入到后端数据库引擎执行。

    SQL注入危害

    • 窃取数据库敏感信息

    - 任意查询用户信息

    - 任意查询管理员账号密码

    • 对数据进行恶意的增删改
    • 造成拒绝服务

    - 通过sleep, benchmark 等函数使数据库阻塞不能正常工作

    • 文件系统操作: 列目录, 读取、写入文件( 一句话木马) 等。
    • 获取服务器权限( 执行系统命令)

    - 使用数据库内置的一些函数来执行系统命令

     SQL 注入分类(以字符类型方式)

    按传递参数类型分:

    • 数字型

    - 例如id = 1 , 数字型注入不需要考虑单引号或者双引号闭合。用如下方式验证注入点:

    and 1 = 1

    and 1 = 2

    • 字符型

    - 例如name= 'root' , 字符型住入, 需要考虑单引号的闭合和注释问题。用如下方式验证注入点:

    root' and '1' = '1
    root' and '1' = '2      #用于将原有引号闭合

    root' and 1 = 1 --+       #通过注释符号,注释后面的单引号。用于将name = 'root'   root后面的 ' 注释掉就变成了name = 'root' and 1 = 2 --+

    root' and 1 = 2 --+       #注意:-- 在MySQL中,要求第二个 - 后面跟一个空格或控制字符,+可以代替空格

     

    数据库的注释语法

    SQL 注入分类( 以注入方式)

    • 回显注入

    - 回显正常: 通过执行构造的SQL 注入语句之后, 页面与原页面存在差异, 但没有报错信息。
    - 回显报错: 通过执行构造的SQL 语句之后, 页面报错, 且将报错信息显示百面上

    • 盲注

    - 布尔型盲注: 构造SQL 语句之后, 根据页面显示差异来判断
    - 基于时间的盲注: 构造SQL 语句之后,根据页面响应时间来判断

    联合查询回显注入

    1. select user from users where user_id=1 union select password from users where user_id = 2;

     2. select user from users order by user;    //系统默认对users进行排序

    order by 1按照第一列排序,order by 2按照第二列排序

    没有第三列 因此order by 3报错

     

    order by判断正常数据库查询有多少列。同理查询有11列结果。

    联合查询select 1,2显示为一行

    查询user_id=1的user和password,并将数字1,2显示出来

    执行union后的语句,结果只显示1行

     

    上面数据库查询已知有11列,分别用数字1到11在页面中显示出来

    经过之前的注入测试,已知数据库中存在admin、password两个字段。因为页面中显示了2,3,8,9,10总共五个数字,我们随意替换五个中的两个为admin、password字段,这样admin、password这两个字段的内容就显示出来。

     

    总结:

    首先 通过order by判断正常数据库查询有多少列,只要查询结果最终能回显到页面上,可以用联合查询注入的方法。

     

     

     

     

     

     

  • 相关阅读:
    01-复杂度2. Maximum Subsequence Sum (25)
    11136-Hoax or what
    VS2010/MFC常用控件:图片控件Picture Control
    VS2010/MFC对话框:向导对话框的创建及显示
    VS2010/MFC对话框:一般属性页对话框的创建及显示
    VS2010/MFC字体和文本输出:文本输出
    VS2010/MFC对话框:颜色对话框
    VS2010/MFC对话框:字体对话框
    VS2010/MFC对话框:文件对话框
    VS2010/MFC对话框:消息对话框
  • 原文地址:https://www.cnblogs.com/52kj/p/12404893.html
Copyright © 2011-2022 走看看