CakePHPの$this->request->clientIP()の不正利用

古いCakePHPを使ってるサイトがあって、そこの担当からサイト内の情報が勝手に変わってるって連絡があって調べてみたら、
IP制限かけてるんだけどCakePHPのclientIP偽装利用されて不正アクセスされていたっていうね。

場所はCakePHPのlib>Cake>Network>CakeRequest.php

public function clientIp($safe = true) {
	if (!$safe && env('HTTP_X_FORWARDED_FOR')) {
		$ipaddr = preg_replace('/(?:,.*)/', '', env('HTTP_X_FORWARDED_FOR'));
	} else {
		if (env('HTTP_CLIENT_IP')) {
			$ipaddr = env('HTTP_CLIENT_IP');
		} else {
			$ipaddr = env('REMOTE_ADDR');
		}
	}
	if (env('HTTP_CLIENTADDRESS')) {
		$tmpipaddr = env('HTTP_CLIENTADDRESS');
		if (!empty($tmpipaddr)) {
			$ipaddr = preg_replace('/(?:,.*)/', '', $tmpipaddr);
		}
	}
	return trim($ipaddr);
}

PHPのプログラムベースでIP制限をかけていて、clientIp関数から取得したIPを判定として利用してるんですが、見ての通り「HTTP_CLIENT_IP」をヘッダー情報として送信すればいくらでも偽装できるんですよね。

で偽装されて不正にアクセスされて内容書き換えられていたって感じです。

でもそもそも許可されているIPアドレスを知ってる人じゃないと突破できないよねってことでかなりざわついてます。内部犯だったらどうするんだろ・・・ww

シェアする

  • このエントリーをはてなブックマークに追加

フォローする