공부하자

webhacking.kr - 1번 문제 본문

Write-up/webhacking.kr

webhacking.kr - 1번 문제

공부를 하자 2018. 1. 7. 00:33

 

webhacking.kr에 접속한 후 상단의 메뉴 중 Challenges를 누르면 위와 같이 문제 목록이 나오게 된다.


이번 포스팅에서는 1번 문제를 풀어볼 것이다.

1번 문제를 클릭해 들어가보면 위와 같은 페이지가 나오게 되는데,

level : 1 아래에 써져있는 index.phps는 문제 풀이를 위해 꼭 필요해보인다.

index.phps를 위와 같이 URL의 뒷부분에 삽입해준 후 페이지를 이동해보자.

index.phps를 통해 페이지에 접속해보니, 1번 문제의 PHP 소스코드를 볼 수 있게 되었다.

문제 풀이를 위해 살펴보아야할 PHP 소스코드는 다음과 같다.

<?

$password
="????";

if(
eregi("[^0-9,.]",$_COOKIE[user_lv])) $_COOKIE[user_lv]=1;

if(
$_COOKIE[user_lv]>=6$_COOKIE[user_lv]=1;

if(
$_COOKIE[user_lv]>5) @solve();

echo(
"<br>level : $_COOKIE[user_lv]");

?>

정규표현식을 참고해보면, if(eregi("[^0-9,.]",$_COOKIE[user_lv])) $_COOKIE[user_lv]=1

$_COOKIE로 받은 user_lv 값이 0부터 9 사이가 아니라면 user_lv 값을 1로 바꾼다는 것을 의미한다.


또한, if($_COOKIE[user_lv]>=6$_COOKIE[user_lv]=1는 user_lv의 쿠키값이 6 이상이면 쿠키값을 1로 바꾼다는 것을 의미하고,

if($_COOKIE[user_lv]>5) @solve(); 를 보면 user_lv의 쿠키값이 5보다 크면 문제풀이에 성공하게 된다는 것을 알 수 있다.


결과적으로, user_lv의 쿠키값은 초기에 1로 설정되어 있는데, 이를 5보다는 크고 6보다는 작게 우리가 설정해주어야 한다는 것인데,

쿠키를 설정하는 방법에는 여러가지가 있고 이번 포스팅에서는 EditThisCookie 라는 크롬 확장자 프로그램을 이용한 쿠키값 변경과

브라우저 개발자 도구를 이용한 쿠키값 변경을 통해 원하는 값으로 쿠키를 설정해볼 것이다.


<EditThisCookie>


(EditThisCookie는 크롬 확장 프로그램으로, 쿠키 추가, 제거, 수정을 하는데 유용한 프로그램이다.)

EditThisCookie는 크롬 확장 프로그램이기 때문에 크롬을 통해서만 사용가능하다.

상단바에서 EditThisCookie를 누르면 다음과 같이 현재 페이지에 존재하는 쿠키들을 볼 수 있는데, 문제 풀이를 위해 변경해야할 user_lv 쿠키가 1이라는 값으로 존재하는 것을 알 수 있다.

5 이상, 6 미만의 값으로 user_lv의 쿠키값을 조정해주기 위해 위에 표시된 부분을 클릭하여 1을 지우고 5보다 크고 6보다 작은 실수를 임의로 설정해준다.


설정 후에는 아래 체크 표시를 눌러 쿠키 변경 사항을 적용시킨다.


<브라우저 개발자 도구>

(본 게시물은 크롬을 기준으로 작성하였습니다.)

브라우저의 개발자 도구를 열면 쿠키값을 변경할 수 있는 기능을 사용할 수 있다.

크롬을 예로 들면, 메뉴 중 Application에 들어가 왼쪽의 Cookies를 누르면, 현재 사이트에 적용중인 쿠키들을 볼 수 있다.

초기값인 1로 설정되어 있는 것을 볼 수 있다.

변경하고 싶은 쿠키값을 더블클릭하여 5보다 크고 6보다 작은 실수로 설정해준다.




쿠키 설정이 완료되면, 새로고침(F5)을 한 후, 처음 페이지로 돌아가면 된다.

아마 뒤로 가기를 누르면 될 것이다.

처음 페이지로 돌아가면, Congratulations라고 알림이 뜬다!

문제 풀이에 성공한 것이다!


Challenge 1 COMPLETE!


'Write-up > webhacking.kr' 카테고리의 다른 글

webhacking.kr - register  (0) 2017.12.28
Comments