Amateurs CTF 2023 웹 문제 waiting-an-eternity 입니다.
해당문제를 번역해보면
(구글번역기를 사용했습니다.)
웹 사이트에서 충분히 기다리면 플래그를 얻을 수 있다고 합니다.
해당 문제의 웹사이트에 접속을 해보면
그냥 기다리라고 합니다만 한국인답게 참을 수 없으니 개발자옵션으로 열어서 확인을 해줍니다.
응답 헤더쪽을 확인해보니 엄청나게 긴 1000~ 시간을 기다리면 작성된 url로 Refresh 해주는 것을 확인할 수 있었습니다.
추가로 전달되는 값에 secretcode라는 것도 존재하니 빼먹지 않고 url로 전달해 secret-site로 접속해보면
또 다시 영원을 기다리라고 합니다.
기다릴 생각은 전혀 없으니 개발자옵션으로 다시 하나씩 살펴보다보면
쿠키값에 time 이라는 이름으로 값이 저장되어있는 것을 확인 할 수 있습니다.
여기서 저장된 값은 168~로 시작하는 걸보니 컴퓨터의 시간을 체크하는 값임을 알 수 있습니다.
time값이 존재하는 채로 다시 웹 사이트를 새로고침 해보면
쿠키값으로 저장된 시간과 서버의 시간의 차이를 계산해 영원을 기다리지 않았다고 말합니다.
여기서 말하는 영원을 해결하기 위해서 쿠키값으로 저장된 time의 데이터타입 값을 넘기는
값을 계산시키면 Overflow 혹은 UnderFlow 가 일어나게 되면서 해결할수 있을 것으로 보입니다.
쿠키값을 조작하면서 새로고침을 하는것이 불편해 버프스위트를 사용했습니다.
먼저 쿠키값가질수 있는 최대치의 값을 쿠키값에 넣어주고
해당 값을 이용해 기다린 시간을 계산하므로 앞에 -를 붙혀 서버시간 - (- 쿠키값) 구조로 만들어
BOF를 일으켰습니다.
해당 값이 전달되면
amateursCTF{ }포맷의 FLAG값을 획득할 수 있고 해당 FLAG값을 제출해주면서
문제가 해결되었습니다.
amateursCTF{im_g0iNg_2_s13Ep_foR_a_looo0ooO0oOooooOng_t1M3}
'AmateursCTF' 카테고리의 다른 글
[AmateursCTF 2024] web / pwn / misc Write up (2) | 2024.04.09 |
---|