2016. 8. 6. 13:25 :: 문제풀이/WebHacking,kr

안녕하세요. Message입니다.

Webhacking.kr Lv4 문제풀이 달립니다!

 

 

------------------------------------------------------------------------------------------------------------------------------------------

1. 문제분석

------------------------------------------------------------------------------------------------------------------------------------------

 

4번 문제에 접속하면 아래와 같은 문자열이 나옵니다.

아마 해당 문자열을 복호화 하거나 디코딩하라는 의미겠죠?

 

단순히 즐겨찾기 해두면 맨날 없어지고, PC 바뀌면 못찾고...

이러한 문자열을 디코딩하거나 레인보우 테이블이 필요할때 유용한 사이트입니다.

암복호/디코딩 : http://tools.web-max.ca/encode_decode.php

 

레인보우테이블 : http://hashtoolkit.com

 

 

 

------------------------------------------------------------------------------------------------------------------------------------------

2. 문제풀이

------------------------------------------------------------------------------------------------------------------------------------------

 

일단 주어진 문자열의 끝부분이 "==" 으로 끝나므로 BASE64 로 디코딩해주면 아래와 같은 문자열이 나옵니다.

 c4033bff94b567a190e33faa551f411caef444f2

 

해당 문자열을 패스워드에 입력하면 아무 반응이 나타나지 않습니다.

아마 어떠한 방법으로 디코딩을 더 해야되는것 같네요.

해당 문제를 풀기위해 공부한 결과로는, 16진수 X 40개 = 160bit 값을 통해 SHA1 으로 유추하는 방법이 있다고 하는데,

저는 직관적으로 해당 방법을 몰랐으므로, 위에 URL에 남긴 레인보우테이블 사이트를 이용했습니다.

bit값을 알아서 계산해서 결과를 알려주는 듯 합니다. SHA1 Decrypt 결과값이 나왔습니다.

 

하지만 결과값 역시 160bit 이므로, 한번더 동일한 작업을 수행합니다.

그러면 아래와 같은 의미있는 문자열을 발견할 수 있습니다.

사실 윗단계에서 의미 없다고 다른 방법을 찾아보았다면 낭패를 보았겠죠..

 

해당값을 입력하면 클리어입니다.

 

 Tip. 해쉬함수

 보통 웹사이트에서 패스워드를 저장할 때 SHA1, SHA256 등을 이용한 해쉬값을 많이 사용합니다.

 하지만 해당 방법들을 사용하면, 위 사이트에서 제공하는 레인보우테이블을 이용할 경우 패스워드 추축이 가능하게 됩니다.

 그래서 쉽게 추측하는 부분을 방지하기 위해 대형 사이트에서는 아래와 같이

 무의미한 쓰레기값과 salt 값을 이용한다고 합니다.

  "쓰레기값" + SHA1(salt + password) = 유추하기 어려운 값 

 

posted by Red_Message