본문 바로가기

보안공부/XCZ 풀이

xcz.kr 32번 문제 풀이 - 자료형이...

XCZ.KR PROB 32 풀이

자료형이... ]


XCZ.KR의 32번 문제를 풀어보자.


Prob Page에 들어가니 다음과 같은 화면만 출력된다.


뭐 건져갈건 있으려나...

는 읎어요!


이제 Source Page를 봅시다.

<?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?"; 
} 
?>

음.... 눈치 채셨나요?


GET 메소드를 이용해 입력한 a값에 대한 자료형 선언이 없습니다.

따라서 Type Juggling를 발생시킬 수 있습니다.


12735366333132132465461뒤에 아무 숫자나 29자리 추가해준 후 a값으로 파라미터를 주면 된다.

여기서 잠깐!

?의 갯수만큼 필해주어 int로 바꿔주는 형태이기 때문에 ?의 갯수인 29개보다 많아서도, 적어서도 안된다.


그럼 이 문제에 대한 답이 나온다.



XCZ.KR 32번 문제 클리어!