본문 바로가기

웹/webhacking.kr

webhacking.kr 19번

이번 문제는 제가 실수로 풀기 전에 문제 초기 부분을 캡쳐를 해놓지 못했습니다. 그래서 다른 블로그 글의 사진으로 대체합니다.

가장 처음 접속하면 위와 같은 화면이 뜨고 제출버튼을 누르게 되면 아래처럼 admin이 아니라고 뜹니다.

항상 풀었던 방법처럼 소스코드를 먼저 보겠습니다.

소스코드를 봐도 무엇인가 힌트를 얻을만한 부분이 보이지 않습니다. 처음에는 gtools_scp_screen_capture_injected="true" 이 부분을 변조하거나 이용해서 푸는 문제인가 싶어서 열심히 찾아보았지만 별다른 내용이 나오지 않았습니다. 그래서 admin을 guestfh 바꾸고 제출을 눌러보니

이렇게 뜨면서 오류는 뜨지 않지만 로그아웃이 되지 않습니다. 그래서 생각하다가 많이 출제되는 유형 중 하나인 쿠키 값을 변조하는 문제인가 싶어서 쿠키값을 확인했습니다.

쿠키 값에 세션 값 외에 userid라는 값이 존재했습니다. 이 부분을 수정해야 문제가 풀리겠다는 생각이 들었지만 여기서 어떤 방법을 써야할 지 몰랐습니다. 그래서 삽질하다가 찾아본 결과 이 값은 3차례에 걸쳐서 인코딩 및 암호화가 되어 있었습니다. 순서는 아래와 같습니다.

 

'문자열' -> md5 암호화 -> base64 인코딩 -> url 인코딩

 

이 순서대로 문자열을 변조한 값이 쿠키 값으로 설정되어 있었습니다. 그래서 현재 쿠키 값을 아래의 사이트를 통해 처음 문자열로 돌려보니

 

url 인코딩/디코딩

www.convertstring.com/ko/EncodeDecode/UrlEncode

 

URL 인코딩 - 온라인 URL 인코더

 

www.convertstring.com

base64 인코딩/디코딩

www.hipenpal.com/tool/base64-encode-and-decode-in-korean.php

 

Base64 인코더/디코더 - Hi!Penpal!

문자열을 Base64 방식으로 인코딩 또는 디코딩해줍니다.

www.hipenpal.com

이md5 암호화

tools.web-max.ca/encode_decode.php

 

Tools to help encode/encrypt or decode/decrypt MD5, MD4, Sha1, Sha256 URL encoding, Base85 or Base64

Encoders / decoders / hash generators This tool will allow you to either encode / encrypt a string to its MD5 hash. You can also perform the same operation for SHA1, SHA256, SHA384, SHA512 and CRC32 hashes, and also convert to and from URL encoded strings,

tools.web-max.ca

md5 복호화

md5.web-max.ca/index.php#enter

 

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

이 사이트를 이용하여 현재 쿠키 값이 어떤 값이지 확인했더니 아래와 같았습니다.(url디코딩과 base64디코딩을 한 값입니다)

 

b2f5ff47436671b6e533d8dc3614845d : g

7b774effe4a349c6dd82ad4f4f21d34c : u

e1671797c52e15f763380b45e841ec32 : e

03c7c0ace395d80182db07ae2c30f034 : s

e358efa489f58062f10dd7316b65649e : t

 

즉, 직접 입력한 guest라는 값이 들어가 있었습니다. 그래서 admin이라는 값을

 

md5 암호화 -> base64 인코딩 -> url 인코딩 순으로 진행하여 쿠키값을 만들어 준 뒤 그 데이터로 쿠키 값을 바꿔준다면 문제가 풀릴 것이라고 생각했고, 아래처럼 바꿔 주었습니다.

 

md5 암호화

a : 0cc175b9c0f1b6a831c399e269772661

d : 8277e0910d750195b448797616e091ad

m : 6f8f57715090da2632453988d9a1501b

i : 865c0c0b4ab0e063e5caa3387c1a8741

n : 7b8b965ad4bca0e41ab51de7b31363a1

 

admin: 0cc175b9c0f1b6a831c399e2697726618277e0910d750195b448797616e091ad6f8f57715090da2632453988d9a1501b865c0c0b4ab0e063e5caa3387c1a87417b8b965ad4bca0e41ab51de7b31363a1

 

base64 인코딩

MGNjMTc1YjljMGYxYjZhODMxYzM5OWUyNjk3NzI2NjE4Mjc3ZTA5MTBkNzUwMTk1YjQ0ODc5NzYxNmUwOTFhZDZmOGY1NzcxNTA5MGRhMjYzMjQ1Mzk4OGQ5YTE1MDFiODY1YzBjMGI0YWIwZTA2M2U1Y2FhMzM4N2MxYTg3NDE3YjhiOTY1YWQ0YmNhMGU0MWFiNTFkZTdiMzEzNjNhMQ==

 

url 인코딩

MGNjMTc1YjljMGYxYjZhODMxYzM5OWUyNjk3NzI2NjE4Mjc3ZTA5MTBkNzUwMTk1YjQ0ODc5NzYxNmUwOTFhZDZmOGY1NzcxNTA5MGRhMjYzMjQ1Mzk4OGQ5YTE1MDFiODY1YzBjMGI0YWIwZTA2M2U1Y2FhMzM4N2MxYTg3NDE3YjhiOTY1YWQ0YmNhMGU0MWFiNTFkZTdiMzEzNjNhMQ%3d%3d

 

 

이렇게 설정된 데이터를 위 그림처럼 쿠키 값을 설정해준 뒤 새로고침을 하게 되면 문제가 풀립니다.

* 이 문제를 통해 코드로 정보를 얻기 힘든 문제일 경우에는 최우선적으로 쿠키 값을 확인해야 하고, 쿠키 값 관련 문제는 url 인코딩, base64 인코딩 문제가 많이 나온다는 것을 다시 느꼈습니다. 그래서 만약 쿠키 값이 복잡한 값이어서 어떤 값이지 추측이 어려울 경우에는 %3d가 들어 있을 경우에는 url인코딩을 눈치채야하며 디코딩을 했는데도 복잡한 값일 경우이면 base64 디코딩까지 시도해봐야 한다는 것을 다시 배웠습니다. 그리고 이 풀이 이외에도 파이썬을 이용하여 각 인코딩, 디코딩을 진행할 수 있습니다.

' > webhacking.kr' 카테고리의 다른 글

webhacking.kr 24번  (0) 2021.02.17
webhacking.kr 21번  (0) 2021.02.17
webhacking.kr 17번  (0) 2021.02.06
webhacking.kr 16번  (0) 2021.02.06
webhacking.kr 14번  (0) 2021.02.06