跳转至

每日一题 —— [鹤城杯 2021]Middle magic

题目地址:https://www.nssctf.cn/problem/464

打开题目是一个 php 源代码,分为多个关卡。先看 level1。

可以看到,他把 level 给过滤成了 filter,但是他用的是 preg_replace,这个函数在不加入 /s 的标记符的情况下,只会匹配第一行。所以我们可以直接在开头加入一个换行符 %0a, 注意结尾有一个 # 符号,所以也需要进行 urlencode 变成 %23

然后就来到了 level2, 可以看到要求两个参数不能相等,但是他们的 sha1 值是相等的,因为这玩意比起 md5 不太好碰撞,所以我们直接数组绕过:admin[]=1&root_pwd[]=2

最后一个 level3 要求我们进行 json_decode 之后的 result 属性为它自带的 $result 变量。但是我们并不知道他的 $result 变量。即使如此,我随便传了一个 level_3=1 也过关了,具体原因不清楚,可能和弱比较有关,也就是说,他的 $result 变量已经是一个类似于 null 这样的东西了。

最终 payload:

GET: ?aaa=%0apass_the_level_1%23
POST:  admin[]=1&root_pwd[]=2&level_3=1

文章热度:0次阅读