보안 공부하는 꼬깔이

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