본문 바로가기
강의 및 교육/Inflearn - Webgoat

Password reset - 6. Creating the password reset link

by 이우정 2022. 2. 24.
728x90

[ 이론 ]

Creating the password reset link

암호 재설정 링크를 만들 때 다음을 확인해야 한다. 

- 랜덤 토큰이 있는 고유한 링크인가.

- 한 번만 사용할 수 있는가.

- 링크가 제한된 시간 동안만 유효한가.

임의 토큰으로 링크를 보낸다는 것은 공격자가 사용자를 차단하기 시작하여 웹 사이트에 대한 간단한 DOS 공격을 수행할 수 없음을 의미한다. 링크를 한 번 이상 사용하면 안 되고, 이로 인해 비밀번호를 다시 변경할 수 없다. 공격 창을 제한하기 위해서는 타임아웃이 필요하고, 링크가 있으면 공격자에게 많은 가능성을 열어준다. 

 

[ 문제 ]

Tom (tom@webgoat-cloud.org)의 암호를 자신의 선택에 따라 재설정하고 그 암호로 Tom으로 로그인하시오. 

참고 : 이 문제는 OWASP ZAP을 사용할 수 없다. 브라우저가 작동하지 않을 수도 있고 curl 과 같은 명령줄 도구가 더 성공적일 수 있다. Tom은 항상 링크가 있는 이메일을 받은 후 즉시 비밀번호를 재설정한다. 

 

hint

- 사용자 계정에 암호 재설정 링크를 {user}@webgoat.org로 보내시오. 이 이메일은 WebWolf에서 읽을 수 있다. 

 

[ 풀이 ]

 

curl 명령어

: 리눅스에서 curl이라는 http 메시지를 쉘 상에서 요청하여 결과를 확인하는 명령어

 

WebWolf는 자신이 한 데이터 전송을 볼 수 있다. 

host를 webwolf로 변경해준다. 

1) WebWolf에서 전송시킴

2) WebWolf Request 확인

3) 올바른 경로로 변경

reset을 위한 바른 경로 : http://127.0.0.1:8080/WebGoat/PasswordReset/reset/reset-password/4ea2c0a7-0901-45d3-a018-bb7a8db0da70

 

WebWolf가 호스트로써 전송한 링크를 올바른 경로로 바꾸어 열람 가능하게 만든다. 

http://127.0.0.1:8080/WebGoat/PasswordReset/reset/reset-password/7137a8c6-4eb1-4f50-982f-5eacc1719d50

 

4) 비번 변경 => 성공

 

728x90

'강의 및 교육 > Inflearn - Webgoat' 카테고리의 다른 글

Cross-Site Request Forgeries - 3, 4  (0) 2022.03.02
Vulnerable Components  (0) 2022.02.25
Cross Site Scripting - 10 & 11 & 12  (0) 2022.02.23
JWT tokens - 11. Final challenge  (0) 2022.02.23
Insecure Deserialization  (0) 2022.02.23