CSRF를 다시 정리해 보면
Cross Site Request Forgery
피해자가 자신의 의도와는 다르게, 자신도 모르게 서버로 임의의 요청을 하게 만드는 공격이다.
피해자의 세션을 활용하는 공격이고, 세션이 활성화된 상태에서 공격을 해야 한다.
XSS는 클라이언트 측 스크립트를 삽입해서 클라이언트의 브라우저에서 실행 되게 만드는 공격이다.
공격이 이루어지는 곳
모든 요청에 대해서 이루어진다.
다만 이것을 취약점으로 보는 건 컨설턴트의 주관이 들어가게 된다.
공격 기법
1. GET Method
URL 링크를 만들어서 전달 -> 로그인 한 다음에 볼 수 있는 페이지(세션이 생성되고 난 후)
2. POST Method
무조건 XSS를 찾아서 이용해야 한다.(같은 도메인에서 찾아야 한다. -> 세션을 이용하기 위함)
3. Referer Bypass
meta 태그를 이용한다.
<meta name="referer" content="no-referrer"> -> 우회가 가능하다.
4. CSRF Token
요청을 위조할 수 있다. 토큰을 삽입해서 위조를 막는다.
하지만 XSS가 있으면 우회가 가능하다.
CSRF 대응방안
지키고자 하는 요청에서 인증정보를 추가한다.
애매한 요청이면 Referer 체크와 CSRF Token을 이용한다.
SSRF 공격
Server Side Request Forgery
OWASP TOP 10 vulnerabilities 2023에 10번째로 올라가 있는 공격이다.
CSRF와 똑같은 원리의 공격이다.
하지만 클라이언트가 아닌 서버가 요청을 하게 만드는 공격이다.
공격이 일어나는 곳은 서버가 외부 자원(리소스)을 이용하는 곳이고 파라미터로 URL을 받는 경우에 사용이 가능하다.
API를 이용하여 데이터를 받아올 때 파라미터를 URL 주소로 받는 경우 그 URL을 변경해서 서버가 다른 요청을 보내게 할 수 있다.
대응방안으로는 파라미터로 URL을 안 받으면 된다.