처음 csrf 페이지에 접속하면 csrf 파라미터로 alert(1)를 실행하는 스크립트 구문을 전달한다. 그러나 응답 화면에서는 script 구문이 필터링된 것을 볼 수 있다.
<script>alert(1)</script> -> <*>alert(1)
또한 나머지 페이지들의 소스코드를 분석한 결과는 다음과 같다.
- memo 페이지는 최종적으로 flag가 출력되는 페이지다.
- notice flag 페이지는 userid 값이 admin 이면 웹 서버 local 환경에서 flag를 memo로 추가하는 페이지다.
- 따라서 flag 페이지에서 user_id=admin으로 notice_flag 페이지로 접속할 수 있도록 한다면 memo페이지에 플래그가 있을 것이다. (flag페이지는 127.0.0.1로 접근가능하게 해준다.)
- 다양한 방법이 있지만 나의 경우에는 img태그를 이용해 <img src=/admin/notice_flag?userid=admin>을 flag 페이지에서 넣는다면 memo페이지에서 플래그를 확인할 수 있었다.