본문 바로가기

IT/Hot!

[IT] CSRF(Cross-site request forgery)에 대해서 알아보겠습니다.

안녕하세요. 더 넓은 IT를 위한 WIDE Network! 입니다.


본 포스팅에서는 CSRF(Cross-site Request Forgery)에 대하여 다루어 볼 예정입니다.


CSRF란 무엇일까요?


영어를 풀어서 써보면, 사이트간 요청 변조 혹은, 사이트간 요청 위조 정도로 볼 수 있겠습니다.


  1. CSRF의 정의
  2. CSRF의 활용



CSRF는 이용자의 쿠키값을 탈취하는 XSS와 비슷하면서도 크게 다릅니다.


XSS의 진보된 기법이라고 보시면 되겠습니다.


2008년 옥션 해킹사건때에도 CSRF기법이 이용되었으며, XSS가 위험한 이유중 하나가


XSS가 존재할 경우, CSRF또한 존재할 가능성이 매우 높기 때문입니다.



 



이해하기 쉽게 예를 들어보겠습니다.


제가 쇼핑몰에서 물건을 구매하려고 합니다.


노트북이 150만원이네요? 여기서 CSRF 공격을 활용하면 1원을 지불하고 150만원을 지불한 것 처럼 위조할 수 있습니다.



  1. 이용자는 웹사이트에 로그인하여 정상적인 쿠키를 발급받는다
  2. 공격자는 다음과 같은 링크를 이메일이나 게시판 등의 경로를 통해 이용자에게 전달한다.
    http://www.geocities.com/attacker
  3. 공격용 HTML 페이지는 다음과 같은 이미지태그를 가진다.
    <img src= "https://travel.service.com/travel_update?.src=Korea&.dst=Hell">
    
    해당 링크는 클릭시 정상적인 경우 출발지와 도착지를 등록하기위한 링크이다. 위의 경우 도착지를 변조하였다.
  4. 이용자가 공격용 페이지를 열면, 브라우저는 이미지 파일을 받아오기 위해 공격용 URL을 연다.
  5. 이용자의 승인이나 인지 없이 출발지와 도착지가 등록됨으로써 공격이 완료된다. 해당 서비스 페이지는 등록 과정에 대해 단순히 쿠키를 통한 본인확인 밖에 하지 않으므로 공격자가 정상적인 이용자의 수정이 가능하게 된다.



CSRF의 경우에는 특정 게시판의 해킹에도 이용됩니다.


DC인사이드를 예로 들어보겠습니다.



예를들어, CSRF 코드를 암호화하여(왠만하면 필터링되니까) 업로드 하였다고 가정하겠습니다.


이 글을 읽게 된다면,





위 사진과 같이 되겠지요?


이상입니다.^^