1번 문제를 풀고나서 다음으로 어떤 문제를 풀어볼까~하며 보다가
점수대가 비교적 낮은 4번 문제를 먼저 풀어보기로 했다.
4번 문제를 풀이 하기 전에 base64의 인코딩 기법에 대해 잠깐 설명을 하고 넘어가야 할 것 같다.
base64는 문자열을 64개의 문자만으로 나타내는 인코딩 기법이다.
문자열을 10진수 아스키 코드로 변환한 뒤, 2진수 8자리로 변환한다.
그 후에 2진수를 6자리씩 끊어서 64가지 문자로 만든다.
이 때 아스키 코드는 2진수 8자리로 변환되기 때문에, 6자리씩 끊었을 때 나누어 떨어지지 않는 경우가 생긴다.
그 경우 나머지 자리를 0으로 채운 뒤에 빈 공간 만큼을 =으로 채운다.
그래서 문자열 끝에 있는 ==은 이 문자열이 base64로 인코딩되었다는 사실을 알려준다.
4번 문제를 클릭하고 들어가보니 문자열 끝에 ==표시를 보고 이 문자열은 base64로 인코딩 됐음을 알 수 있다.
그래서 주어진 문자열을 base64로 디코딩 해보니 아래와 같은 문자열이 나왔다.
그리고 아래 문자열을 넣고 다시 디코드 버튼을 눌렀는데 디코딩이 되지 않았다.
저 아래 문자열은 뭔가 다른 방법으로 다가가야 할 것 같아서 구글링을 해보니 저 문자열은 문자의 갯수가 40개인 것으로 보아 sha1으로 인코딩되어있음을 알 수 있다고 나와있었다. (sha1 인코딩의 특징이라고 한다.)
sha1 암호화는 최대 2의 64비트 메시지에서 160 비트의 해쉬값을 만들어낸다.
이를 통해 이 문자열은 sha1으로 암호화 되어있을 것이라는 추측을 할 수 있다고 한다.
그래서 그 문자열을 sha1으로 디코딩해보니 또 다시 문자가 40개인 문자열이 나왔다.
그래서 다시 한번 더 sha1으로 디코딩 해주니 test라는 문자가 나왔다.
Password 창에 test 를 입력!
4번 문제를 해결했다!! ★☆
4번 문제를 풀고 150점을 받았다.
'Web Hacking' 카테고리의 다른 글
[웹해킹] 54번 문제 (0) | 2017.09.04 |
---|---|
[웹해킹] 38번 문제 (0) | 2017.09.04 |
[웹해킹] 6번 문제 (0) | 2017.05.01 |
[웹해킹] 1번 문제 (0) | 2017.04.17 |
[웹해킹] 회원가입 및 로그인 (0) | 2017.04.13 |