STAGE 5 Cross Site Request Forgery(CSRF)
-ClientSide: CSRF
Cross Site Request Forgery (CSRF) 사이트 간 요청 위조 : 임의 이용자의 권한으로 임의 주소에 HTTP 요청을 보낼 수 있는 취약점
이용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 만드는 공격
공격자는 임의 이용자의 권한으로 서비스 기능을 사용해 이득을 취할 수 있다.
->이용자의 계정으로 임의 금액을 송금해 금전적인 이득을 취하거나 비밀번호를 변경해 계정을 탈취하고, 관리자 계정을 공격해 공지사항 작성 등으로 혼란을 야기할 수 있다.
Cross Site Request Forgery 동작
CSRF 공격에 성공하기 위해서는 공격자가 작성한 악성 스크립트를 이용자가 실행해야 한다.
공격자가 이용자에게 메일을 보내거나 게시판에 글을 작성해 이용자가 이를 조회하도록 유도하는 방법이 있다.
여기서 말하는 악성 스크립트는 HTTP 요청을 보내는 코드이다.
CSRF 공격 스크립트는 HTML 또는 Javascript를 통해 작성할 수 있다.
HTML으로 작성한 CSRF 스크립트
이미지를 불러오는 img 태그를 사용하거나 웹 페이지에 입력된 양식을 전송하는 form 태그를 사용하는 방법이 있다.
두 개의 태그를 사용해 HTTP 요청을 보내면 HTTP 헤더인 Cookie에 이용자의 인증 정보가 포함된다.
Javascript으로 작성한 CSRF 스크립트
/* 새 창 띄우기 */
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');
새로운 창을 띄우고, 현재 창의 주소를 옮기는 등의 행위가 가능하다.
XSS와 CSRF 비교
공통점
두 개의 취약점은 모두 클라이언트를 대상으로 하는 공격이며, 이용자가 악성 스크립트가 포함된 페이지에 접속하도록 유도해야 한다.
차이점
두 개의 취약점은 공격에 있어 서로 다른 목적을 가진다.
XSS는 인증 정보인 세션 및 쿠키 탈취를 목적으로 하는 공격이며, 공격할 사이트의 오리진에서 스크립트를 실행
CSRF는 이용자가 임의 페이지에 HTTP 요청을 보내는 것을 목적으로 하는 공격이며, 공격자는 악성 스크립트가 포함된 페이지에 접근한 이용자의 권한으로 웹 서비스의 임의 기능을 실행
'빡공팟(P4C)' 카테고리의 다른 글
웹해킹트랙 4주차 과제 - 드림핵 웹해킹1 #Command Injection (0) | 2022.10.19 |
---|---|
웹해킹트랙 4주차 과제 - 드림핵 웹해킹1 #SQL Injection (0) | 2022.10.19 |
웹해킹트랙 4주차 과제 - 드림핵 웹해킹1 #Cross-Site-Scripting(XSS) (0) | 2022.10.19 |
웹해킹트랙 4주차 과제 - 드림핵 웹해킹1 #Cookie & Session (0) | 2022.10.19 |
웹해킹트랙 4주차 과제 - 드림핵 웹해킹1 #Background - Web (0) | 2022.10.19 |