아주 기본적인 웹 문제이다.
먼저 두 개의 주소가 주어진다.
하나는 이런 웹사이트로 로그인, 회원가입을 할 수 있다.
다른 하나는 PHP 로그인이 가능한 사이트이다.
회원가입 시 tier를 GOLD로 선택하고 가입하려하면
위와 같은 문구가 뜨며 회원가입이 진행되지 않는다.
burp suite를 켜서 패킷을 잡아보자.
tier를 gold로 선택하고 회원가입을 시도하면 위와 같은 패킷이 잡힌다.
tier를 BLUE로 선택하고 패킷을 잡아서
username=aaaa&password=bbbb&tier=blue
이 부분을
username=aaaa&password=bbbb&tier=blue&tier=gold
이렇게 바꿔주면 회원가입에 성공할 수 있다.
Flask와 PHP가 HTTP 쿼리를 각자 다른 방식으로 해석하기 때문에 문제를 해결할 수 있다.
Flask는 tier의 값을 blue로, PHP는 tier의 값을 gold로 받아들인다.
따라서 tier가 blue인 계정이 Flask에 생성될 것이고 tier가 gold인 계정이 PHP에 생성될 것이기 때문에
PHP 로그인 페이지에서 로그인을 하면 flag를 얻을 수 있다.