zoukankan      html  css  js  c++  java
  • sql注入1

    一、函数

      1、version()  MYsql版本

      2、user()      数据库用户名

      3、database()   数据库名

      4、@@datadir  数据库路径

      5、@@version_compile_os   操作系统版本

      6、current_user()   当前用户名(可查看权限)

      7、load_file()        读文件

      8、into outfile() / into dumpfile   写文件

            9、group_concat(str1,str2...)     连接一个组所有的字符串,并以逗号分隔每一条数据。

    二、注释,可用#     --+   url 中用%23

    三、union操作符

      用于合并两个或多个 SELECT 语句的结果集。请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的 列的顺序必须相同。 

      SQL UNION 语法:

       SELECT column_name(s) FROM table_name1

      UNION

      SELECT column_name(s) FROM table_name2

      注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。

      SQL UNION ALL 语法

      SELECT column_name(s) FROM table_name1

      UNION ALL

      SELECT column_name(s) FROM table_name2

      另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。 

    四、Mysql 有一个系统数据库 information_schema,

      存储着所有的数据库的相关信息,一般的, 我们利用该表可以进行一次完整的注入。以下为一般的流程。

      猜数据库

       select schema_name from information_schema.schemata

      猜某库的数据表

      select table_name from information_schema.tables where table_schema=’xxxxx’

       猜某表的所有列

       Select column_name from information_schema.columns where table_name=’xxxxx’

       获取某列的内容

      Select *** from ****

      

      上述知识参考用例:less1-less4

    五、注释

      1、单行注释,#后面直接加内容 ;单行注释,--后面必须要加空格 ;

      2、多行注释,/**/中间可以跨行;

             3、内联注入, 内联注释是MySQL数据库为了保持与其他数据库兼容,特意新添加的功能。          

              为了避免从MySQL中导出的SQL语句不能被其他数据库使用,它把一些 MySQL特有的语句放在 /*! ... */ 中,

              这些语句在不兼容的数据库中使用时便 不会执行。而MySQL自身却能识别、执行。 

    六、order by 语句

      1. ORDER BY 语句用于 根据指定的列对结果集进行排序。

      2. ORDER BY 语句默认 按照升序对记录进行排序。

    七、字符串连接函数

      1、concat(str1,str2..)函数 直接连接

      2、group_concat(str1,str2..)函数 使用逗号做为分隔符

      3、concat_ws(sep,str1,str2..)函数 使用第一个参数做为分隔符

    八、information_schema

    例:

      select schema_name from information_schema.schemata;

      select table_name from information_schema.schemata where table_schema = ‘zzcms’; 

      select column_name from information_schema.columns where table_schema = ‘zzcms’ and ‘table_name’ = ‘zzcms_zx’;

    九、SQL注入的分类

    十、基于联合查询的注入模式,步骤

    十一、判断是否存在注入与求闭合字符

       1、id = 1’ 异常

        id = 1 and 1 =1 -- + 正确

        id = 1 and 1=2 -- + 错误

        结论:极有可能存在数字型SQL注入

        ps:单引号有个特殊的作用:命令分隔符

      2、id  = 1’   异常 

           id = 1’ and  1 =1 -- +  正确

            id = 1’ and 1=2 -- +     错误 

         结论:极有可能存在单引号字符型SQL注入

      3、id  = 1"   异常 

        id = 1” and  1 =1 -- +  正确 

                 id = 1” and 1=2 -- +     错误 

          结论:极有可能存在双引号字符型SQL注入

      4、id  = 1)  异常

            id = 1) and  1 =1 -- +  正确 

       id = 1) and 1=2 -- +     错误

            结论:极有可能存在括号数字型SQL注入

  • 相关阅读:
    配置navigation bar外观
    加急审核
    UIButton中setTitleEdgeInsets和setImageEdgeInsets的使用
    打开某个好友的聊天界面
    ALAssets的两种用法
    更改appstore开发商名字
    回调函数的使用
    相应字体所占的位置大小
    IOS的变量前加extern和static字段
    iOS开发代码规范(通用)
  • 原文地址:https://www.cnblogs.com/sunshineyan/p/8878588.html
Copyright © 2011-2022 走看看