您的位置:首页 > 数据库

Sqlilabs Less-27-28a Trick with SELECT & UNION

2019-04-02 04:01 716 查看
版权声明:本文为博主原创文章,欢迎转载,请注明转载来源,谢谢!!! https://blog.csdn.net/u014029795/article/details/88961449

Less-27 Trick with SELECT & UNION - Single Quote

手工注入

  • 感觉和26没什么区别,一样的。。。

    函数分析

      preg_replace() 下面列出了当前可用的 PCRE 修饰符。括号中提到的名字是 PCRE 内部这些修饰符的名称。模式修饰符中的空格,换行符会被忽略,其他字符会导致错误。
        i (PCRE_CASELESS) 如果设置了这个修饰符,模式中的字母会进行大小写不敏感匹配。
      1. m (PCRE_MULTILINE) 默认情况下,PCRE 认为目标字符串是由单行字符组成的(然而实际上它可能会包含多行), "行首"元字符 (^) 仅匹配字符串的开始位置, 而"行末"元字符 ($) 仅匹配字符串末尾, 或者最后的换行符(除非设置了 D 修饰符)。这个行为和 perl 相同。 当这个修饰符设置之后,“行首”和“行末”就会匹配目标字符串中任意换行符之前或之后,另外, 还分别匹配目标字符串的最开始和最末尾位置。这等同于 perl 的 /m 修饰符。如果目标字符串 中没有 "\n" 字符,或者模式中没有出现 ^ 或 $,设置这个修饰符不产生任何影响。
      2. s (PCRE_DOTALL) 如果设置了这个修饰符,模式中的点号元字符匹配所有字符,包含换行符。如果没有这个 修饰符,点号不匹 4000 配换行符。这个修饰符等同于 perl 中的/s修饰符。 一个取反字符类比如 [^a] 总是匹配换行符,而不依赖于这个修饰符的设置。
      3. x (PCRE_EXTENDED) 如果设置了这个修饰符,模式中的没有经过转义的或不在字符类中的空白数据字符总会被忽略, 并且位于一个未转义的字符类外部的#字符和下一个换行符之间的字符也被忽略。 这个修饰符 等同于 perl 中的 /x 修饰符,使被编译模式中可以包含注释。 注意:这仅用于数据字符。 空白字符 还是不能在模式的特殊字符序列中出现,比如序列 (?( 引入了一个条件子组(译注: 这种语法定义的 特殊字符序列中如果出现空白字符会导致编译错误。 比如(?(就会导致错误)。
      4. e (PREG_REPLACE_EVAL) 本特性已自 PHP 5.5.0 起废弃。强烈建议不要使用本特性。 如果设置了这个被弃用的修饰符, preg_replace() 在进行了对替换字符串的 后向引用替换之后, 将替换后的字符串作为php 代码评估执行(eval 函数方式),并使用执行结果 作为实际参与替换的字符串。单引号、双引号、反斜线(\)和 NULL 字符在 后向引用替换时会被用反斜线转义.

    Less-27a Trick with SELECT & UNION - Double Quote

    手工注入

  • 和27一样,单引号变双引号,无报错信息,联合注入还是能用。。。

    函数分析

    Less-28 Trick with SELECT & UNION

    手工注入

  • 就过滤了空格和注释,闭合变成了括号加引号,并没有过滤union select,都不用绕过了。。。

    函数分析

    Less-28a Trick with SELECT & UNION

    手工注入

  • 和28一样,过滤条件还变少了,还可以用注释。。。

    函数分析

  • 内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: