PHP 비교연산자
- php 에 존재하는 취약점이다!
문제
PHP 비교 연산자
==
: 자료형에 상관없이 값만 비교한다.===
: 자료형 및 값을 비교한다.
취약점
==
이용하여 값을 비교할 때 값 만을 비교하여 발생할 수 있다.
<?php
$a = '0e2';
$b = '0';
echo $a=='0';
?>
<?php
$a = 0e123;
$b = '0';
echo $a=='0';
?>
Magic Hash
0e1234
문자열을 이용하여 비교를 하면 php 에서는 float 형식으로 인식하게 된다.- 즉 0e 로 시작하고 뒤에 모두 숫자가 오는 문자열을 이용하여 비교를 하면 float 형식으로 인식하게된다.
0e2 == 0*10^2 == 0
즉 0을 비교하는 것이랑 같은 효과를 발생한다.
댓글남기기