Description
Category: Web
Source: DEFCON CTF 2018 Quals.
Points: 101
Author: Jisoon Park(js00n.park)
Description:
Stop overthinking it, you already know the answer here.
You already have the flag.
Seriously, if you can read this, then you have the flag.
Submit it!
Write-up
(*. 문제 환경을 재구성하여 풀이하였습니다.)
아무것도 주어진게 없는데 flag를 내놓으라고 한다.
몇가지 가능성을 생각할 수 있을 것 같은데, 우선 소스 코드를 살펴보자. Chrome의 개발자 도구를 이용하면 각종 resource를 쉽게 확인할 수 있다.
flag 형식이 OOO{} 라고 하였으니, OOO라는 문자열을 검색해 보았다.
소스코드 여기저기를 뒤져봐도 flag 처럼 보이는 것은 없는 것 같다.
다음으로, 웹 문제에서 가장 쉽게 생각해 볼 수 있는 Cookie를 확인해보자.
Cookie에는 session 정보밖에 없다.
다음으로, Network으로 전송된 정보에 flag가 있는지 확인해보자.
Network에도 별 정보가 없다. 이제 뭘 뒤져봐야 하나... 하는데 데이터 중에 Status가 pending인 것이 있다. 잠시 기다리면 200으로 바뀌는데, 그 후에 다시 OOO를 검색해봤더니 문자열 하나가 나왔다.
검색 결과를 더블클릭하여 해당 문자열로 가보면 JSON 형식의 데이터를 볼 수 있다. 브라우저가 XHR(XML Http Request) 요청을 보냈는데, async로 처리하여 회신이 늦게 오도록 한 것 같다.
수신한 데이터는 아래와 같았고, flag가 포함된 것을 확인할 수 있었다. (이 데이터는 수신한 후에 별도로 렌더링 되지 않고 버려진다.)
{
"message": "Stop overthinking it, you already know the answer here.\n\n[comment]: <> (OOO{Sometimes, the answer is just staring you in the face. We have all been there})\n\nYou already have the flag.\n\n**Seriously**, _if you can read this_, then you have the flag.\n\nSubmit it!\n",
"success": true
}
Flag : OOO{Sometimes, the answer is just staring you in the face. We have all been there}
'writeups > Web' 카테고리의 다른 글
sbva (0) | 2019.11.26 |
---|---|
My admin panel (0) | 2019.11.26 |
Cookie Monster (0) | 2019.11.25 |
Stop and Listen (0) | 2019.11.25 |
ReadingRainbow (0) | 2019.11.25 |