

문제를 들어가보면 로그인을 할 수 있는 화면?이 출력된다.
위의 말을 참고하여 username과 password를 test로 입력해보았다.

0) 살펴보기

1) 처음 시도
관련 코드를 우선 살펴보기 위해 개발자도구를 이용해서 살펴보았다. 딱히 script문이나 조건 등의 코드는 보이지 않았다.
2) 2번째 시도
화면에 나온대로 username은 test, password는 test!로 작성해보았다.
아까와는 다르게 이런 화면이 나왔다.
이 과정에서 'flag'라는 제목이 로딩되면서 'Our Bank'라는 제목으로 위의 화면이 출력되었다.
이를 'burpsuite'라는 프로그램을 통해서 intercept해보겠다.
(intercept 결과)
id값을 보니 뒤에 '='이 붙어있는 것을 알 수 있다. 이는 base64의 특징으로, 인코딩했을 때 깔끔하게 떨어지지 않는 6bit이 2진수에 패딩을 하여 빈자리를 채워주기 위해 패딩문자인 '='을 넣는다는 특징이 있다. 물론, 빈자리가 없으면 '='는 존재하지 않는다.
(base64 디코딩 결과)
이렇게 플래그값 형태의 일부처럼 보이는 글이 인코딩되어있다는 사실을 알 수 있다. '버프스위트' 프로그램의 http history를 한번 살펴볼 필요가 있어보인다.
(http history의 일부)
비슷하게 생긴 url을 찾았다.
이를 base64로 디코딩시키면 플래그 값 앞의 일부가 나온다.
이를 합쳐서 플래그값을 입력하면 된다!