webhacking.kr 19번 문제풀이 Write Up 입니다.

id를 입력하는 칸이 있고, admin이 기본값으로 들어가 있습니다.

[그림 1]의 상태로 바로 Submit를 하면 사기치지 말라고 합니다.


아무거나 치고 Submit를 했더니 반갑다는 표시가 뜹니다.
근데 로그아웃은 작동을 하지 않습니다. logout 버튼을 누르면 로그아웃이 되지 않습니다.

이것저것 뒤저보다가 cookie가 있는 것을 발견했습니다.
저기 뒤에 %3D는 = 입니다.
맨 뒤에 =는 base64 인코딩할 때 패딩으로 많이 사용하는데, base64로 인코딩 된 값임을 유츄할 수 있습니다.

base64 디코딩을 한 결과입니다. 디코딩이 되긴 했지만 아직은 알아볼 수 없습니다.

해당 결과를 긁어와 다시 디코딩을 시도했지만, 깨져서 나오는 것을 보니 더 이상의 디코딩은 의미가 없다고 판단했습니다.
답이 안 나와서 계속 생각해 보다가, 문자열을 잘라 원본과 1:1 매칭해보기로 했습니다.

5글자 기준으로 전체 문자열 길이가 160이고, 160/5=32이기 때문에 32씩 잘라서 매칭해 보았습니다.
hash쪽으로 방향을 잡고 생각해 보았습니다.
hash가 단방향 함수이지만 MD5 이런 것들은 보안취약점으로 인해 더 이상 사용하지 않고 복호화 도구도 많이 돌아다니고 있습니다.
https://md5.web-max.ca/
MD5 hash decrypter / decoder: Reverse lookup MD5 hashes online with this tool
Tools to decode / decrypt / reverse lookup MD5 hashes This tool searches multiple MD5 rainbow tables for matches to a large number of MD5 hashes. MD5 is a hashing algorithm and therefore is technically not encryption, but hashes can be resolved and reverse
md5.web-max.ca
여기서 해독해 보겠습니다.





[그림 8]과 결과가 동일합니다.
사실 이건 취약점 때문에 해독이 가능하다기보다는, 한 글자씩 변환하다 보니 원본 -> hash 조합을 쉽게 찾을 수 있는 것으로 보는 게 맞습니다.





이제 admin을 한 글자 하나하나 MD5로 변환합니다.
(결과가 소문자가 되어야 합니다. 처음에 썼던 툴이 대문자로 출력해줘서 헤멤)

변환이 끝나면 모두 이어붙여서 base64 인코딩합니다.

cookie를 수정 후 새로고침합니다.


새로고침하면 문제가 정답처리 됩니다.
'CTF > webhacking.kr' 카테고리의 다른 글
[CTF] webhacking.kr 23번 Write-Up (0) | 2022.10.18 |
---|---|
[CTF] webhacking.kr 20번 Write-Up (0) | 2022.10.15 |
[CTF] webhacking.kr 18번 Write-Up (0) | 2022.10.14 |
[CTF] webhacking.kr 17번 Write-Up (0) | 2022.10.14 |
[CTF] webhacking.kr 16번 Write-Up (0) | 2022.10.14 |
댓글