인디안 보호구역

Webhacking.kr 4 본문

Study/WebHacking 공부하는 인디안

Webhacking.kr 4

Indie-An 2019. 5. 27. 03:48
  1. 문제 풀이

<첫인상>

특정 문자열이 있는데 마지막 패딩(==)문자를 보고 base64의 출력값임을 알 수 있었다.

코드 확인 결과 딱히 단서가 있진 않아 생략한다.

<코드 확인>

별 다른 점이 발견되지 않아 바로 base64 디코딩을 시작하였다.

<사전 설명>

  1. base64란?
    인코딩 기술로서 패딩 연산을 통해 ‘총 비트수%3’의 값에 따라 문자열 끝에 ‘=’문자를 남기는 것이 특징이다. 출력값으로 64개의 문자를 사용한다 (a-z, A-Z, 0-9, +, /)

  2. SHA1이란?
    암호화 기술로서 해시 함수의 일종이다. 출력값은 160bit이며, 16진수 문자 40개로 이루어져있다.(0-f)


<문제 풀이>

c4033bff94b567a190e33faa551f411caef444f2

해당 문제의 문자열을 base 64로 디코딩했더니 위와 같은 문자열을 얻었다.

처음엔 16진법 문자임을 파악하고 위 헥사값이 가지는 문자열을 찾아보려고 했다.

그런데 요리조리 찾아봐도 별 소득이 없던 것!

다시 처음부터 생각하기로 하였다. 문제의 시발점은 인코딩 된 문자열이었으니,

이 문제는 인코딩 기술에 대한 것일거라 생각하여 인코딩 출력값이 160bit인 것을 찾아보려고 했다.

(이는 인코딩 디코딩에 대한 지식이 전무하여 나온 발상이었다.)

이후 ‘출력값 160bit’ 으로 다시 검색을 하던 찰나, 해시 함수별 출력값 이라는 제목이 눈에 띄었고, sha1 해시 알고리즘의 출력값이 160bit임을 알 수 있었다. 해시 함수 복호화가 가능한가? 하는 의문은 있었지만 ‘sha1 복호화’로 검색을하여 나온 사이트에서 정답을 얻을 수 있었다.

위에서 보이듯 두번 hashing 되어있었다.

 

 

2. 배운 점

  1. 인코딩 기술의 종류 및 정의

  2. 암호화 해시 함수들의 종류 및 정의

  3. 해시함수 복호화 사이트는 딕셔너리 방식의 해시모음집이었다는 것.

3. 참고 링크

 

'Study > WebHacking 공부하는 인디안' 카테고리의 다른 글

Webhacking.kr 26  (0) 2019.05.27
Webhacking.kr 6  (0) 2019.05.27
Webhacking.kr 15  (0) 2019.05.25
Webhacking.kr 24  (0) 2019.05.25
WebHacking.kr 32  (0) 2019.05.22
Comments