본문 바로가기
Back-end/Web hacking

웹해킹 1번문제

by 안녕주 2020. 9. 5.

1번문제

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<1번문제 소스코드 해석>

if(!$_COOKIE[user_lv]){    // user_lv cookie값이 없다면 if문 실행
  SetCookie("user_lv", "1");  //setcookie함수를 사용해 user_lv 쿠키를 1로 세팅
  echo("<meta http-equiv=refresh content=0>");  
}

$password="????";  //플래그 값이 저장되는 변수. 문제풀이에 상관없기 때문에 무시

if(eregi("[^0-9..]",$_COOKIE[user_lv]))
  $_COOKIE[user_lv] =1;  //eregi함수를 이용하여 user_lv cookie 값이 0~9의 정수중 하나로 시작한다면 if문 실행, cookie값이 1로 세팅
  
if($_COOKIE[user_lv] >=6)
  $_COOKIE[user_lv] =1; //user_lv cookie 값이 6보다 크거나 같으면 if문이 수행되고 cookie 값이 1로 세팅
  
 if($_COOKIE[user_lv] >5)  //user_lv cookie 값이 5보다 크면 문제가 풀린다.
   @solve();
 echo("<br>level : $_COOKIE[user_lv]"); //user_lv 쿠키값 출력

<1번문제 풀이>

user_lv 쿠키의 값이 5보다크면 문제가 풀리는데 eregi함수 때문에 0~9의 숫자를 사용하면 강제로 user_lv의 값이1로 세팅된다. 또한 쿠키값이 6과 같거나 크면 1로 세팅된다. 따라서 해당 if문에 해당하지 않는 5보다 크고 6보다 크거나 같지 않은 실수를 넣으면 된다.

 

'Back-end > Web hacking' 카테고리의 다른 글

웹해킹 14번 문제  (0) 2020.09.05
웹해킹 17번 문제  (0) 2020.09.05
웹해킹 16번 문제  (0) 2020.09.05
웹 해킹 10번 문제  (0) 2020.09.05
웹해킹 3번 문제  (0) 2020.09.05

댓글