April 05, 2019

WebGoat write up(JWT tokens 7 Refreshing a token)

To comply with the rule, in this write up, some hints related to this challenge only will be mentioned.

룰을 준수하기 위해, 여기서는 챌린지와과 관련된 몇 가지 힌트만이 언급됩니다.

Refreshing a token
It is important to implement a good strategy for refreshing an access token. This assignment is based on a vulnerability found in a private bug bounty program on Bugcrowd, you can read the full write up here
  * https://emtunc.org/blog/11/2017/jwt-refresh-token-manipulation

토큰 갱신.
액세스 토큰의 갱신 방식을 전략적으로 잘 구현하는 것은 중요하다. 아래 챌린지는 "Bugcrowd"라는 버그 바운티 플랫폼의 한 사례를 기반하고 있다. 관련 문서는 여기에서 확인할 수 있다.
  * https://emtunc.org/blog/11/2017/jwt-refresh-token-manipulation

Assignment
From a breach of last year the following logfile is available here(http://127.0.0.1:8080/WebGoat/images/logs.txt) Can you find a way to order the books but let Tom pay for them?

도전.
작년의 한 사건이 있었는데 관련 로그는 여기서 확인할 수 있다(http://127.0.0.1:8080/WebGoat/images/logs.txt). 당신은 어떤 도서를 구매하려고 한다. 이 때 이를 Tom이 지불하도록 할 수 있겠는가?

JWT tokens 7 Refreshing a token refresh token

I think this challenge is flawed. There are not enough hints to solve the problem.

나는 이 챌린지에 결함이 있다고 생각한다. 문제를 풀기위한 힌트가 부족하다.

As the above image, when I send the information as confirmed by the source code, the server sends the access token and the refresh token. Things to notice when modifying the request message are indicated by a rectangle on the left of the image.

위 이미지와 같이 소스코드에서 확인한대로 정보를 보냈더니 서버는 액세스토큰과 리프레시 토큰을 알려준다. 요청 메시지를 변조할 때 주의할 사항은 이미지 좌측에 사각형으로 표시했다.

You should request to the "login" page. The document type is "application/json", and the actual data is sent in the form of '{"user":"Jerry", "password":"bm5nhSkxCXZkKRy4"}' in json format. And the keys "user" and "password" are applied depending on the source code.

"login" 페이지에 요청해야 하고, 문서 타입은 "application/json"으로, 실제 보내는 데이터는 json 형태인 '{"user":"Jerry", "password":"bm5nhSkxCXZkKRy4"}'를 전송한다. 여기서 "user"와 "password"라는 키는 위의 서버의 소스코드에서 요구하고 있기에 그대로 기입했다.

JWT tokens 7 Refreshing a token complete