본문 바로가기
웹 해킹/CTF

[HackCTF] Cookie

by L3m0n S0ju 2021. 10. 17.

 

 

 

 

문제 서버에 접속하면 위와 같이 쿠키 사진이 있습니다. 따라서 쿠키를 이용해서 문제를 풀라는 출제자의 의도를 추측할 수 있습니다. 쿠키를 확인하면 Cookie와 PassAdmin이라는 값이 있습니다. 

 

Cookie -> WlhsS2NGcERTVFpKYWtscFRFTktNR1ZZUW14SmFtOXBXak5XYkdNelVXbG1VVDA5

PassAdmin -> j0n9hyun

 

 

쿠키값을 보면 16진수가 아닌 임의의 문자들이 있는데 대문자 소문자 숫자들로만 구성된것으로 보아 base64로 인코딩되었을 가능성이 큽니다.

 

 

base64로 복호화 3번을 반복하면 아래와 같은 값을 얻을 수 있습니다.

 

{"id":"2","type":"guest"}

 

 

 

이번에는 guest를 admin으로 바꿔준 후 다시 인코딩을 3번하겠습니다.

{"id":"2","type":"admin"}

eyJpZCI6IjIiLCJ0eXBlIjoiYWRtaW4ifQ==

ZXlKcFpDSTZJaklpTENKMGVYQmxJam9pWVdSdGFXNGlmUT09

WlhsS2NGcERTVFpKYWtscFRFTktNR1ZZUW14SmFtOXBXVmRTZEdGWE5HbG1VVDA5

 

 

 

 

 

 


 

인코딩한 값을 Cookie에 넣으면 패스워드가 틀렸다는 문구가 출력됩니다. 이번에는 아래 PassAdmin 조건을 통과해야 합니다.

 

PassAdmin -> j0n9hyun

 

 

여기서 사용할 방법은 php의 느슨한 비교 취약점입니다. 특정 php 버전에서는 strcmp에서 문자열 대신에 배열을 넣으면 오류가 발생하므로 Null이 반환되는데 Null==0 이 true를 반환하여 참이되는 취약점이 존재합니다. 따라서 PassAdmin이 아닌 PassAdmin[]을 주입하면 조건을 우회할 수 있습니다.

 

 

 

 

 

 

 


 

플래그

'웹 해킹 > CTF' 카테고리의 다른 글

XSS(Cross Site Scripting), CSRF(Cross Site Request Forgery) 개념  (0) 2021.11.12
[HackCTF] 가위바위보  (0) 2021.10.17
[HackCTF] Home  (0) 2021.10.17
[HackCTF] Input Check  (0) 2021.09.16
[HackCTF] Time  (0) 2021.09.16

댓글