문제를 클릭하면 위와 같이 id를 입력하는 부분이 있고 제출 버튼이 있습니다. 일단 기본값인 admin을 그대로 냅두고 제출 버튼을 누르면 you are not admin이라는 문구가 출력됩니다. 일단 다시 메인 페이지로 돌아와서 admin대신 a만 입력해보고 제출을 누르면
위와 같이 hello a가 출력되고 로그아웃 버튼이 생깁니다. 이 상태에서 쿠키값을 확인해보면 아래와 같습니다.
BASE64로 보이는 값이 userid에 들어가 있고 해당 값을 디코딩해보면 md5 값이 나옵니다. 그 값을 복호화 해보면 'a' 라는 값이 나옵니다.
결국 userid에 있는 base64는 입력된 문자를 md5로 변환하고 해당 값을 다시 base64로 인코딩 해준것이죠. 일단 대충 알았으니 입력 값을 바꿔서 테스트 해봅니다.
입력값을 aa로 변경해서 확인해보면 앞부분이 이전 'a'만 입력했을 때와 동일하다는 것을 확인할 수 있습니다. base64를 디코딩 해보면 아까 확인했던 'a'의 md5 값이 연속해서 2번 찍혀있는 것을 확인할 수 있습니다. 그럼 결국 userid는 입력된 문자열의 각 문자마다 md5값을 구해서 그걸 이어 붙인 뒤 해당 값 전체를 base64로 인코딩 한것이라는 것을 알 수 있습니다. 저희는 admin으로 로그인(?)해야하니 admin의 각 문자들을 md5 값으로 변환해주고 해당 값들을 모두 붙인뒤 base64로 인코딩하여 userid 부분에 넣어주면 끝!
md5(a) = 0cc175b9c0f1b6a831c399e269772661
md5(d) = 8277e0910d750195b448797616e091ad
md5(m) = 6f8f57715090da2632453988d9a1501b
md5(i) = 865c0c0b4ab0e063e5caa3387c1a8741
md5(n) = 7b8b965ad4bca0e41ab51de7b31363a1
'Web Hacking > Webhacking.kr' 카테고리의 다른 글
[Webhacking.kr] old-18 (0) | 2020.03.16 |
---|---|
[Webhacking.kr] old-10 (0) | 2019.10.29 |
[Webhacking.kr] old-06 (0) | 2019.10.29 |
[Webhacking.kr] old-54 (0) | 2019.10.22 |
[Webhacking.kr] old-26 (0) | 2019.10.22 |