<code>$v3 = 0; $c=@$_GET['cat']; $d=@$_GET['dog']; if(@$c[1]){ if(!strcmp($c[1],$d) && $c[1]!==$d){ echo $d.$c[0]; eregi("3|1|c",$d.$c[0])?die("nope"):NULL; strpos(($c[0].$d), "htctf2016")?$v3=1:NULL; } } </code>
$_GET['cat'],$_GET['dog'] 어떤 상황에서 $v3가 1과 같나요?
<code>$v3 = 0; $c=@$_GET['cat']; $d=@$_GET['dog']; if(@$c[1]){ if(!strcmp($c[1],$d) && $c[1]!==$d){ echo $d.$c[0]; eregi("3|1|c",$d.$c[0])?die("nope"):NULL; strpos(($c[0].$d), "htctf2016")?$v3=1:NULL; } } </code>
$_GET['cat'],$_GET['dog'] 어떤 상황에서 $v3가 1과 같나요?
이 문제는 PHP의 약한 유형 지정으로 인해 발생합니다. 여기서 사용된 기술은 strcmp가 배열과 문자열을 비교할 때 null이 반환된다는 것입니다.