Everything is hacked.

There is no 100 % security.

Write-Up/2023-n00bz_CTF

n00bz CTF 2023 - [Web] Club_N00b

Kai_HT 2023. 6. 11. 20:41

< n00bz CTF 2023 Club_N00b >

CCE 2023 대회에서 광탈을 맛본 후 자기 자신에 대한 분이 풀리지 않아 종료 당일 시간 진행되고 있던 타 CTF 인 'n00bz CTF' 에 가입, 출전하게 되었다. (2023년 6월 11일 문제 solve 가능)

CCE 2023 이후 지속적인 CTF 문제풀이의 필요성하다 판단하였고 이후 주기적으로 진행하여 포스팅할 예정이다.

해당 CTF 내 Challenge 문제로 Web 1번 문제로 출제되었으며, 추가 첨부파일 없이 URL 링크로 문제가 배포되었다. 문제 지문을 확인한 결과 임의 페이지 내 접근 권한을 묻는 문제로 판단하고 접근하였다.

접근 링크 :

http://challs.n00bzunit3d.xyz:8080/

< Club_N00b Main Page >

해당 Challenge 페이지에 접근하게 되면 소셜 클럽인 n00bz 안내 문구 가 확인이 가능하며 접속 당사자는 허가 권한이 존재하지 않는 사실에 대한 확인이 가능하다. 페이지 내 기능으로 네 가지가 확인되었으며 해당 기능으로 1. 이미지 제공, 2. 사진 제공자, 3. 서비스 접근 가능자, 4. 페이지 접근 인원의 상태 확인이다. 해당 페이지에서 본인의 상태 확인을 위한 상태 확인 기능 호출을 시도하였다.

< Club_N00b Check Status >

상태확인 기능 호출 시 기능 호출 URL 및 전달 파라미터를 확인해보면 페이지URL/check 페이지를 호출하고 있으며 파라미터로 secret_pharse 를 넘기는 사실을 확인할 수 있다. 해당 값으로 'nope' 이 전달되고 있는 것도 확인된다.

< Club_N00b Check Status (No Modulation of Params) >

상태 확인 기능 정상호출 시 기능호출자가 멤버 목록 내 존재하지 않아 접근 거부된 것을 확인할 수 있다. 서버 응답 값을 통하여 추측해볼 수 있는 것으로 해당 페이지 접근 시 세션 값 전달이 존재하지 않았으며 로그인 기능이 없는 것으로 미루어 보아 상태확인 기능 호출 시 전달되는 파라미터를 이용한 권한검증이라 추측해볼 수 있다.

이는 보안 취약점 체크리스트 중 '부적절한 이용자 인가 여부' 항목에 해당하는 것으로 판단할 수 있다.

< Club_N00b Check Status (Modulation of Param) >

해당 페이지에 대한 접속 권한을 얻기 위해 상태확인  기능을 재호출하여 전달 파라미터 값인 'secret_pharse' 를 변조하여 넘겨준다. 이때 최초 페이지에서 확인가능한 'Unfortunately, only the most radical of hackers can get in, and you are not allowed' 라는 문장을 참고하였는데 직역하면 '운나쁘게도 해당 페이지는 가장 급진적인 해커들만 들어갈 수 있으며 당신은 허용되지 않았다.' 라는 문장이다. 여기에서 '급진적인' 이라는 단어인 'radical' 이 텍스트 효과로 강조되어 작성되어 있었으므로 상태확인 기능 호출 시 전달 파라미터로 radical 이라는 문자열로 변조하여 전달을 시도하였다.

< Club_N00b Check Status Server Result >

상태확인 기능 호출 결과 서버 응답값으로 페이지 접근 허용 페이지로 URL 리다이렉트가 되는 것을 확인할 수 있으며 해당 URL 내 flag 값이 추가되어 요청되는 것을 확인할 수 있다.

< Club_N00b flag >

리다이렉트 되는 페이지 확인 시 페이지 내 해당 challenge 의 flag 값의 확인이 가능하다.

n00bz{see_you_in_the_club_acting_real_nice}

이번 CTF 문제를 통하여 알게된 건 해외의 경우 국내와 관점이 다르다는 것이다. 국내의 경우 '너 이걸로 얼마나 우회해보고 얼마나 응용이 가능하지?' 라는 느낌으로 수능문제를 출제하는 느낌이라면 해외의 경우 '너가 해당 문제에서 얼마나 힌트를 얻어서 풀 수 있지?' 라는 식의 응용 느낌이라는 것이다. 해당 문제를 진행하면서 전달 파라미터 값을 'root' 나 'admin' 등 임의 값으로 전달하는 경우 정상호출 페이지와 동일하게 권한이 없다는 페이지가 나오게 되어 flag 값에 대한 호출이 불가능하지만 메인페이지 내 문장을 곰곰히 생각하면 해당 flag 는 쉽게 얻을 수 있으니까.

'Write-Up > 2023-n00bz_CTF' 카테고리의 다른 글

n00bz CTF 2023 - [PWN] Flag Shop  (0) 2023.08.25
n00bz CTF 2023 - [Web] Secret Group  (0) 2023.08.25
n00bz CTF 2023 - [Web] Robots  (0) 2023.06.11