[ 이론 ]
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) 비번 변경 => 성공
'강의 및 교육 > 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 |