ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CSRF 실습 (세션 인증 방식 우회)
    IT/웹 해킹 2024. 1. 23. 15:38

    [이 블로그는 해킹 공부하면서 가볍게 정리용으로 기록 및 내 생각을 끄적여 두기 위한 블로그(라 쓰고 일기라 읽는)이다.]

     

    • 목차
    1. CTF 문제 및 시나리오
    2. 실습

    1. CTF 문제 및 시나리오

     

     

    지난 게시물에서는 GET방식으로 유저의 정보 및 바꿀 정보를 파라미터에 포함시켜 링크를 보내거나 저장하여 유저가 접근하게 시도했었다면 이번 실습은 GET방식이 통하지 않는 곳에서 (session 정보를 검증하는 단계가 존재) POST방식으로 공격을 시도할 것이다.

     

    2. 실습

    1) 마이페이지에서 변경할 새로운 비밀번호를 넣고 Update 버튼을 누른다.

     

     

    2) 회원 정보 수정에 성공했다는 알림 창이 뜨게 되고 다시 로그인 창으로 이동하게 된다. (로그인하면서 세션이 생성되고 비밀번호 변경 시 세션정보를 초기화하기 위해 로그아웃이 수행되는 것으로 추정)

     

     

     

    3) 프록시에서 패킷을 확인할 시 session=true라는 세션검증을 하는 단계가 보임

     

     

    4) POST 방식을 사용하여 XSS 취약점이 있는 곳을 찾아 게시물을 작성 (현재 게시판 글쓰기에 XSS 취약점 존재)

     

    -코드 설명-

    • iframe 태그를 이용하여 접근한 게시물에 관리자의 마이페이지를 이중으로 띄우고 (display none으로 실제 눈으로 볼 때에는 보이지 않음)
    • form태그를 사용하여 프록시에서 보았던 name이 pw인 input 태그를 hidden으로 작성해 주고 바꾸고 싶어하는 비밀번호의 값을 value에 입력한다. (id의 정보는 info로 적용이 되어 pw만 넣어줘도 통하게 된다.)
    • 관리자가 누르지 않고도 자동으로 제출버튼을 누르게 하기 위한 자바스크립트의 submit 함수를 사용한다.
    • 회원 정보가 수정되었다는 알림을 띄우면 관리자가 눈치챌 수 있으니 iframe의 sandbox 속성을 allow-scripts로 넣어주어 알림창이 뜨지 않게 만든다. 

     

     

    5) 게시물의 URL을 복사하여 링크를 관리자에게 보낸다.

     

     

    6) 관리자의 비밀번호가 바뀐 지 로그인 확인

    플래그 획득!

     

Designed by Tistory.