본문 바로가기
Hacking/wargame.kr

[wargame.kr] Question 12. Type confusion

by 알거음슴 2021. 6. 30.

문제

Simple Compare Challenge.

hint? you can see the title of this challenge. :D

 

 

풀이

페이지 접근 시 간단한 입력폼과 view-source 하이퍼링크가 제공되고 있다 하어퍼링크를 통한 내용을 확인해보자.

 

코드 확인 시 사용자로부터 입력받은 내용과 “welcome to wargame.kr!_”sha1 해싱한 값이 ==비교인자로 일치한다면 flag 값을 출력 하는걸로 확인된다.

 

기존 strcmp 의 문제와 유사한 문제이다. php의 비교 연산자가 == 일 경우 입력값의 따른 결과를 True 로 출력 할 수 있도록 하는 문제이다. php 에서 비교연산자가 == or ===에 따라서 결과값은 다르게 출력되는 걸 확인할 수 있다.

이 문제에서는 “php”==true 를 비교하도록 만들어보자.

 

개발자 도구의 Elements 를 통해 ./util.js 를 참조 하는걸 확인할 수 있고 해당 페이지 접속 시 javascript의 내용을 확인할 수 있다. submit_check() 함수를 통해 입력 값을 key로 생성하고, submit(key) 함수를 통해 비교작업을 진행하는걸 확인할 수 있다. 해당 코드를 변조하여 작업을 진행해보자.

 

개발자 도구(F12) -> Console 을 통해 javascript 의 내용을 그대로 입력하여 함수를 수정한다. {key : key} 형태의 사전형식의 값을 {key : true} 로 변경 후 임의의 값을 입력해보자.

 

Congratulations! flag is 347e157e700c0d679f0e7a111b7ba8abe3011e09

Flag 값을 찾을 수 있고 제출 시 통과할 수 있다.