Wargame/Webhacking.kr

Webhacking.kr old 1번 문제 풀이

esyeonge 2021. 5. 1. 20:24

1번 문제를 클릭하면 위와 같은 화면이 뜬다.

view-source를 눌러보자.

 

 

$_COOKIE['user_lv']의 값이 4보다 작고 3보다 크면 solve(1)이 되면서 문제가 풀릴 것 같다.

 

처음 php 코드를 보면,

!$_COOKIE['user_lv'] 한 값이 참이면, SetCookie 함수를 실행한다.

 

www.php.net/manual/en/function.setcookie.php

공식문서에 따르면, 

SetCookie 함수의 인자로는 쿠키 이름, 쿠키에 설정할 값, 쿠키 만료 시간, 쿠키를 사용할 수 있는 서버 경로(기본 값은 쿠키가 설정되어 있는 현재 디렉토리), 쿠키를 사용할 수 있는 도메인, 보안(true로 설정하면 보안 연결이 있는 경우에만 쿠키 설정), HTTP 프로토콜만 사용할지에 대한 여부가 들어간다.

 

이걸 참고해서 php 코드를 다시 보면, user_lv의 값이 1로 설정되고 time()+86400*30 이후에 만료된다. 그리고 1번 문제에 해당하는 /challenge/web-01/ 경로에서 사용가능하다는 것을 알 수 있다.

 

두 번째 php 코드를 보자.

solve위의 코드들을 보면,

$_COOKIE['user_lv'] 값이 숫자가 아니면 1이 되고, 4보다 크거나 같으면 $_COOKIE['user_lv'가 1이 된다.

그렇기 때문에 3보다 클 때 solve가 되는 것을 고려하면 cookie 값을 3<쿠키값<4로 설정해주면 문제가 풀린다.

 

쿠키를 3.5로 설정해주니 문제가 풀렸다.