id: admin이 이미 입력되어 있었고, 제출 버튼을 누르면
admin이 아니라고 한다.
개발자 도구로 코드 확인했는데 별 다른 내용은 없었다.
근데 제출 버튼을 눌렀을 때 보이는 소스코드에 <meta~>라는 부분이 있었다. 검색해보니 이 메타라는 태그는 웹 서버와 브라우저간 상호 교환되는 정보를 정의하는데 사용된다고 한다. 속성 중 http-equiv는 웹 브라우저가 서버에 명령을 내리는 것인데, 지금 여기에 refresh라고 적혀있다. 그리고 content는 meta 정보의 내용.. 여기엔 3;url=./이라고 적혀있다. refresh가 뭔지 몰랐는데 보니까 제출 버튼을 눌렀을 때 you are not admin이라고 해놓고 다시 메인 페이지로 돌아가는 것을 확인할 수 있었다. 3;url=./이 뭘까..
오..!
그냥 you are not admin 페이지 url (https://webhacking.kr/challenge/js-6/?id=admin)뒤에 3;url=./를 입력해줬는데, hello admin3;url=이라는 말이 뜨며 로그인이 됐다.
근데 logout 버튼 눌러도 로그아웃이 안된다;
개발자 도구에서 cookies 정보를 보는데 PHPSESSID 밑에 userid가 하나 새로 생성됐다.
이 값을 0으로 바꿔봤는데 다시 로그인 창으로 돌아감.
하ㅠ 진짜 바보같은게 cookies 값으로 어떻게 할 수 있을거라고 생각했는데 url decoder 사용을 안하고 그냥 base64로만 풀 생각을 했다.
URL 디코드 - 온라인 URL 디코더
www.convertstring.com
URL 인코딩되었다고 생각한 이유는 바로 맨끝 부분이 %3D이기 때문. =의 암호화가 %3D다.
MGNjMTc1YjljMGYxYjZhODMxYzM5OWUyNjk3NzI2NjE4Mjc3ZTA5MTBkNzUwMTk1YjQ0ODc5NzYxNmUwOTFhZDZmOGY1NzcxNTA5MGRhMjYzMjQ1Mzk4OGQ5YTE1MDFiODY1YzBjMGI0YWIwZTA2M2U1Y2FhMzM4N2MxYTg3NDE3YjhiOTY1YWQ0YmNhMGU0MWFiNTFkZTdiMzEzNjNhMTMzNmQ1ZWJjNTQzNjUzNGU2MWQxNmU2M2RkZmNhMzI3MzM2ZDVlYmM1NDM2NTM0ZTYxZDE2ZTYzZGRmY2EzMjc=
이걸 base64 디코딩하면
0cc175b9c0f1b6a831c399e2697726618277e0910d750195b448797616e091ad6f8f57715090da2632453988d9a1501b865c0c0b4ab0e063e5caa3387c1a87417b8b965ad4bca0e41ab51de7b31363a1336d5ebc5436534e61d16e63ddfca327336d5ebc5436534e61d16e63ddfca327
이 값이 나오는데, 여기서 진짜 뭔가..뭔가 했는데
0cc175b9c0f1b6a831c399e269772661
8277e0910d750195b448797616e091ad
6f8f57715090da2632453988d9a1501b
865c0c0b4ab0e063e5caa3387c1a8741
7b8b965ad4bca0e41ab51de7b31363a1
336d5ebc5436534e61d16e63ddfca327
336d5ebc5436534e61d16e63ddfca32
이렇게 32비트씩 나뉘어진다. (참고로 대문자면 안됨.)
이 값들을 하나씩 MD5 복호화해주면
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
admin--라는 답이 나옴.
결국 뒷부분을 주석처리하라는 말이다.
나는 이렇게 풀었는데 아예 순서를 반대로 해서 푸는 경우도 있다. admin을 MD5 암호화하고, base64 인코딩을 해서, url인코딩을 하는 것!
이 순서를 어떻게 알아냈느냐? 현재 우리가 접속했을 때의 쿠키값을 url디코딩 -> base64 디코딩 -> 32비트씩 나눠서 각각 MD5 복호화를 했더니 guest라는 값이 나왔기 때문.
'CTF, 워게임 문제 풀이 > webhacking.kr' 카테고리의 다른 글
webhacking.kr 21번 문제 (풀이 x) (0) | 2022.08.27 |
---|---|
webhacking.kr 20번 문제 풀이 (0) | 2022.08.27 |
Webhacking.kr 18번 문제 풀이 (0) | 2022.08.26 |
Webhacking.kr 17번 문제 풀이 (0) | 2022.08.26 |
Webhacking.kr 16번 문제 풀이 (0) | 2022.08.26 |
댓글