Wargame/webhacking2017. 5. 2. 17:37

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
Posted by Imp3rio