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