Webhacking

[Webhacking.kr] old-19번 풀이

aeeazip 2022. 12. 21. 03:26

링크로 들어가면 19번 문제를 확인할 수 있다.

문제 사진

 

첫 화면엔 로그인 화면이 뜨고 id default값으로 admin이 주어졌다.

제출버튼을 클릭하면

제출 버튼 클릭 후 결과

 

​you are not admin이라는 문구가 보인 후 다시 처음의 로그인 화면으로 돌아갔다.

이번엔 id값으로 default인 admin이 아니라 3을 입력하고 제출해보았다.

3 입력 후 결과

 

admin이 아닌 다른 값을 입력하면 로그인에 성공했지만 문제는 풀리지 않았다.

또한 아무것도 실행하기 전 초기화면의 주소와 hello 3이 출력된 화면은 모두 같은 주소를 사용하고 있었다.

admin이 아닌 값은 모두 로그인이 되고 로그인 되어도 주소가 변하지 않는다

문제를 파악하기 위해 소스코드를 확인해보았다.

 

 

 

 

 

 

 

소스코드


<html>
<head>
<title>Challenge 19</title>
<style type="text/css">
body { background:black; color:white; font-size:10pt; }
input { background:silver; color:black; font-size:9pt; }
</style>
</head>
<body>
hello 3<br><input type=button value='logout' onclick=location.href='?logout=1'>

ㄴOㄱ

소스코드에서도 특이점을 발견할 수 없었다.

그래서 쿠키 값을 확인해보았다. (EditThisCookie 실행)

쿠키값

 

쿠키값이 이해할 수 없는 형식이였고 %3D로 마무리 된다는 점에서 url 인코딩 되어있음을 알 수 있었다.

※ url인코딩의 특징 : 코드 앞에 %문자가 포함된다. (%3D는 = 을 의미함)

그래서 url 디코딩을 해봤다.

url 디코딩 전 : ZWNjYmM4N2U0YjVjZTJmZTI4MzA4ZmQ5ZjJhN2JhZjM%3D

url 디코딩 후 : ZWNjYmM4N2U0YjVjZTJmZTI4MzA4ZmQ5ZjJhN2JhZjM=

디코딩 전후의 차이는 %3D → = 으로 변한 것 뿐이다.

 

= 로 마무리 되는 점을 통해 url 디코딩의 결과가 base64 인코딩 되어있음을 알 수 있었다.

※ base 64 인코딩의 특징 : 코드의 마지막에 = 또는 == 문자가 포함된다.

그래서 base64 디코딩을 해봤다.

base64 디코딩 전: ZWNjYmM4N2U0YjVjZTJmZTI4MzA4ZmQ5ZjJhN2JhZjM=

base64 디코딩 후 : eccbc87e4b5ce2fe28308fd9f2a7baf3

base64 디코딩 후의 결과는 32자 128bit이다.

이는 md5 인코딩의 특징이므로 md5 디코딩을 해봤다.

 

md5 디코딩 전 : eccbc87e4b5ce2fe28308fd9f2a7baf3

md5 디코딩 후 : 3

md5 디코딩 결과값이 id값으로 입력했던 3과 일치했다.

쿠키 값 (url디코딩 → base64 디코딩 → md5 디코딩) = id 입력값

 

쿠키값 = admin을 md5 인코딩 → base64 인코딩 → url 인코딩 값

→ 문제 해결

 

 

 

 

 

해결


[EditThisCookie] 실행         // 크롬 확장 프로그램에서 설치 가능

인코딩 · 디코딩은 인터넷 툴 이용 ( ⁎ ᵕᴗᵕ ⁎ )

admin md5 인코딩

a = 0cc175b9c0f1b6a831c399e269772661

d = 8277e0910d750195b448797616e091ad

m = 6f8f57715090da2632453988d9a1501b

i = 865c0c0b4ab0e063e5caa3387c1a8741

n = 7b8b965ad4bca0e41ab51de7b31363a1

base 64 인코딩

MGNjMTc1YjljMGYxYjZhODMxYzM5OWUyNjk3NzI2NjE4Mjc3ZTA5MTBkNzUwMTk1YjQ0ODc5NzYxNmUwOTFhZDZmOGY1NzcxNTA5MGRhMjYzMjQ1Mzk4OGQ5YTE1MDFiODY1YzBjMGI0YWIwZTA2M2U1Y2FhMzM4N2MxYTg3NDE3YjhiOTY1YWQ0YmNhMGU0MWFiNTFkZTdiMzEzNjNhMQ==

url 인코딩

MGNjMTc1YjljMGYxYjZhODMxYzM5OWUyNjk3NzI2NjE4Mjc3ZTA5MTBkNzUwMTk1YjQ0ODc5NzYxNmUwOTFhZDZmOGY1NzcxNTA5MGRhMjYzMjQ1Mzk4OGQ5YTE1MDFiODY1YzBjMGI0YWIwZTA2M2U1Y2FhMzM4N2MxYTg3NDE3YjhiOTY1YWQ0YmNhMGU0MWFiNTFkZTdiMzEzNjNhMQ%3D%3D

url 인코딩 결과값을 쿠키값으로 변경하고

쿠키값 변경

 

​초록버튼 클릭 후 새로고침해주면

admin으로 로그인!!

admin으로 로그인 되면서 문제가 풀린다!