GET Admin 1

DATE : 2024/1/21

Capture The Flag

STEP_1) 회원 가입 페이지로 이동

STEP_2) 사용할 계정 생성

STEP_3) STEP_2에서 만든 계정으로 로그인

STEP_4) 마이페이지로 이동

STEP_5) 비밀번호 수정 요청 보내기

STEP_6) STEP_5 요청의 POST method를 GET method로 변환

STEP_7) GET method로 요청 시 응답 여부 확인

STEP_8) 게시판 페이지로 이동

STEP_9) 게시물 작성 페이지로 이동

STEP_10) 게시물 본문에 스크립트 작성

STEP_11) STEP_10에서 작성한 게시물 클릭

STEP_12) 공격자가 삽입한 스크립트 동작 여부 확인

STEP_13) 사용자의 비밀번호를 1019로 변경하는 요청을 <img> tag 경로로 지정한 스크립트를 삽입

STEP_7에서 비밀번호 요청을 GET method로 보낼 수 있음을 확인했기 때문에

상대적으로 간편하게 공격을 할 수 있는 링크 형태로 스크립트를 작성했다.

admin이 이 게시물에 접근하게 되면 <img> tag를 화면에 출력하기 위해 src 경로로 접근하게 되면서

비밀번호를 pw parameter로 수정하라는 요청을 보내게 된다.

STEP_14) admin에게 STEP_13에서 작성한 게시물 주소를 전달

STEP_15) 현재 로그인한 계정에서 로그아웃

STEP_16) pw parameter로 전달한 비밀번호로 admin 계정에 로그인 시도

admin이 전달한 URL로 접속했다면 자신도 모르는 사이에 비밀번호를 수정하라는 요청을 보내게 되면서

공격자가 지정한 pw parameter 값으로 비밀번호가 수정되었을 것이다.

따라서 CSRF 공격이 성공적으로 수행되었다면 1019를 비밀번호로 입력했을 때

admin 계정으로 로그인할 수 있고 결과적으로 아래와 같이 Flag를 얻을 수 있게 된다.

STEP_17) admin 계정으로 로그인 성공 시 결과 화면

Last updated