어제 XSS 문제를 끝내고 오늘 CSRF 문제를 풀어보았다
XSS에서 익숙해진 개념과 사이트 디자인인지 삽질했던 어제와 달리 오늘은 수월하게 문제를 해결하였다
둘 다 클라이언트를 대상으로 진행하는 공격이며, 사용자가 악성 스크립트가 포함된 페이지를 방문하게 해야 한다
XSS는 사용자 인증 정보인 쿠키 및 세션 토큰을 탈취 목적으로 하는 공격이며, 공격할 사이트의 오리진에서 스크립트를 실행시킨다
CSRF는 사용자가 특정 페이지에 HTTP 요청을 보내는 것을 목적으로 하는 공격이다
이번 CSRF 문제는 XSS와 다르게 /vuln
라우팅에 XSS 방지 기능이 들어가 있었다 (frame
, script
, on
은 '*' 문자로 치환)
그렇기 때문에 XSS 공격때 사용했던 <script>
태그, <img>
의 onerror
속성을 이용한 공격은 불가능한 상태였다
<img>
에서 이미지를 불러오기 위해 src
에 있는 url에 요청을 한다는 점을 이용해 CSRF 공격을 실행하였다
<img src="/admin/notice_flag?userid=admin" />
/flag
페이지에 위 코드를 입력하고 제출을 누르면 해당 img 태그에 있는 주소로 클라이언트가 요청을 보내기 때문에 Flag가 정상적으로 memo에 저장되는것을 볼 수 있다