wargame/webhacking.kr

webhacking.kr 1번 풀이

LimeLee 2015. 8. 8. 00:57

webhacking.kr 1번 풀이


webhacking.kr 의 첫 번째 문제이다.




[HINT]


1. 정규표현식






문제의 화면을 보면 검은 화면에 level 그리고 index.phps라는 문자열을 볼 수 있다.

webhacking.kr 에서 자주 보게 될 phps 는 PHP Source를 뜻하는 것이며, 이 확장자 명은 설정을 통해 변경 할 수 있다.


단지 PHP 소스를 보기 위해 만든 형식이므로

문제나 예제 같은 곳에서 소스를 출력하기 위해는 유용하게 쓰일 수 있지만

함수가 사람들에게 보이면 안되는 보안이 필요한 페이지는 PHP Source 기능을 잘 쓰지 않는다.


하여튼, 이 문제에 대해 힌트를 얻기 위해 index.phps로 이동하게 되면




다음과 같은 소스를 볼 수 있다.

1번 문제는 PHP 함수와 정규표현식에 대한 기본 이해를 하고 있다면 쿠키 변조를 통해 쉽게 풀수 있는 문제이다


먼저 if(!$_COOKIE[user_lv])  SetCookie("user_lv","1"); 

user_lv이라는 이름의 쿠키가 존재하지 않으면 1이라는 값을 가진 user_lv 쿠키를 생성한다는 의미이다.


쿠키는 개발자 도구(F12) > Resource > Cookies 나 쿠키 변조 툴 쿡시툴바EditThisCookie 등으로 볼 수 있다.

단, 답을 적기 위해선 쿠키 변조 툴이 필요하므로 개발자 도구보다는 원하는 쿠키 변조 툴을 받아서 보자


그리고 두 번째 if 문인 if(eregi("[^0-9,.]",$_COOKIE[user_lv])) $_COOKIE[user_lv]=1;은 쿠키의 값이 user_lv 이 대괄호 안에 있는 0~9와 . 이 존재 하지 않으면 user_lv의 값을 1로 간주 한다.

세 번째와 네 번째 if문 if($_COOKIE[user_lv]>=6$_COOKIE[user_lv]=1; if($_COOKIE[user_lv]>5) @solve(); user_lv이 6보다 크거나 같으면 1로 간주하고, 5보다 크면 문제가 풀린다.


즉 , 5<x<6인 모든 실수면 통과된다.





'wargame > webhacking.kr' 카테고리의 다른 글

webhacking.kr 17번 풀이  (1) 2018.08.08
webhacking.kr 4번 풀이  (0) 2018.08.08
webhacking.kr 14번 풀이  (1) 2015.08.14
webhacking.kr 6번 풀이  (1) 2015.08.13
webhacking.kr 15번 풀이  (0) 2015.08.13