old-04 풀이

2024. 4. 3. 16:38webhacking.kr

728x90

메인 페이지

해시처럼 보이는 값이 쓰여있고, 그 아래에는 password 제출 폼이 보입니다

 

view-source
SHA1

소스를 보니 SHA1 해시였네요

무지성 브포를 방지하기 위한 sleep() 함수도 보입니다

hash에는 10000000부터 99999999까지의 값 중 하나를 랜덤으로 뽑은 뒤, "salt_for_you" 문자열을 붙여 넣어줍니다

그리고 이 값에 대한 sha1 해싱을 500번 진행해 줍니다

 

메인 화면에 나온 해시값

그렇다면 이 값은 해싱을 500번 진행하고 나온 결과값이겠네요!

그런데 새로고침 할 때마다 값이 바뀝니다..?

레인보우 테이블을 만들어서 풀어야 하는 문제네요

 

Rainbow Table 생성 코드

바로 생성 코드를 만들어줬습니다

처음에는 view-source에 나온 범위 그대로 10000000부터 99999999까지 for가 돌아가도록 만들었습니다

하지만 메모장에 적히는 속도를 대충 봤더니, 한참 걸릴 것 같아서 그냥 1/4 크기인 25000000까지 돌리기로 했습니다

메모장에 적히는 값은 보기 편하게 중간에 슬래시(/)로 나눠줬습니다

 

rainbow.txt
1/4로 줄였는데도 엄청난 크기 ㄷㄷ

안 줄였으면 꼬박 하루가 걸릴 뻔했네요

이제 만들어진 rainbow.txt에서 Ctrl + F로 hash 값을 가져와 검색해 줍니다

만약 결과가 나오지 않는다면, 페이지 새로고침(F5)을 해준 후 다시 검색해 줍니다

저는 새로고침을 4번 한 후에야 값을 찾을 수 있었습니다

 

정답 찾은 후, 뒤에 "salt_for_you" 추가
문제 풀이 성공

 

기다리느라 지쳤어...

처음에 풀 때, 레인보우 테이블 안 만들고 콘솔에 결과 나오도록 코드 짜놨는데....

3시간 뒤에 보니 세션 끊겨서 4천만 개까지만 돌아간 후 멈춰있었습니다...........

범위 1/4인 테이블 생성하는 것도 2시간 걸리고...

 

728x90

'webhacking.kr' 카테고리의 다른 글

baby toctou🍼 풀이 (PW = FLAG)  (0) 2024.04.08
old-57 풀이  (0) 2024.04.07
old-45 풀이  (1) 2024.03.27
old-60 풀이  (0) 2024.03.25
RPG1 풀이  (0) 2024.03.18