문제에 접속하면 다음과 같은 화면이 나타납니다.
id 입력란의 기본 값이 admin으로 되어 있습니다. 제출을 클릭하면 you are not admin이라는 문구가 나타났다가 시간 좀 지나면 다시 해당 페이지로 돌아옵니다.
F12 -> Elements 탭에서 코드를 확인해봤지만 정보를 쉽게 얻을 수 없었습니다.
따라서 임의로 guest라는 값을 넣고 제출해보았습니다.
-> 해당 페이지에서 아무리 logout을 클릭해도 이전 페이지로 돌아가지 않았습니다. 따라서 쿠키를 확인해보았습니다.
-> userid라는 쿠키가 생성되었습니다. 이때 해당 쿠키 값을 보면 %3D(=) 가 있는 것을 확인할 수 있습니다. base64으로 인코딩 되어 있다고 판단하였습니다.
-> 예상에서 벗어난 값이 나왔습니다. (id is guest 이런 문구를 예상하였습니다.)
-> 한지만 값 형태가 마침 hash 같았습니다. 하지만 160자리의 hash는 알고 있는 것은 없었습니다.
따라서 여러 개 값을 확인해보면 알 수 있을지도 몰라서 id가 1인 것으로 로그인하였습니다.
-> 이번에는 32자리의 값이 나왔습니다.
-> md5로 암호화했을 때 같은 값이 나왔습니다. 따라서 입력한 id의 각 자리를 따로 md5한 것을 합친 후에 bas64으로 인코딩한 것이 쿠키 값임을 알 수 있습니다.
ex) guest
base64.encoding(md5(g) + md5(u) + md5(e) + md5(s) + md5(t))
이런 방식으로 쿠키 값이 이루어지는 것을 확인할 수 있습니다.
따라서 이런 방식으로 쿠키 값을 admin으로 변조하면 문제는 풀립니다.
끝~~
'Hacking > WebHacking.kr' 카테고리의 다른 글
Webhacking.kr : old-27 (150 pt) (0) | 2021.01.25 |
---|---|
Webhacking.kr : old-25 (150 pt) (0) | 2021.01.25 |
Webhacking.kr : old-61 (200 pt) (0) | 2021.01.25 |
Webhacking.kr : old-59 (200 pt) (0) | 2021.01.25 |
Webhacking.kr : old-42 (200 pt) (0) | 2021.01.24 |