KU-CTF 대회하면서 Master Moon의 출제로, 해당 문제풀이 환경은 Docker로 구성되어있다.
해당 NewAPI 문제를 접속하면 나오는 첫 화면이다. 보는 것과 같이 ID와 Password 외에는 정보가 없다.
해당 화면을 Fiddler를 사용해 소스를 확인했다.
응답값을 보니 server:uvicorn이라는 것을 확인했다.
uvicorn에 대해 알아보니 FastAPI 프레임워크를 사용한다고 한다.
그리고 Default로 /docs와 /redoc이라는 옵션이 있다는 것을 알아냈다.
/redoc에 접근하니 다음과 같은 화면을 확인할 수 있었다.
/redoc 화면 중에서 오른쪽 화면에서는 존재하는 URL이 있음을 확인했다.
접속 가능한 URL 중 loginAction에 접속해보니 허가되지 않은 것이라는 응답을 볼 수 있었다.
그래서 request 부분을 보았더니, redoc 페이지에서 loginAction 패킷을 전송할 때는 POST 방식으로 전송해야 하지만 해당 패킷을 보면 GET으로 전송하는 것을 알 수 있었다.
Content-type과 Request Body 부분을 참고해 Composer 기능을 활용해 해당 부분들을 변환해 request를 진행해보았다.
패킷을 전송하니 다음과 같은 결과값을 얻을 수 있었다.그리고 Token 값 형식을 보니 "." 부분을 기점으로 3구간이 있는 것을 보아 JWT로 암호화 되어있다고 추측했다.
해당 URL 부분을 보니 Token, user_id, cmd가 필요한 것을 알 수 있었는데, 위에서 얻은 Token 값을 복호화해 알아보고, 해당 cmd를 이용해 flag 값을 찾으면 되겠다고 생각했다.
'Web Security' 카테고리의 다른 글
KU-CTF ForceLogin1 (0) | 2023.05.02 |
---|---|
KU-CTF ForceLength (0) | 2023.03.28 |
KU-CTF PingService (0) | 2023.03.28 |
Linux Wildcard란? (0) | 2023.03.21 |
OS Injection란? (0) | 2023.03.20 |