최대 1 분 소요

  • 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을 비교하는 것이랑 같은 효과를 발생한다.

참고 사이트

댓글남기기