서비스에 대한 이해도는 'Grey-Box'로 볼 수 있을 거 같다.
문제 썸네일에서는 '관리자에게 비밀번호를 보내주는 스크립트가 작성되어 있다'라고 한다.
본격적인 문제 내용은 'Send password to Sam 버튼을 누르면, Sam의 이메일 주소로 비밀번호를 보내주겠다'라는 서비스를 제공한다.
HTTP 패킷 분석을 통해 서비스 동작 방식을 파악한 결과, 클라이언트는 'to'라는 파라미터 변수로 이메일 주소를 넘겨주면 서버는 받아낸 이메일 주소로 비밀번호를 보낸다. 그리고 성공 메시지(Success Message)를 넘겨준다. 이는 이메일 주소에 대한 별 다른 인증 절차가 없으므로 발생하는 '직접 객체 참조' 취약점이다.
HTTP 패킷 캡쳐에서 'to'파라미터의 값을 현재 내 이메일 주소로 바꿔주면 될 거 같다.
이메일 주소를 바꾼 후 'forward'를 한 결과, 내 이메일로 비밀번호가 도착한 걸 볼 수 있다.