简单的绕过

admin 2023年10月27日03:07:18评论54 views字数 834阅读2分46秒阅读模式
今天的做题环境是bugku里面的ezbypass

简单的绕过

简单的绕过

打开题目场景后,会发现这段php代码,别的没有什么了,联合题目我们会发现这道题的考察点就是绕过类型,以及代码审计。

也就是说这道题是要考察PHP代码功底以及绕过的基本的知识的。看这道题的代码大致意思是让我们上传一段数据值,也就是code的值,并且传输方式需要使用post传输的方式。

在firefox浏览器中,安装插件hackbar,在里面就可以进行post数据传输,接下来就是代码讲解部分。

其中if(strlen <=105)这是判断语句,用于判断我们传输的变量值字符长度是否小于等于105,如果是的话就进行下一轮判断,在判断我们的我们传输的是不是变量code的值,也就是if(is_strlen($code))。下一句代码就困难了,它主要用的是正则表达式方面的知识,进行一个字符串匹配,并且preg前面的那个!是逻辑非的意思,用于逻辑判断,他这段字符大致意思是让我们传输的值,不能是大小写字母,也不能是数字。下面是一些这道题能用到的正则表达式字符意思的解释:

[]:表示匹配括号内的任意字符.
:转义字符用于匹配一些保留的字符,比如' [] () {} . * + ? ^ $
?:标记?之前的字符为可选
^:从开始行开始匹配
*:匹配>=0个重复的在*号之前的字符。
.:句号匹配任意单个字符除了换行符

再加上我们所知道的常见绕过方式有:(1)编码绕过,(2)大小写绕过等等方式,在这里大小写绕过是肯定不行的,因为26个字母不管是大写还是小写,被过滤的死死的。最后用了编码绕过,下面是这道题的exp

payload:

code=$_=(_/_._)[_];$_++;$__=$_.$_++;$_++;$_++;$_++;$__=$__.$_;$_++;$__=$__.$_;$_=_.$__;$$_[_]($$_[__]);&_=system&__=cat /flag


if (strlen($code) <= 105)





原文始发于微信公众号(嗜心):简单的绕过

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年10月27日03:07:18
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   简单的绕过http://cn-sec.com/archives/2144913.html

发表评论

匿名网友 填写信息