![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PHP_Code_Challenge
文章平均质量分 65
小龙_(R0 Team)
关注R0 Team公众号获取更多资源
展开
-
challenge_7
die()函数用于移除匹配元素上绑定的一个或多个事件的事件处理函数。die()函数主要用于解除由live()函数绑定的事件处理函数。POST 方法传 一个变量为flag 值 为 任何数 ,这里传一个flag=1。而能利用变量覆盖将一个变量的值覆盖其他变量的地方只有第一个foreach处。_POST[‘flag’]不等,满足$_POST[“flag”]!第一个foreach处,能将任意变量的值赋予任意变量。然后构造两个flag=2 flag=1。flag = 1,使可能原本存在的变量。原创 2024-07-24 12:42:42 · 783 阅读 · 0 评论 -
challenge_5
分析代码逻辑,发现GET了两个字段name和password,获得flag要求的条件是:name!= password & sha1(name) == sha1(password),乍看起来这是不可能的,其实可以利用sha1()函数的漏洞来绕过。name[]=a&password[]=b,这样在第一处判断时两数组确实是不同的,但在第二处判断时由于sha1()函数无法处理数组类型,将报错并返回false,if 条件成立,获得flag。就没见过 sha1 === sha1 这种。原创 2024-07-24 12:41:51 · 198 阅读 · 0 评论 -
challenge_4
a的值再执行eval函数这一特点,通过gpc传递给$a特殊的字符串,经过计算后与原本的var_dump();组合造成拼接效果,形成一个新的字符串,使eval函数执行我们预期的php代码。PHP对于双引号包裹起来的字符串要进行扫描计算,单引号则不管内容如何都会原样输出而不会进行计算。一个超全局变量,可以接收_get,_post,_cookie发送的数据。先使用eval 执行phpinfo 看是否执行成功。首先看见eval 应该是可以执行php代码的。使用了双引号,意味着,会先计算。原创 2024-07-24 12:40:57 · 632 阅读 · 0 评论 -
challenge_3
利用php弱类型比较,数字与字符串等值比较时,字符串取开头的有效数字,无则为0,结合id不为0或null,id可取值开头不带有效数字的字符串,$id=a0。b字符串时被截断,从而形成eregi(“111”,“1114”),匹配成功,同时%00不会对strlen截断,$b=%0012345。data取post的数据,post 1112 is a nice lab!字符串被截取的第一位字符连结后形成的字符串能在。data取请求原始数据流,即post的内容,中匹配到,即连结后的字符串可以是。原创 2024-07-24 12:40:14 · 539 阅读 · 0 评论 -
Challenge_2
1、当一个字符串被当作一个数值来取值,其结果和类型如下:如果该字符串没有包含’.‘,’e’,’E’并且其数值值在整形的范围之内,该字符串被当作int来取值。其他所有情况下都被作为float来取值,该字符串的开始部分决定了它的值,如果该字符串以合法的数值开始,则使用该数值,否则其值为0。2、在进行比较运算时,如果遇到了0e这类字符串,PHP会将它解析为科学计数法。3、在进行比较运算时,如果遇到了0x这类字符串,PHP会将它解析为十六进制。然后这里又是sleep 函数 必须是整数。第三个判断 必须小于。原创 2024-07-23 19:28:07 · 89 阅读 · 0 评论 -
Challenge_1
对其进行反转操作就可以了 我们最终的数据是ASCII码 不是 16 进行 所以这里不要按照直的顺序进行编码。对第一行的base64 编码进行解密操作 ,进行反向解密操作。base64-encode() 进行base64加密。首先看到从上而下看到一个 base64 编码的数据。hex2bin 16进行转换为 ASCII 码。然后就是输出一个 编码过的flag。然后就是 引入lib.php。使用docker 拉取环境。strrev 进行反转。如果按照纯顺序来做会报错。对每一个函数进行解释。原创 2024-07-23 19:26:13 · 86 阅读 · 0 评论