소스를 보니
index.phps 글자를 클릭하면
index.phps 페이지로 이동한다고 한다.
PHP 코드를 보기 전에
Cookie에 대해 간단하게 알아보자.
쿠키는 사용자가 웹사이트를 방문할 때
그 사이트의 서버를 통해
사용자의 컴퓨터에 작은 파일로 저장되는 정보를 의미하고
이 기록 파일에 담긴 정보는
사용자가 같은 웹사이트를 방문할 때마다 읽힌다.
또한 수시로 새로운 정보로 바뀌며
쿠키를 훔쳐서 해당 사용자의 웹 계정 접근권한을 획득할 수도 있다.
쿠키값을 수정하거나 읽어올 때
$_COOKIE['쿠키명']을 사용할 수 있고,
PHP에서 SetCookie() 함수를 이용하여 쿠키를 생성할 수 있다.
따라서
if(!$_COOKIE[user_lv])은
만약 user_lv의 쿠키값이 없다면
SetCookie("user_lv", "1")은
user_lv의 쿠키를 1로 셋팅한다.
eregi 함수는 문자열 필터링 함수고,
소스 분석을 해보자면
user_lv 쿠키값이
0-9의 정수 중 하나로 시작하거나
6 이상일 경우에는
쿠키값이 1로 셋팅되고
5보다 크면
문제가 해결된다.
이제 우리는
문제를 풀기 위해
5보다 크고 6보다 작으며
정수가 아닌 값으로
쿠키값을 바꿔야하는 것을 알았다.
쿠키값을 변조하는 툴 중
크롬의 EditThisCookie가 있는데
구글 검색해서 크롬에 추가하면
우측 상단에 쿠키 모양 아이콘이 생기고
쿠키값에
5와 6 사이의 실수인 5.1을 넣고
아래 초록색 체크를 클릭하고
페이지를 새로고침하게 되면
문제가 풀린다.
참고
http://tcpschool.com/php/php_cookieSession_cookie
https://ko.wikipedia.org/wiki/HTTP_%EC%BF%A0%ED%82%A4
http://php.net/manual/kr/features.cookies.php
'Web > webhacking.kr' 카테고리의 다른 글
[Webhacking] Challenges 3. form post, sql injection (0) | 2018.12.25 |
---|---|
[Webhacking] 회원가입, base64 decode (0) | 2018.11.24 |