Webhacking

웹 해킹 Webhacking 문제 풀이 4번

bonschicken 2020. 12. 16. 22:48
728x90

 

 

메인 페이지

 

 

 

 

 

페이지 소스

 

소스 분석

 

isset( $var );

$var가 설정되었는지 확인하고, 설정되었으면 TRUE, 설정되지 않았으면 FALSE를 반환합니다.

 

 

$hash rand(10000000,99999999)."salt_for_you";

rand(시작숫자, 끝  숫자) --> 10000000 ~ 99999999 중에서 숫자 한개 뽑겠습니다. 예로10000001로하겠습니다

$hash = 10000001salt_for_you

 

$hash값을 500번 sha1로 암호화 합니다.

 

 

 

레인보우 테이블은 해시 함수(MD5, SHA-1, SHA-2 등)을 사용하여 만들어낼 수 있는 값들을 왕창 저장한 표이다(출처: 나무 위키)

 

레인보우 테이블을 만들어 봅시다.

 

 

예시)hash = 10128152salt_for_you 500번 sha1인코딩 값 --> 36dd29b1e286fca764375b6b85cfeffc9e2d1bdc

 

 

10128152(숫자),36dd29b1e286fca764375b6b85cfeffc9e2d1bdc(500번 인코딩 값)

 

이런식으로  메인페이지 있는 sha1문자와 인코딩값을 비교해서 찾고 입력하면 정답입니다.

 

 

 

파이썬으로 코딩해서 레인보우테이블 작성했습니다.

 

from hashlib import sha1

f = open("sha1.csv","w")

for i in range(10000000,100000000):

    password = str(i) + "salt_for_you"

    for j in range(0,500):

        password = sha1(password.encode('utf-8')).hexdigest()

    print(str(i) + "," + password)
    f.write(str(i) + ", " + password)

f.close()


 

만들어진 sha1에서 문제와 대응하는 해쉬값을 찾아서

 

숫자salt_for_you 입력하면 해결 할 수 있습니다

 

 

제가 레이보우 테이블 만들었습니다.

 

https://file.pizza/download/242nds8j

10000000 ~ 13545126

 

FilePizza - Your files, delivered.

Peer-to-peer file transfers in your web browser.

file.pizza

https://file.pizza/download/r2e3zo6g

13545126 ~15950731

 

FilePizza - Your files, delivered.

Peer-to-peer file transfers in your web browser.

file.pizza