源代码:
<?php
error_reporting(E_ALL);
if (isset($_GET['file'])) {
if ( substr($_GET["file"], 0, 6) === "php://" ) {
include($_GET["file"]);
} else {
echo "Hacker!!!";
}
} else {
highlight_file(__FILE__);
}
?>
<hr>
i don't have shell, how to get flag? <br>
flag in <code>/flag</code>
i don't have shell, how to get flag?
flag in /flag
if ( substr($_GET["file"], 0, 6) === "php://" ) #file里面第0个到第6个字符必须等于 php:// 。
那既然要等于php://,就和上题一样,试试php://input
好像没用。这里的input是不起作用,看大佬说是allow_url_fopen没有开启。
题目要求又必须使用php://。而且flag就在/flag里。
这里引入另一个php伪协议。php://filter。附上使用方法:
直接开始php://filter/resource=/flag,直接梭。
ctfhub{fa3943b4753bd73c075c9396}