# 2020/6/28 高レイヤー勉強会 ## web sec level25 web sec level25 にて学習を行った。 http://websec.fr/# //問題文より抜粋 parse_str(parse_url($_SERVER['REQUEST_URI'])['query'], $query); foreach ($query as $k => $v) { if (stripos($v, 'flag') !== false) **parse_url()**は()中のURLを構成要素に分解する関数である。 今回の問題だと、配列として作られた後にstripos($v, 'flag')で文字列にflagがあるか検証するものになっている。 **parse_url()のバグを利用してバイパスさせることが可能。** ↓↓↓↓↓↓↓↓↓↓↓ parse_url()に入れる値に /// を入れると通常の配列の値を作らないようにバイパスできる。バグがある。 <参考> https://www.php.net/manual/ja/function.parse-url.php https://graneed.hatenablog.com/entry/2018/07/29/043000 https://pistolwest.github.io/websec/websec-level25/ https://blog.ankursundara.com/websec-fr-solutions/ https://pistolwest.github.io/websec/websec-level25/