여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다.
CSRF 취약점을 이용해 플래그를 획득하세요.
/vuln의 스크립트 필터링을 우회하기 위해 img 태그를 사용하였다.
/admin/notice_flag에 요청을 보내 flag를 얻어야 한다.
if request.remote_addr != "127.0.0.1":
return "Access Denied"
위 코드에서 주소를 검사하므로 127.0.0.1:8000/admin/notice_flag를 img 태그의 src 속성에 넣는다.
if request.args.get("userid", "") != "admin":
return "Access Denied 2"
userid가 admin인지 검사하는 로직이 있으므로 최종 url을 127.0.0.1:8000/admin/notice_flag?userid=admin으로 하여 img 태그의 src 속성에 넣는다.
<img src="http://127.0.0.1:8000/admin/notice_flag?userid=admin"/>
flag 페이지에 완성된 img 태그를 넣고 제출 버튼을 누르면 memo 페이지에 flag가 나온다.