White Security
[wargame.kr] type confusion 문제풀이 본문
wargame.kr 사이트의 12번째 문제 입니다.
"간단한 비교 문제입니다. 힌트요? 문제 제목을 보세요 :D"
링크에 접속하면 입력값을 넣는 폼과 소스 확인용 링크가 나옵니다.
소스를 확인해보니 입력된 텍스트를 submit_check 함수를 통해 json 형식으로 전송하고 있네요.
submit_check함수는 ./util.js 내에 포함되어 있지만, 중요하지 않으니 생략했습니다.
json형식으로 받은 데이터를 json_decode 함수를 통해 풀어내어
mixed 타입 변수로 바꾸었군요.
그리고 $key와 == 연산자로 느슨한 비교를 수행하여
같으면 Flag를 출력하도록 하고 있습니다.
예시로 posix 를 입력하고 제출하면
json 파라미터에 URI 인코딩 된 형태로 전송됩니다.
burp 프록시를 사용해 "posix" 와 같이 텍스트 형식으로 되어 있던 것을
불리언 형식인 true 로 바꾸어 주었습니다. (따옴표 삭제)
PHP 느슨한 비교 규칙에 의해
$key 값이 0, false, null 과 같은 값만 아니라면 true 를 반환하게 되어 우회에 성공합니다.
Key를 얻는데에 성공했습니다.
'Wargame Writeups > wargame.kr' 카테고리의 다른 글
[wargame.kr] php? c? 문제풀이 (0) | 2019.01.22 |
---|---|
[wargame.kr] img recovery 문제풀이 (0) | 2019.01.22 |
[wargame.kr] tmitter 문제풀이 (1) | 2019.01.22 |
[wargame.kr] md5_compare 문제풀이 (0) | 2019.01.22 |
[wargame.kr] strcmp 문제풀이 (0) | 2019.01.22 |
Comments