---
# System prepended metadata

title: 2020/6/28 高レイヤー勉強会

---

# 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/