2019. 10. 18. 22:16ㆍWargame/XCZ.kr
<?php
if($_GET['a']==""){exit ("WUT?? 31337?");}
$a= urlencode($_GET['a']);
if(isset($a)){
if($a == "12735366333132132465461?????????????????????????????") {exit("KEY");
} else {echo "Failed ur tricks";}
}
else{
echo "WTH?";
}
?>
32번의 소스코드를 확인해보면 위와같다.
a를 입력받아서 urlencode 한다.
그후 12735366333132132465461????????????????????????????? 이란 값과 비교해서 같으면 풀린다.
이 문제의 타이틀부터 보면
Title
Easy Trick
php의 트릭을 이ㅎ용해서 키 값을 구하는것 같은데
이 문제에서 이용해야 하는 php 트릭은 php 가 매우 작은 숫자비교는 같다고 처리하는 것이다.
rubiya님 블로그에 잘 정리가 되있다. http://blog.naver.com/withrubiya/70175920455
<?
echo 10000000000000000 == 10000000000000001;
?>
를 출력해보면 분명 다른 숫자인데도 불구하고 작은 차이이기 때문에 무시해서 참값을 출력하는것을 볼 수 있다,.
그래서 그냥
1273536633313213246546100000000000000000000000000000
아무 숫자나 대입해줘도 php는 작은차이라고 인식하기 때문에 무시해서 참값을 반환해 문제가 해결된다.