old-19_풀이

2021. 6. 22. 20:18문제연습/webhacking.kr

반응형

본 티스토리 블로그는 PC 환경에 최적화되어 있습니다.

​모바일 유저분들은 아래 네이버 블로그를 이용해 주세요.

 

 

old-19_풀이

본 네이버 블로그는 모바일 환경에 최적화되어 있습니다. PC 유저분들은 아래 티스토리 블로그를 이용해 ...

blog.naver.com

 


Webhacking.kr

old-19번 문제풀이


이번 문제는 쿠키, 세션 값 생성 과정에서 발생하는 논리 모순을 이용하는 문제입니다.

 

잘못된 쿠키, 세션 값 생성 알고리즘을 이용하는 것은 관리자로 하여금 안전하다는 잘못된 인식을 만드는 것뿐만 아니라 시스템의 잠재적인 위험성에 노출되게 하는 것이므로 매우 위험한 취약점들 중 하나입니다.

 

그럼 오늘의 문제 풀이를 진행해 보도록 하겠습니다.

 

 

1. 접속 화면

아무 설명 없이 그냥 화면에 로그인 폼 하나만 존재하며, admin으로 로그인을 시도하면 다음과 같은 문구가 출력되면서 다시 로그인 창으로 이동합니다.

 

 

owasp에서 제공하는 웹 점검용 스파이더링 툴을 이용해 숨겨진 경로가 있는지 확인해 봤지만 특별한 경로는 발견되지 않았습니다.

 

 

 

2. 분석 & Exploit!!!

임의적으로 아무 이름을 넣고 로그인을 하니 다음과 같은 결과가 나타났습니다.

해당 쿠키 값을 확인해 보니 url 인코딩이 되어있으며 마지막 값이 %3d여서 base64 인코딩이 한 번 더 진행한 것으로 의심됩니다.

 

 

디코딩 결과는 다음과 같습니다.

입력 값 URL decoding base64 decoding
asdf MGNjMTc1YjljMGYxYjZhODMxYzM5OWUyNjk3NzI2NjEwM2M3YzBhY2UzOTVkODAxODJkYjA3YWUyYzMwZjAzNDgyNzdlMDkxMGQ3NTAxOTViNDQ4Nzk3NjE2ZTA5MWFkOGZhMTRjZGQ3NTRmOTFjYzY1NTRjOWU3MTkyOWNjZTc= 0cc175b9c0f1b6a831c399e26977266103c7c0ace395d80182db07ae2c30f0348277e0910d750195b448797616e091ad8fa14cdd754f91cc6554c9e71929cce7

혹시 쿠키 값 생성 로직에 취약점이 있는 게 아닌가 의심이 들어서 다음과 같은 테스트를 진행하였습니다.

 

 

입력 값 URL decoding base64 decoding
a MGNjMTc1YjljMGYxYjZhODMxYzM5OWUyNjk3NzI2NjE= 0cc175b9c0f1b6a831c399e269772661
s MDNjN2MwYWNlMzk1ZDgwMTgyZGIwN2FlMmMzMGYwMzQ= 03c7c0ace395d80182db07ae2c30f034
d ODI3N2UwOTEwZDc1MDE5NWI0NDg3OTc2MTZlMDkxYWQ= 8277e0910d750195b448797616e091ad
f OGZhMTRjZGQ3NTRmOTFjYzY1NTRjOWU3MTkyOWNjZTc= 8fa14cdd754f91cc6554c9e71929cce7

 

 즉, 쿠키 값을 생성할 때 철자에 따른 생성 값의 base64 디코딩 값이 위와 겹치는 것을 알 수 있습니다.

 

0cc175b9c0f1b6a831c399e269772661 -> a
03c7c0ace395d80182db07ae2c30f034 -> s
8277e0910d750195b448797616e091ad -> d
8fa14cdd754f91cc6554c9e71929cce7 -> f

 

즉, admin이라는 값에 해당하는 userid 쿠키 값을 만들어 준다면 로그인이 가능할지도 모릅니다. 

 

입력 값 URL decoding base64 decoding
a MGNjMTc1YjljMGYxYjZhODMxYzM5OWUyNjk3NzI2NjE= 0cc175b9c0f1b6a831c399e269772661
d ODI3N2UwOTEwZDc1MDE5NWI0NDg3OTc2MTZlMDkxYWQ= 8277e0910d750195b448797616e091ad
m NmY4ZjU3NzE1MDkwZGEyNjMyNDUzOTg4ZDlhMTUwMWI= 6f8f57715090da2632453988d9a1501b
i ODY1YzBjMGI0YWIwZTA2M2U1Y2FhMzM4N2MxYTg3NDE= 865c0c0b4ab0e063e5caa3387c1a8741
n N2I4Yjk2NWFkNGJjYTBlNDFhYjUxZGU3YjMxMzYzYTE= 7b8b965ad4bca0e41ab51de7b31363a1

 

 

admin's cookies : url_Encode( base64_Encode(admin) )

0cc175b9c0f1b6a831c399e2697726618277e0910d750195b448797616e091ad6f8f57715090da2632453988d9a15
01b865c0c0b4ab0e063e5caa3387c1a87417b8b965ad4bca0e41ab51de7b31363a1
 
-> base64 encode
MGNjMTc1YjljMGYxYjZhODMxYzM5OWUyNjk3NzI2NjE4Mjc3ZTA5MTBkNzUwMTk1YjQ0ODc5NzYxNmUwOTFh
ZDZmOGY1NzcxNTA5MGRhMjYzMjQ1Mzk4OGQ5YTE1MDFiODY1YzBjMGI0YWIwZTA2M2U1Y2FhMzM4N2MxY
Tg3NDE3YjhiOTY1YWQ0YmNhMGU0MWFiNTFkZTdiMzEzNjNhMQ==

-> url encode
MGNjMTc1YjljMGYxYjZhODMxYzM5OWUyNjk3NzI2NjE4Mjc3ZTA5MTBkNzUwMTk1YjQ0ODc5NzYxNmUwOTFh
ZDZmOGY1NzcxNTA5MGRhMjYzMjQ1Mzk4OGQ5YTE1MDFiODY1YzBjMGI0YWIwZTA2M2U1Y2FhMzM4N2MxY
Tg3NDE3YjhiOTY1YWQ0YmNhMGU0MWFiNTFkZTdiMzEzNjNhMQ%3D%3D

 

Clear!!!

 

반응형

'문제연습 > webhacking.kr' 카테고리의 다른 글

old-2_풀이  (0) 2021.06.23
old-47_풀이(보류)  (0) 2021.06.23
old-21_풀이  (0) 2021.06.12
old-12_풀이  (0) 2021.06.10
old-24_풀이  (0) 2021.06.06