본문 바로가기
웹 해킹/Webhacking.kr

[Webhacking.kr] old-19

by L3m0n S0ju 2021. 9. 7.

 

 

 

문제 서버에 접속하면 id를 입력하는 칸이 나오지만 admin은 입력할 수 없습니다. 하지만 {admi}를 입력하는 경우 쿠키 값에 아래와 같은 값이 저장됩니다.

MGNjMTc1YjljMGYxYjZhODMxYzM5OWUyNjk3NzI2NjE4Mjc3ZTA5MTBkNzUwMTk1YjQ0ODc5NzYxNmUwOTFhZDZmOGY1NzcxNTA5MGRhMjYzMjQ1Mzk4OGQ5YTE1MDFiODY1YzBjMGI0YWIwZTA2M2U1Y2FhMzM4N2MxYTg3NDE%3D

 

 

 

{adm}을 입력하는 경우 아래와 같습니다.

MGNjMTc1YjljMGYxYjZhODMxYzM5OWUyNjk3NzI2NjE4Mjc3ZTA5MTBkNzUwMTk1YjQ0ODc5NzYxNmUwOTFhZDZmOGY1NzcxNTA5MGRhMjYzMjQ1Mzk4OGQ5YTE1MDFi

 

두 값을 비교하면 겹치는 부분이 있습니다. 따라서 문자가 추가되면 뒤에 해당 문자가 암호화된 값이 붙는 형식이므로 adm과 in결과를 합쳐서 쿠키값에 넣으면 플래그를 획득할 수 있습니다.

 

{in}

ODY1YzBjMGI0YWIwZTA2M2U1Y2FhMzM4N2MxYTg3NDE3YjhiOTY1YWQ0YmNhMGU0MWFiNTFkZTdiMzEzNjNhMQ%3D%3D

 

 

 

{adm+in}

MGNjMTc1YjljMGYxYjZhODMxYzM5OWUyNjk3NzI2NjE4Mjc3ZTA5MTBkNzUwMTk1YjQ0ODc5NzYxNmUwOTFhZDZmOGY1NzcxNTA5MGRhMjYzMjQ1Mzk4OGQ5YTE1MDFiODY1YzBjMGI0YWIwZTA2M2U1Y2FhMzM4N2MxYTg3NDE3YjhiOTY1YWQ0YmNhMGU0MWFiNTFkZTdiMzEzNjNhMQ%3D%3D

 

위 값을 cookie의 userid 변수에 넣고 새로고침하면 플래그를 획득할 수 있다. 추가로 조금 더 분석하면 %3D는 URL 인코딩되기전 =를 의미하므로 base64로 암호화가 되었음을 짐작할 수 있다. 끝에 %3D만 =로바꾸고 디코딩하면 다음과 같다.

 

{admi} 디코딩

0cc175b9c0f1b6a831c399e2697726618277e0910d750195b448797616e091ad6f8f57715090da2632453988d9a1501b865c0c0b4ab0e063e5caa3387c1a8741

 

현재 문자 수는 128개로 4로 나누면 한 문자당 32개 16진수로 표현된다는 것을 알 수 있다. 따라서 앞에 32개 문자를 또 다시 디코딩하면 a가 출력될것이다. 하지만 두번째 디코딩은 base64가 아닌 것 같으므로 16진수로 길이가 32바이트인 해시함수는 md5이므로 디코딩하면 아래와 같이 a가 출력한다.

 

 

 

 

 

 

 

 


플래그

'웹 해킹 > Webhacking.kr' 카테고리의 다른 글

[Webhacking.kr] old-31  (0) 2021.09.08
[Webhacking.kr] old-27  (0) 2021.09.08
[Webhacking.kr] old-25  (0) 2021.09.07
[Webhacking.kr] old-39  (0) 2021.09.07
[Webhacking.kr] old-54  (0) 2021.09.06

댓글