PHP
Last updated
Last updated
画像は PHP STRING COMPARISON VULNERABILITIES に載っているやつです。
配列や3引数以上与えると NULL
が返ってくる。
そのため ==
で比較してたりするとバイパスできてしまう。(strcmp
は2つの文字列が等しい場合 0
を返すため、NULL == 0
が成立する)
与えられたクエリパラメータ key=val
を用いて、変数 key に val を代入する。
その際、既存の変数を上書きできてしまう点に注意。
以下のコードは一見問題なさそうに見えるが、?hashed_key=xxx
というパラメータが与えられた場合、hashed_key
の既存の値が xxx
になってしまう。つまり、任意の値に書き換えることができる。
パラメータ・フラグメントに @
から始まるホスト名を指定すると、なぜか上書きできてしまう。
報告
Fix
5.6.26
5.6.28