最後の'は生の'であるので、injectionが成立する。sjisは弾かれるがcp932は弾かれないようになっているので、これを/?ie=cp932と指定する。次に、入力箇所を探す。$userId)といった確認が入るのでだめ。YAMATODO_SALT);と処理されるのでこれもだめ。残るはlogin後の$bodyで、これはinjectionできる。$sql);という形で入る。適当にregisterしてloginする。短い名前にしておく楽。0の部分をincrementしながら全部出力させる。mkafh98hwaofnaslh08y4830fjioafnlkaとあるが、これを投げても通らない。これはもしかしたら他の参加者が勝手に追加したものなのかもしれない。todo☆(ゝω・)vとあるので、1番目のtodoを見る。flag={r3m3Mb3r_5c_pr0bL3m}。r3m3Mb3r_5c_pr0bL3m。mysqli_queryは複文が使えない。(VAL,VAL,VAL);とすれば、複数同時に挿入できる。mysqlは無設定だと文字列連結演算子がないので、これを使わないと文字列の挿入ができない。hmacのsaltを復元しようとしても無理。yamatoの暗号化済みpasswordは8c8f0144c4290bf5e4afa6ebe67597484935e6af3c7f3610bffb3b4782fb8f420ec30c21467b58dcc0023749225e9aa1ea938b2d73391ca5a30b5c19f1e2af53。hashcatなどを試してみたが、どうみても終わりそうにない。queryからtodosを直接見れない。data循環してるからどうにかして、ということ。XXXXを使えば回避できる。todosとusersが非対称だったのですごく悩んだ。手元に実行環境作って試すのはすごく重要。詰将棋をする、のだけど、右下の盤の数字の四と七が入れ替わっている。