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 |