-
웹 해킹 01. 1번문제코딩공부/웹해킹 2019. 11. 29. 09:23
저번 글에서 웹 해킹에 필요한 chrome과 editthiscookie를 준비했다.
지금부터 하나씩 문제를 풀어보자.
사이트에 접속하니 표가 잘려보인다. 반응형 웹이 익숙한 현재의 인터넷 환경에서는 보기 힘든데, 오히려 신선하다.
예전에는 가입하는 것도 약간의 기술을 필요로 했었는데,
흔한 고인물의 장난현재는 누구나 쉽게 가입할 수 있도록 구성이 바뀌었다.
왼쪽의 메뉴를 살펴보자. challenge(old)는 예전 사이트의 문제를 수록해놓았다. Challenge는 아직 준비가 되지 않은 모습이다. 처음 접속했을때 '4번 문제는 어딨지? 데이터가 누락되었나?' 생각했었는데
창을 줄이면 잘만 나온다. 1번 문제를 눌러보자.
첫번째문제임을 어필하는 듯한 level :1 과 view source 링크만 덜렁있는 심플한 구조이다. 링크를 따라가보자.
놀란 마음을 진정시키고 소스코드를 살펴보자. php구문과 html 구조가 섞여있긴하지만 원래 사이트가 단순했던 것과 같이 소스코드도 비교적 단순하다. 위쪽 php 코드부터 살펴보자.
12345678<?phpinclude "../../config.php";if($_GET['view-source'] == 1){ view_source(); }if(!$_COOKIE['user_lv']){SetCookie("user_lv","1",time()+86400*30,"/challenge/web-01/");echo("<meta http-equiv=refresh content=0>");}?>php를 공부하지 않았지만 대충 코드를 살펴봐도 필요한 정보는 얻을 수 있다.
user_lv 쿠키가 없다면 1로 설정해서 만들라고 함을 알 수 있다.
editthiscookie를 사용해서 이 사이트의 쿠키값을 확인해보니 역시 1이다.
중간에 있는 html코드는 제껴두고, 뒤에 있는 php구문을 살펴보자.
껍데기는 가라12345678<?phpif(!is_numeric($_COOKIE['user_lv'])) $_COOKIE['user_lv']=1;if($_COOKIE['user_lv']>=6) $_COOKIE['user_lv']=1;if($_COOKIE['user_lv']>5) solve(1);echo "<br>level : {$_COOKIE['user_lv']}";?>가물가물한 수능영어를 되돌아 생각해보며 코드를 읽어보자.
user_lv 값이 숫자가 아니라면 1로 바꿔준다.
user_lv의 값이 6 이상이면 1로 바꿔준다.
user_lv의 값이 5 초과이면 해결.
echo가 뭔지 찾아보니 print의 역할을 하는 것 같은데, level : 뒤에 설정한 user_lv 값을 보여준다는 것 같다.
그렇다면 user_lv의 값을 5와 6 사이로 수정해보자.
간단하게 해결 완료.
간단하게 쿠키값을 수정하여 문제를 해결할 수 있었다.
'코딩공부 > 웹해킹' 카테고리의 다른 글
웹 해킹 02.1 데이터베이스 기본 (0) 2019.12.01 웹 해킹 0. 시작하기 (0) 2019.11.28