필히 본인이 풀어보시고 정말 안되겠다면 다음의 풀이를 확인하시길 바랍니다.
[그림 1] 42번 메인 페이지
먼저 문제의 페이지에 접근 시 [그림 1]과 같이 두개의 다운로드 파일이 존재한다.
test라는 제목의 파일을 다운로드 받을 시 [그림 2]와 같이 "test~~~"라는 문자열이 저장된 text파일이다.
[그림 2] no.2 test.txt
하지만 read me라는 제목의 파일을 다운로드를 할 때 접근권한문제로 다운로드가 되지 않는다.
[그림 3] no. 1 test.zip
[그림 4] 소스코드
다운로드가 가능 했던 두번 째 파일(test.txt)의 링크를 살펴보았더니 down이라는 변수에 파일명을 암호화해서 전송하는 형태를 볼 수 있다.
그렇다면 파일명이 base64형태의 암호화가 이루어졌는지 확인해보자.
[그림 5] 두번째 파일명 디코딩
복호확가 정확히 이루어 진 것을 확인 할 수 있다.
그렇다면 우리가 다운로드 하고 싶은 파일명을 base64로 암호화 하여 down변수값으로 설정하면 다운로드가 가능하다.
[그림 6] test.zip파일 다운로드
이제 파일을 다운로드 받았으니 확인해보자.
[그림 7] 압축해제 시도
암호가 걸려있다. 하지만 크게 문제되지 않는다.
우리에겐 크랙툴이 존재하니.ㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎ
[그림 8] 비밀번호 크랙
fcrackzip을 이용하여 비밀번호 크랙을 시도하였다. 본래 크랙하는데 bruteForce를 시도하여 경우의 수가 엄청나지만 문제의 힌트에서 숫자로만 이루어졌다는 것을 감안하여 숫자로만 bruteforce를 시도하도록 하니 2초도 안걸렸다...
-b : brute force mode
-v : 자세한 정보 출력
-l : 글자 수 최소, 최대 글자
-u : 틀린 패스워드 출력 제외
-c : 문자 설정(오직 숫자라고 했으니 '1'을 입력합니다. 영어문자도 포함할 경우 aA 이런 식으로 -c와 쓰면 됩니다.)
'WarGame > Web' 카테고리의 다른 글
[webhacking.kr 41번] - 파일업로드,copy()함수 취약점 (0) | 2016.02.17 |
---|---|
[webhacking.kr 47번] (0) | 2016.02.11 |
[webhacking.kr 20번] (0) | 2016.02.11 |
[webhacking.kr 19번] (0) | 2016.02.05 |
[webhacking.kr 27번] (0) | 2016.01.19 |