webhacking.kr 사이트의 6번 문제를 보면 다음과 같다.
HINT는 base64 암호화 알고리즘이 나와있고
ID와 PW가 나와있다.
중간에 index.phps에 링크가 걸려있는데 링크를 타고 들어가면 다음과 같은 화면이 나타난다.
위 코드부터 분석을 해보자.
user라는 이름의 쿠키값이 비어있으면 val_id 변수에 "guest"를 val_pw 변수에 "123qwe"를 설정한다.
그리고 for문을 20번 돌면서 val_id와 val_pw를 base64 암호화 알고리즘으로 암호화한다.
암호화된 값에서 1~8 까지의 숫자를 각 !~)로 변경한다.
변경이 완료된 암호화된 값을 user 쿠키와 password 쿠키에 설정한다.
아래부분 코드를 분석해 보자.
decode_id에 user 쿠키의 값을, decode_pw에 password 쿠키의 값을 넣는다.
decode_id와 decode_pw의 값에서 !~) 문자를 1~8로 변경한다.
즉, 암호화 할때 변경해준 문자는 의미가 없는 것이 된다.
그리고 for문을 20번 돌면서 base64 암호화 알고리즘을 복호화한다.
마지막으로 decode_id와 decode_pw의 값이 admin이면 solve() 함수를 호출한다.
이를 봤을 때 쿠키의 값을 변경해 주어야 한다.
먼저 admin을 base64 암호화를 20번 해준다.
webhacking.kr 사이트에서 간단하게 할 수 있다.
위 그림처럼 입력창에 admin을 입력하고 ->base64 버튼을 20번 눌러준다.
그리고나서 그 값을 복사해 놓고 브라우저에 확장프로그램으로 쿠키값을 수정할 수 있는 플러그인을 설치한다.
* 필자는 Firefox의 Cookies Manager+ 를 이용했다.
Cookies Manager+를 실행해서 도메인이 webhacking.kr인 것들 을 찾는다.
name에 password와 user를 각각 누르고 Edit 버튼을 이용해 내용에 들어있는 값을
복사해 둔 값으로 바꾼다.
그리고 Save를 누른 다음 6번 문제 페이지로 돌아와 새로고침을 한다.
그러면 다음과 같이 문제가 풀린 것을 확인할 수 있다.
'Wargame > webhacking' 카테고리의 다른 글
[webhacking.kr] 8번 문제 (0) | 2017.05.04 |
---|---|
[webhacking.kr] 7번 문제 (0) | 2017.05.04 |
[webhacking.kr] 5번 문제 (0) | 2017.05.02 |
[webhacking.kr] 4번 문제 (0) | 2017.05.02 |
[webhacking.kr] 3번 문제 (0) | 2017.05.02 |