webhacking.kr 1번 문제 풀이
Webhacking.kr 1번 문제
Webhacking.kr 1번 문제를 풀어보도록 하자.
1번 문제로 들어오면 위와 같은 문구가 보일것이다.
level1 문제라는 문구와 index.phps 가 보이는데 index.phps를 크롬의 검사 기능으로 확인해 보면 a태그로 index.phps 페이지로 로케이션 한다는 걸 알 수 있다. index.phps는 힌트페이지 라고 생각하면 된다.
index.phps 를 클릭해 힌트 페이지로 이동해보자
index.phps 페이지를 보면 위와 같은 php 코드가 나오는데 이 코드를 해석해보도록 하자
<소스코드 해석>
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) @solve(); user_lv cookie 값이 5보다 크면 문제가 풀리게된다.
echo("<br>level : $_COOKIE[user_lv]"); #user_lv 쿠키값 출력
코드해석을 확인해보면 우선 문제를 풀기 위해서는 cookie값을 변조하는 방법을 알아야 될것이다.
<크롬 cookie 변조 툴 설치법>
크롬에서는 크롬의 확장 프로그램에서 EditThisCookie 를 설치 하면 된다.
설치가 끝나면 위와 같이 우측 상단에 쿠키 모양의 아이콘이 생기게 되며 아이콘을 클릭하면 현재 페이지에 셋팅된 쿠키의 이름과 값을 확인 할 수 있고 변조도 가능하다.
<익스플로러 cookie 변조 툴 설치법>
익스플로러는 cooxie 툴바를 설치하면 위와 같이 url 창 밑에 현재 페이지에 셋팅된 쿠키이름 , 값을 볼 수 있고 변조도 가능하다.
cooxie 툴바 다운링크 : http://download.cnet.com/Cooxie-Toolbar-for-Microsoft-Internet-Explorer/3000-2144_4-10268044.html
쿠키를 변조하는 방법도 알았으니 본격적으로 문제를 풀어보자.
user_lv 쿠키 값이 5보다 크면 문제가 풀린다고 되어있는데 eregi 함수로 인해 0~9의 숫자를 사용하면 강제로 user_lv 쿠키 값이 1로 셋팅 되버리게 된다. 또한 쿠키값이 6과 같거나 크면 강제로 1로 셋팅된다.
user_lv 쿠키를 강제로 1로 셋팅 해버리는 두개의 if문을 우회할 수 있는 방법을 생각해보자.
만약 5.1 과 같이 5보다 크면서도 6보다 크거나 같지않고 0~9 와 같은 정수가 아닌 실수를 넣는다면 어떻게 될까?
1번문제 메인 페이지에서 크롬의 우측상단 쿠키 아이콘을 클릭하고 위와 같이 user_lv 쿠키에 5.1 값을 넣고 밑에 초록색 체크를 클릭하고 새로고침하게 되면 user_lv 쿠키가 5.1로 셋팅된 상태로 서버로 넘어가게 된다.
새로고침을 하게되면 congratulation! 문구와 함께 문제가 풀리게 된다.
200 포인트 획득 :D
'Web Hacking > Web Hacking.kr' 카테고리의 다른 글
webhacking.kr 6번 문제 풀이 (0) | 2017.06.29 |
---|---|
webhacking.kr 5번 문제 풀이 (0) | 2017.06.29 |
webhacking.kr 4번 문제 풀이 (0) | 2017.06.29 |
webhacking.kr 3번 문제 풀이 (1) | 2017.06.29 |
WebHacking.kr 회원가입 방법! (0) | 2017.06.10 |