CSRF 문제 풀이(Get Admin1)

이정민·2024년 1월 17일

웹 해킹 공부 정리

목록 보기
16/18

Flag 획득 조건

이번 문제는 CSRF를 이용해서 관리자의 비밀번호를 변경시키고, 관리자의 계정으로 로그인하면 Flag를 획득할 수 있습니다.

문제 풀이

먼저 비밀번호 변경을 통해 인증 정보가 있는지 확인해보겠습니다.

Burp로 확인해보니 파라미터 pw=1234 뒤에 인증 정보가 없는 것이 확인됩니다. 즉 링크를 몰래 관리자가 들어가게 만들면 관리자 계정에서 비밀번호 변경 요청을 서버에 보내게 되어 관리자의 비밀번호가 1234가 되는 것이죠.

Post 방식으로 된 것을 확인했으니 XSS를 통해 Form 태그를 삽입해서 공격해야겠습니다. 일단 게시판에서 XSS 공격이 가능한지를 확인해보겠습니다.

게시판에 글을 써보니 문제없이 사용되는군요. 이제 Form 태그를 삽입해 보겠습니다.


게시글에 들어가니 비밀번호가 1234로 성공적으로 바뀌는 것이 보입니다.
이제 관리자에게 이 글을 읽게 해보겠습니다.


이럴수가! 관리자가 알아차려버렸습니다. iframe에 style 부분에 display:none;을 줘서 잘 숨겨줬지만 아무래도 알림창이 문제인 것 같습니다.
일단 처음으로 돌아가서 다시 Burp 부분에서 post메소드를 get 메소드로 바꿔서 전송해보겠습니다.

문제없이 작동합니다. 이 링크를 이용해서 만들면 가능할 것 같기도 합니다. 한 번 이미지에 이 링크를 넣으면 비밀번호 변경이 되는지 보겠습니다.


문제 없이 비밀번호 변경이 되는군요. 이제 이 링크를 관리자에게 보내보겠습니다.

관리자가 자신의 비밀번호가 바뀐 것을 알아차리지 못했습니다.
이제 해당 계정으로 로그인해보니 성공적으로 플래그를 획득했습니다.

profile
공부중

0개의 댓글