ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Webhacking.kr] Challenge 4
    Wargame/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

    댓글

Designed by Tistory.