Cookie 탈취
DATE : 2023/12/31
XSS에 관한 내용을 정리해보았으니, 이젠 XSS로 과연 무엇을 할 수 있을 지에 대해 고민해보자.
저번 주에 다룬 문제에서는 POC 개념으로 단순히 alert() 함수가 실행되는 지의 여부만 확인했었다.
하지만 현실에서는 이와 달리 좀 더 악의적인 목적을 가지고 XSS를 수행할 것이다.
XSS로 실행할 수 있는 다양한 형태의 스크립트가 존재하겠지만
그 중에서도 오늘은 cookie 탈취와 관련된 내용을 정리해보려고 한다.
우선 쿠키를 탈취하기 위한 스크립트를 먼저 작성해보자.
전체 내용은 총 3줄로 어렵지 않게 쿠키를 탈취할 수 있다!
스크립트 내용을 설명하기 전에 정확히 이해해야 할 것은
스크립트가 실행되는 위치가 사용자의 브라우저라는 것이다.
따라서 위의 스크립트를 받은 브라우저는
자신이 가지고 있는 쿠키 정보를 변수 data에 할당한 다음 HTML <img> tag를 생성한다.
<img> tag는 말 그대로 화면에 이미지를 출력할 때 사용하는 태그인데
무조건 출력할 이미지의 주소를 적어줘야 한다.
따라서 속성 src에
공격자 서버로 data를 보내는 URL을 적어주면 된다.
스크립트의 마지막 줄을 브라우저가 실행하게 되면
이미지를 출력하기 위해 src에 적힌 경로로 요청을 보내게 되는데
이 요청은 결국 공격자 서버로 쿠키를 보내라는 의미이기 때문에
결과적으로 사용자의 쿠키를 공격자의 서버에서 확인할 수 있게 되는 것이다.
즉! XSS 공격 포인트를 찾아서 이와 같은 스크립트를 삽입하게 되면
사용자는 아무 것도 모른 채 자신의 쿠키를 공격자에게 넘겨 주게 되는 것이고
만약 로그인한 사용자의 쿠키를 탈취하게 되면
공격자는 자신이 얻은 쿠키를 활용해 다른 사용자의 신원으로 위장함으로써
로그인 인증 과정을 우회할 수 있게 된다..!
따라서 alert()만 띄우는 단순한 공격이 아닌, 생각보다 중대한 피해를 입을 수 있음을 알아야 한다! 👍
Last updated