워게임 문제풀이/Segfault

<Segfault> 워게임 문제풀이 [CSRF-Get admin 1]

무너박사 2024. 7. 6. 23:14

 

목표 : admin 계정의 비밀번호를 바꾼후 로그인 하라!

문제 목표

 


 

<회원가입>

<회원가입> ID: james / pw : 123123 <메인페이지>

 

일단 회원가입을 해주었습니다.

마이페이지로 가서 비밀번호 변경 기능을 사용한 후 Burp 로 확인해주겠습니다.

 


<마이페이지>

(비밀번호 변경)

 

비밀번호 변경 : PW=159159 비밀번호 변경에 대한 응답

 

음.. 일단 POST 요청을 통해 회원정보 수정이 이루어지고있습니다.

이 요청을 GET 방식으로 바꿔서 똑같이 이루어지는지 확인해보겠습니다.


GET 방식으로 재요청 응답(성공)

 

비밀번호 요청이 GET 요청으로 바꿔주어도 성공하는것을 보실수 있습니다.

그러면 이 요청을 변조하여 PW를 123123으로 다시 바꿔보겠습니다.


비밀번호 변경 요청(위조) : PW=123123 결과(성공)

 

 

<GET 방식으로 요청이 가능함을 통해 링크를 통한 요청 위조가 가능함을 생각해볼수 있습니다.>

그러면 XSS 와 연계를 위해서 xss 취약점 포인트를 찾아주겠습니다.

 


<XSS 포인트 찾기>

(글쓰기 게시판)

 

게시판 글쓰기  < > " ' 와 같은 특수문자 사용가능 확인

 

 

-특수문자가 사용한것을 확인하였으니 POC 코드를 삽입하여 자바스크립트가 사용가능한지 확인해주겠습니다.

 


 

POC 코드 삽입 POC 코드 동작확인

 

 

POC 코드가 동작하는것을 확인하였습니다.

이제 저희는 자바스크립트와 HTML 구문을 마음껏 넣을 수 있습니다.

 

아까 GET 방식으로 요청위조가 가능하던것을 생각하면 , Img 태그를 활용하여 게시글의 접근하는 사용자에게 비밀번호 변경 요청을 유도할 수 있을것같습니다.

 


 

img 태그 삽입으로 CSRF 유도코드 게시글 화면

 

이 게시물에 접속하면 고양이 사진이 업로드중 문제가 있어서 안나온다고 생각할 것입니다.

하지만 저 IMG의 주소는 비밀번호 변경을 요청하는 코드로써 자신의 비밀번호가 바뀐지도 모르겠죠!

 


PW = 159159 로 바꾸라는 요청이 보내진것을 확인

 

 

이제 이 게시물에 접근하는 사람들의 비번은 '159159'로 바뀔것 입니다.

james_admin 이 이 게시물에 접근하게 하여 비밀번호를 바꾼후 james_admin 의 아이디로 로그인해보겠습니다.

 


<관리자 아이디로 접속하기>

 

관리자가 게시물에 접근

 


 

이제 로그인해주면?

 

 


 

무사히 플래그를 얻을수 있었습니다!

 


긴 글 읽어주셔서 감사합니다!