web91

// 源码
<?php


show_source(__FILE__);
include('flag.php');
$a=$_GET['cmd'];
if(preg_match('/^php$/im', $a)){
    if(preg_match('/^php$/i', $a)){
        echo 'hacker';
    }
    else{
        echo $flag;
    }
}
else{
    echo 'nonononono';
} 

源码中的匹配有 ^& 并且第二次匹配中没有进行多行匹配,很明显是在考察换行符绕过

payload

?cmd=%0aphp