본문 바로가기

Webhacking/Webhacking.kr

[Webhacking.kr] old-04번 문제 풀이

728x90
반응형

4번 문제는 무언가 hash 비슷하게 생긴 문자열 하나를 주고 password 입력 공간을 준다.
view source를 읽어보자

아... 코드를 읽자마자 드는 불길한 예감.
그렇다. 이 문제는 어려운 문제가 아닌 귀찮은 문제....
문제를 대충 정리해보면
화면에 보이는 sha1 hash값이 원래 어떤 값인지 맞추라는 것이다. 다만 hash는 매번 랜덤하게 바뀐다...
문제의 의도는 rainbow table을 만들어 풀라는 것으로 보인다.

문제의 의도를 파악한 이상 지체할 필요는 없다.
rainbow table을 만드는 간단한 코드를 github에 올려두었다.
특징이 있다면 아래와 같다.

  • multiprocessing을 통해 총 9개의 process를 동시에 실행하여 효율을 뽑아내려 노력한 코드
  • 각 process마다 따로따로 file io를 통해 rainbow table 파일을 만들어냄
  • sha1 hash는 40byte이지만, 8byte만 rainbow table에 저장해도, 경우의 수가 42억개기 때문에 겹칠일은 거의 없어,
    hash값의 8byte까지만 저장함 (용량 효율성을 위함)

Github 주소 : github.com/KwonHyeonJun/Wargame_POC/tree/main/1.%20webhacking.kr/old-04

그렇게 열심히 돌려서 rainbow table을 만든뒤, 앞에서 8byte를 grep 해주니... 답이 나왔다.

인증을 시도해보자

풀었다!

문제는 정말 하나도 안어려운데, rainbow table만드는 시간이 오래걸리는 그런 문제...
이런문제는 싫지만... 좋은 경험이었다...

728x90
반응형