power-girl0-0

[ webhacking.kr-old ] 4번 본문

War game/webhacking.kr

[ webhacking.kr-old ] 4번

power-girl0-0 2021. 6. 19. 12:29
728x90

주소 : https://webhacking.kr/old.php

 

Webhacking.kr

 

webhacking.kr


 [ 풀이 ] 

깜깜한 화면 드응장~~!

password값을 입력할 때마다, 위의 난수값(?)이 계속 변경된다.

 

view-source를 클릭하여, 소스코드를 살펴보자.

소스코드를 살펴보면, chall4의 세션값과 입력받아오는 key변수의 값이 같으면 풀리는 것으로 되어있다.

하지만, 여기서 chall4 센션값 안에는 hash변수가 들어가 있는 것을 확인할 수 있다.

 

위 코드를 집중적으로 살펴보면, $hash에는 1000000부터 99999999까지의 랜덤값+salt_for_you가 들어있으며,

이를 sha1을 활용하여, 500번 암호화하고 있는 것을 볼 수 있다.

 

위 코드를 보면, 문제가 출력되어 있던 페이지에서 난수값은 sha1로 500번 암호화한 hash값을 출력하고 있는 것으로 확인할 수 있다.

 

즉, 우리는 sha1로 500번 암호화하기 전인 1000000부터 99999999까지의 랜덤값+salt_for_you의 랜덤값을 추측하여 입력했으시 풀리는 문제로 예상된다.


이는 레인보우 테이블을 활용한 문제로 예상된다.ㅠ_ㅠ

 

본 글 작성자는 간단하게 python으로 무차별 공격을 해볼 예정이다.

코드는 아래와 같다.

import hashlib

ans = "bf2aee3086ff227752afe66d4298552b2076a798"

for i in range(10000000,99999999+1):
    hash = (str(i)+"salt_for_you")
    for j in range(500):
        ans2 = hashlib.sha1(hash.encode()).hexdigest()
    if(ans == ans2):
        print("flag : {}".format(hash))
        break

컴퓨터가,,,, 아파한 문제였다 ㅎ_ㅎ,,,,

문제 클리어 ~_~

728x90

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

[webhacking.kr-old] 6번  (0) 2021.06.19
[webhacking.kr-old] 5번  (0) 2021.06.19
[webhacking.kr-old] 3번  (0) 2021.06.18
[webhacking.kr - old] 2번  (0) 2021.06.10
[webhacking.kr - old] 1번  (0) 2021.06.10
Comments