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 |