- 소스코드를 통한 엔드포인드들의 기능을 해석해보자면 다음과 같다.
- /vuln: 이용자가 입력한 값을 출력하는데, XSS의 키워드는 필터링함(”frame”, “script”, “on” → *)
- 셋을 제외한 나머지 키워드들은 필터링이 안돼, 사용가능하기에 취약점 발생
- /flag: GET & POST 요청 처리, CSRF 공격 방어와 세션 관리
- /login: 로그인 페이지, 세션 설정
- /change_password: 비밀번호 변경
- 공격코드 작성
- /flag 페이지에서 이용자가 /change_password를 통해 admin의 pw를 바꾸어야 하기 때문에 → <img src=”/change_password?pw=admin”>을 작성해준다. (username=admin에 접속가능)