-
[Webhacking.kr] Challenge 4Wargame/Webhacking.kr 2023. 1. 12. 11:57반응형
Challenge 4를 풀어보자.
어떻게 풀어야 하는지는 알고 있었지만, 도무지 코드를 짤 수가 없어서 오래 걸린 문제이다.
결국 비효율적으로, 출제자의 의도와는 다르게 풀어 아쉬운 문제이다.
문제 화면을 보면 긴 문자열이 있고, Password를 제출하는 칸이 있다.
문자열만 나와있는 것을 보니 아마도 hash 값을 나타내는 것 같다.

<Challenge 4의 문제 화면> 문제 페이지에는 별다른 힌트가 없기 때문에 소스 코드를 보도록 하자.
sha1 해시 알고리즘이 적용되어 있다.
천만 단위의 수에 salt_for_you라는 salt 값을 붙여 500 번의 sha1 해시 알고리즘을 적용한다.
문제 페이지의 Password 입력값을 key로 받고, 그 값이 알고리즘을 적용한 hash 값과 같으면 해결된다.

<Challenge 4 문제의 소스 코드> 문제를 해결하는 건 간단하다.
알고리즘을 적용한 많은 해시 값을 저장하고 있는 레인보우 테이블을 만들면 된다.
그런데, 레인보우 테이블을 효율적으로 만들 수 있는 방법을 몰라 시간이 걸렸다.
결국 사전 공격을 할 수 밖에 없어 아래와 같이 코드를 작성하였다.
시간이 오래 걸리고, 모든 해시 값을 알 수 없어 비효율적이므로 레인보우 테이블에 대해 더 공부를 해야겠다.

<사전 공격을 위한 사전 작성 코드> 만든 파일을 참조해 500번의 해시 알고리즘을 적용했을 때의 값을 찾을 수 있었다.

<해시 값과 일치하는 수> 찾은 수에 salt 값을 붙여 제출하면 old-04 Pwned!가 출력되며 문제가 해결된다.

<해시 값 제출> 
<Challenge 4 문제 완료> 반응형'Wargame > Webhacking.kr' 카테고리의 다른 글
[Webhacking.kr] Challenge 6 (0) 2023.01.14 [Webhacking.kr] Challenge 5 (0) 2023.01.13 [Webhacking.kr] Challenge 3 (0) 2022.12.11 [Webhacking.kr] Challenge 2 (0) 2022.12.09 [Webhacking.kr] Challenge 1 (0) 2022.09.14