본문 바로가기

Web

[Dreamhack] Web Hacking STAGE 5 (CSRF)

ClientSide : CSRF

 

서명을 신중하게 관리 = 중요한 웹 서비스의 쿠키를 잘 보관

 

Cross Site Request Forgery (사이트 간 요청 위조, CSRF)

- 이용자의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 만드는 공격

- 임의 이용자의 권한으로 임의 주소에 HTTP 요청을 보낼 수 있는 취약점

ex) 웹 페이지를 만들어 이용자의 입력을 유도한 후, 이용자가 값을 입력하면 이를 중요 사이트 등으로 전송하여 마치 이용자가 동의한 것 같은 요청을 발생시킴

 

↑ CSRF 취약점이 존재하는 예제 코드 ↑

- 송금 과정에서 계좌 비밀번호, OTP 등을 사용하지 않았음.

 

CSRF 공격 성공 조건

공격자가 작성한 악성 스크립트를 이용자가 실행해야 한다.

-> 메일이나, 게시판 글을 통해 유도

(악성 스크립트 = HTTP 요청을 보내는 코드)

 

CSRF 공격 스크립트 예시

- HTML 또는 Javascript를 통해 작성

* img 태그 : 이미지 불러오기

* form 태그 : 웹 페이지에 입력된 양식을 전송

 

위의 두 태그를 사용해 HTTP 요청을 보내면, HTTP 헤더 쿠키에 이용자의 인증 정보가 포함된다.

 

 

이미지의 크기를 줄임

 

 

 

 

실습 - 금액을 조작함 -!

 

 

XSS vs. CSRF

 

공통점

- 클라이언트를 대상으로 하는 공격

- 스크립트를 웹 페이지에 작성해 공격

- 이용자가 악성 스크립트가 포함된 페이지에 접속하도록 유도해야 한다.

 

차이점

- 서로 다른 목적을 가짐

- XSS는 인증 정보인 세션 및 쿠키 탈취를 목적으로 하고, 공격할 사이트의 오리진에서 스크립트를 실행시킴

- CSRF는 이용자가 임의 페이지에 HTTP 요청을 보내는 것을 목적으로 하고, 공격자는 이용자 권한으로 임의 기능을 실행 가능함

'Web' 카테고리의 다른 글

[Dreamhack] csrf-2  (0) 2022.02.13
[Dreamhack] csrf-1  (0) 2022.02.13
[Dreamhack] xss-2  (0) 2022.02.06
[Dreamhack] Web Hacking STAGE 4 (XSS)  (0) 2022.01.30
[Dreamhack] Web Hacking STAGE 3  (0) 2022.01.23