본문 바로가기
Wargame Write-Up/Webhacking.kr

[Webhacking.kr] (Web) 19번 풀이 (old-19)

by snwo 2020. 4. 1.

id를 입력하는 폼이있다. admin 으로 제출해보자.


admin 이 아니라고한다. 

admin 인걸 판별하는 요소가 있을텐데, 소스에는 없으니

아무거나 입력해 쿠키를 확인해보자.


안녕하다고 인사를해준다. logout은 눌러도 로그아웃되지 않는다.

 

쿠키에 userid 가 생겻다. %3D 는 = 를 의미하는데,

= 로 끝났으니 base64 인코딩인걸 확인할 수 있다.


https://www.convertstring.com/

%3D 를 = 로 고쳐서 디코딩하면 또다른 암호화문자열을 확인할수있다.

32글자이므로 위키피디아에서 암호화알고리즘별 길이를 확인해보자.


https://ko.wikipedia.org/wiki/%EC%95%94%ED%98%B8%ED%99%94_%ED%95%B4%EC%8B%9C_%ED%95%A8%EC%88%98

MD5 로 해시된 문자열같아서 복호화해보기로했다.


https://md5.web-max.ca/index.php

a 가 나온다. 결과적으로 id를 md5 암호화한뒤,

그걸다시 base64로 인코딩한결과가 userid 쿠키값이란걸 알 수 있다.

 

혹시모르니 다른것도 해보자.


쿠키값을 삭제했더니 logout 이 된다.

admin 은 안되니 admi 로 로그인해봤다.


아까 a의 해쉬값을 결과에서 볼 수 있다.

이말인 즉슨, 한글자씩 md5해쉬한뒤, 붙여서 base64디코딩한것이 userid 쿠키값이라할 수 있다.


a=0cc175b9c0f1b6a831c399e269772661
d=8277e0910d750195b448797616e091ad
m=6f8f57715090da2632453988d9a1501b
i=865c0c0b4ab0e063e5caa3387c1a8741
n=7b8b965ad4bca0e41ab51de7b31363a1

 

한글자씩 md5해쉬했다. (소문자로 바꿔줘야됨)


base64인코딩 후

 

admi 로 로그인한상태로 userid 를 바꿔준다. (이때 = 는 %3D 로 고친다)

체크버튼 누르고, logout버튼을 누르면 문제가풀린다.