본문 바로가기
CTF, 워게임 문제 풀이/webhacking.kr

Webhacking.kr 19번 문제 풀이

by secumark 2022. 8. 27.
728x90

 

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라는 값이 나왔기 때문.

 

 

728x90

댓글