프로젝트/Webhacking.kr

[Webhacking.kr] Challenge(old) 1번 문제

Uggjjini 2021. 6. 29. 12:02

 

해당 View-source 링크를 통해 해당 웹 페이지 소스를 확인한다.

 

View-source

 

하단의 코드를 자세히 확인해보자.

<?php
  if(!is_numeric($_COOKIE['user_lv'])) $_COOKIE['user_lv']=1;
  if($_COOKIE['user_lv']>=4) $_COOKIE['user_lv']=1;
  if($_COOKIE['user_lv']>3) solve(1);
  echo "<br>level : {$_COOKIE['user_lv']}";
?>
<br>

 

solve() 함수가 있는 구문을 자세히 살펴보자.

if($_COOKIE['user_lv']>3) solve(1);

slove()함수를 통해 쿠키 값이 3보다 큰 경우 해결이 가능한 것을 알 수 있다.

 

 

 

하지만, 이 구문의 바로 위 구문을 보면

if($_COOKIE['user_lv']>=4) $_COOKIE['user_lv']=1;

쿠키값이 4보다 크거나 같은 경우 쿠키값을 1로 저장한다는 것을 알 수 있다.

 

 

 

이 두 구문을 종합하여 살펴본다면 쿠키값을 3보다 크고 4보다 작은 수로 변조해야 한다는 것을 알 수 있다.

 

쿠키값을 변조하기 위하여 해당링크에 들어가 EditThisCookie 프로그램을 설치한다.(크롬인 경우)

 

https://chrome.google.com/webstore/detail/editthiscookie/fngmhnnpilhplaeedifhccceomclgfbg?hl=ko 

 

EditThisCookie

EditThisCookie는 쿠키 관리자입니다. 이것을 이용하여 쿠키를 추가하고, 삭제하고, 편집하고, 찾고, 보호하거나 막을 수 있습니다!

chrome.google.com

 

해당 프로그램을 설치한 후 소스를 확인하던 페이지 오른쪽 상단에 확장프로그램을 눌러 EditThisCookie를 누르면 해당페이지의 쿠키값이 1로 설정되어 있는 것을 확인할 수 있다.

Cookie = 1

 

1로 설정되어있는 쿠키값을 3과 4사이의 숫자 중 임의로 3.5를 입력하여 하단의 녹색 체크표시를 눌러준다.

 

Cookie = 3

 

그리고 뒤로가기를 눌러 view-source 가 아닌 페이지로 이동하면 

문제가 풀렸다는 창이 뜬다.