[Webhacking.kr] 1번 문제풀이

Webhacking 문제를 처음 들어가면 아래와 같은 화면이다. 처음에 보이는 화면은 'level : 1'과 'view-source' 밖에 없다. 1번 문제에서 특이한 점은 링크로 연결되어 있는 'view-source'를 클릭해보기로 했다.

(1번 문제 화면)

'view-source'를 들어가보면 아래와 같은 소스코드를 볼 수 있다.

('view-source' 소스코드)

 

php로 구성되어있는 해당 소스코드는 php구문을 잘 모르지만 알고 있는 선에서 해석해보기로 했다. 

 

(첫번째 문장)

php 아래에 있는 부분에서 첫번째 문장인 is_numeric()은 숫자형 데이터 값인 경우 'true'를 반환하고, 숫자형 데이터 값이 아닌 경우 'false'를 반환하는 함수이다. 그래서 Cookie 값을 숫자를 넣어야지만 문제를 풀 수 있을 것 같았다. 

 

(두번째 문장)

두번째 세번째 문장에서는 Cookie 값에 'user_lv' 값이 6보다 크거나 같을 경우 'user_lv'값을 1을 반환하고, 5보다 큰 값을 넣을 때 문제가 해결된다는 것을 알 수 있다. 

 

(세번째 문장)

마지막 문장에서는 level 옆에 있는 값은 Cookie에서 'user_lv' 값을 넣어준 값을 출력해주는 것을 알 수 있다.

그래서 나는 Cookie 값에 'user_lv'에 4,5,6 이라는 값을 넣어보기로 했다.

(Cookie에서 'user_lv'에다가 4를 넣었을 때)

'user_lv'에 4를 넣었을 때, level 옆 값이 4로 바뀌는 것을 알 수 있다.

 

(Cookie에서 'user_lv'에다가 5를 넣었을 때)

'user_lv'에 5를 넣었을 때, level 옆 값이 5로 바뀌는 것을 알 수 있다.

 

(Cookie에서 'user_lv'에다가 6를 넣었을 때)

'user_lv'에 6를 넣었을 때, level 옆 값이 1로 바뀌는 것을 알 수 있다. 왜냐하면 php 첫번째 문장에서 'user_lv' 값에 6을 넣을 시 'user_lv' 값이 1로 바뀌도록 소스 코드가 짜여있기 때문이다.

 

소스코드에서 5보다 큰 값을 넣었을 때, 문제가 해결된다고 했는 데, 정수로는 문제가 풀리지 않았다. 그래서 Cookie 값에 5.1이라는 실수 값을 넣었더니 아래의 화면처럼 200point를 얻으면서 문제가 해결됐다.

(문제 해결 화면)

 

 

[해결방안]

[webhacking] 1번 문제를 풀기 위해서는 Cookie 값을 임의로 설정 할 수 있는 툴을 이용해야한다. 나는 크롬에서 사용할 수 있는 "Edit This Cookie" 툴을 이용했다. 아래의 링크를 통해 Cookie 툴을 다운받아서 설치 할 수 있다.

https://chrome.google.com/webstore/detail/editthiscookie/fngmhnnpilhplaeedifhccceomclgfbg?hl=ko

 

EditThisCookie

EditThisCookie는 쿠키 관리자입니다. 이것을 이용하여 쿠키를 추가하고, 삭제하고, 편집하고, 찾고, 보호하거나 막을 수 있습니다!

chrome.google.com

해당 툴을 다운받으면 쿠키 모양의 아이콘이 크롬 오른쪽 위에 생성이 된다. 아래의 화면 처럼 쿠키 모양의 아이콘이 생성된 것을 확인 할 수 있다.

(Cookie 아이콘 생성 화면)

처음에 문제를 해결할 때 'user_lv' 값에 정수값만 넣는 것을 생각했다. 하지만 해당 문제는 실수의 범위까지 생각하게끔 만들었다. 단순하게 생각해서 문제를 풀었던 나에게 좋은 경험을 안겨주었다. 다음에 문제를 풀때 넓은 방면에서 접근해서 풀어야겠다.

 

*해당 블로그는 개인적인 공부와 정보 공유를 위해 만들었습니다.

'공부 > Webhacking' 카테고리의 다른 글

[Webhacking.kr] 24번 문제풀이  (6) 2020.03.10
[Webhacking.kr] 26번 문제풀이  (6) 2020.03.08
[webhacking.kr] 6번 문제풀이  (4) 2020.03.04

+ Recent posts