include "./config.php";
login_chk();
$db = dbconnect();
if(preg_match('/prob|_|\.|\(\)|#|-/i', $_GET[pw])) exit("No Hack ~_~");
if(strlen($_GET[pw])>6) exit("No Hack ~_~");
$query = "select id from prob_nightmare where pw=('{$_GET[pw]}') and id!='admin'";
echo "<hr>query : <strong>{$query}</strong><hr><br>";
$result = @mysqli_fetch_array(mysqli_query($db,$query));
if($result['id']) solve("nightmare");
highlight_file(__FILE__);
特徴は以下。
- pwを入力する。以下フィルターがある
prob,_,.,(),#,-は使えない- 7文字以上は入れられない
- なんでもいいから出てくるようにする
A=B=Cとヌルバイトアタック
前から評価が進むので、A=Bがfalseであれば、false=Cとなる。
Cが0であればfalseは0として評価される(falseが0に変換される?どっちだろう)ため、
全体はtrueとなる。
末尾はコメントで消す必要があるが、コメントでなくてもヌルバイトでも消せる。
よって、')=0;%00でAC