본문 바로가기

12번 문제에요.

배점은 283점, 이름은 type confusion 이네요.

 

type confusion

 

Simple Compare Challenge.

hint? you can see the title of this challenge.

:D

 

입력창이 있어요.

 

먼저 소스를 보면

JSON을 입력받아서 key에서 값을 읽어오는데

$key = uniqid("welcome to wargame.kr!_", true);

$key = sha1($key);

로 만들어진 난수와 비교를 해서 같으면 문제가 풀리게 되어있어요.

 

{"key":"test"}

그래서 입력칸에 test 를 집어넣으면 자동으로 JSON으로 변환되서 전송되고,

 

nope... 를 띄워요.

 

다시 코드로 돌아가보면

 

if ($json->key == $key) {

    $ret = ["code" => true, "flag" => auth_code("type confusion")];

 

비교를 == 로 하네요.

$key 는 문자열일테고 $json->key 에 true 를 집어넣어서 bool 형식으로 만들어버리면 무조건 참이되어 통과할수 있겠네요.

 

{"key":true}

피들러로 전송되는 데이터를 중간에서 바꿔주면?

 

Congratulations! flag is 81dc1cb6f68eda916810cd9ac4a7c0d1e029a74f

 

빠밤!

 

문제가 풀렸네요.

'연구글 > wargame.kr' 카테고리의 다른 글

wargame.kr 14 / php? c?  (0) 2020.10.27
wargame.kr 13 / img recovery  (0) 2020.10.26
wargame.kr 11 / tmitter  (0) 2020.10.22
wargame.kr 10 / md5_compare  (0) 2020.10.21
wargame.kr 9 / DB is really GOOD  (0) 2020.10.19
댓글