webhacking.kr 1번

younghyun·2021년 12월 16일
0

Webhacking

목록 보기
1/3
post-thumbnail

먼저, 접속 시

이런 화면이 나온다.

가운데 부분의 view-source를 클릭하면

이렇게 소스코드가 나와있는 view-source 페이지로 이동하게 된다.

이 소스코드를 읽어보면, 먼저

이 부분의 내용은, view-source를 클릭하면 이 소스코드가 있는 화면을 보여준다.
그리고, user_lv라는 쿠키값이 없을 시 user_lv라는 쿠키를 쿠키값을 1, 쿠키의 만료 시간을 현재시간+2,592,000초(720시간)으로, 사용가능 경로를 /challange/web-01/에서만 사용 가능하게 설정한다.


이 html과

이 html은,

이 부분의 소스 코드이다. 우리가 살펴봐야 하는 부분은,

이 부분이다.
만약, 쿠키 user_lv가 정수형이 아닐 시 쿠키 user_lv를 1로 설정한다.

만약 쿠키 user_lv가 4보다 크거나 같으면 쿠키 user_lv를 1로 설정한다.

만약 쿠키 user_lv가 3보다 크면 solve(1)함수를 실행한다.

그리고, 쿠키 user_lv의 값을 "level : " 뒤에 출력한다.

풀어서 보면, 쿠키값이 정수형이고, 4보다 작고, 3보다 크면 solve(1)함수를 실행한다. 즉, 3<쿠키user_lv<4 일 때, solve(1)함수를 실행한다.

쿠키값을 사용자가 임의로 바꾸려면 별도의 프로그램이 필요한데, 크롬의 확장 프로그램인

EditThisCookie를 다운받아서 사용하거나, Burp Suite를 사용하는 등등, 다양한 방법이 있다. 이번엔 EditThisCookie 프로그램을 사용해서 해보겠다.

EditThisCookie를 실행해보면

위에서, 쿠키 user_lv가 없을 시 1로 설정해주고, 처음 들어오면 쿠키가 없기 때문에 기본값인 1로 설정이 되있다.

이제 이 부분에 해결하기 위한 값인 3보다 크고, 4보다 작은 값을 넣어줘 보면

이렇게 해결된 모습을 볼 수 있다.

이 문제는, 쿠키에 대해 알고, 조작하는 방법을 아냐가 핵심인 문제 같다.
쿠키 조작법만 알면 소스코드 자체는 간단하다.
이번 문제로 기본적인 webhacking.kr의 문제 스타일을 익히고, 쿠키에 대해 조금 알게 되었다.

profile
보안꿈나무

0개의 댓글