4주차/CSRF 개념

gkdudans·2023년 11월 25일

EVI$ION/웹

목록 보기
5/11

[드림핵] CSRF 개념

#1. CSRF

  1. CSRF
  2. CSRF: 임의 이용자의 권한으로 웹 서비스 사용 ⇒ HTTP 요청을 보낼 수 있는 취약점
  3. ex) 임의 금액을 송금, 계정 탈취, 관리자계정 공격
  4. CSRF 공격
    1. HTML 또는 Javascript를 통해 작성

    2. HTML 예시: img 태그 이용

      <img src='http://bank.dreamhack.io/sendmoney?to=dreamhack&amount=1337' width=0px height=0px>
    3. Javascript 예시

      /* 새 창 띄우기 */
      window.open('http://bank.dreamhack.io/sendmoney?to=dreamhack&amount=1337');
      /* 현재 창 주소 옮기기 */
      location.href = 'http://bank.dreamhack.io/sendmoney?to=dreamhack&amount=1337';
      location.replace('http://bank.dreamhack.io/sendmoney?to=dreamhack&amount=1337');
    4. CSRF 스크립트 예시

  5. XSS과 CSRF의 차이
    1. 공통점: 클라이언트 대상, 악성 스크립트가 포함된 페이지에 접속하도록 유도
    2. 차이점: XXS는 세션 및 쿠키 탈취, CSRF는 이용자가 임의 페이지에 HTTP 요청을 보냄

#2. [함께실습] CSRF

  1. csrf-1 | 워게임 | Dreamhack
  2. 문제 해결:
    1. userid==admin일 때 memo 페이지의 text로 flag를 작성함
    2. script/iframe/on 문자열을 사용 불가능
    3. img 태그를 이용해야 하고, 이용자가 /admin/notice_flag 페이지를 방문하도록 해야 하며, userid가 admin인지 검사함
    4. 성공적으로 전송했다면 CSRF 공격으로 관리자가 /admin/notice_flag 페이지 방문
    5. 정답: <img src=/admin/notice_flag?userid=admin>

#3. [혼자실습] CSRF

  1. csrf-2 | 워게임 | Dreamhack
  2. 문제 해결:
    1. xss를 막기 위해 "frame", "script", "on"를 필터링
    2. img 태그 사용, /change_password에 접근하도록 해야 하며, pw를 내가 원하는 것으로 변경
    3. 성공적으로 전송했다면 CSRF 공격으로 pw가 변경됨, admin 계정으로 로그인 가능
    4. 정답:
profile
https://github.com/gkdudans

0개의 댓글