본문으로 바로가기

Carve party 문제풀이

category 모의해킹/Dreamhack Wargame 2025. 4. 25. 23:32
728x90

문제 설명

 

할로윈 파티를 기념하기 위해 호박을 준비했습니다! 호박을 10000번 클릭하고 플래그를 획득하세요!


문제 풀이

 

상당히 귀여운 문제라고 생각하며, 페이지에 접속해보았다.

별다른 거 없이, 그냥 진짜 10000번만 클릭하면 된다.

Sources에서 코드를 조작해보겠다.

단순히 클릭 한 번 할 때마다 카운트가 1000씩 올라가도록 조작했다.

.......? 엣

코드를 한번 자세히 살펴보자

아 뭔가 pumpkin에 이상한 배열이 저장되어있다.

 

make 함수에 counter가 점점 오를 때마다 호박의 눈,코,입이 생성되는 로직이 보인다.

그리고 counter가 10000을 초과하면,  jack-target이라는 애니메이션이 실행된다.

여기서 pumkin의 배열의 각 요소를 문자로 변환하여 문자열을 생성한다. <- 요것이 복호화된 최종 문자열

그럼 왜 counter += 1000 으로 수정했을 때 이상한 문자열이 생성된 것일까?

그야 암호화되어 있으니까!

 

위 로직을 보면 클릭 100번마다 if문을 통과하게 되는데,

고로 pumpkin은 100번마다 XOR(^=) 연산을 통해 복호화되며 점점 해석이 가능해진다.

한 번의 클릭으로 counter가 1000씩 올라가는 코드는, 암호화된 flag가 출력된 것이다.

 

그럼 Console에서 jack-target에 대한 click을 10000번 반복해버리자.

Console창에 코드를 입력 후, 호박을 한번 더 눌러주면 flag 코드가 정상적으로 출력된다.


물론 counter += 100으로 올려도 flag가 잘 해독된다. 그래도 클릭을 100번해야하니까 ...

물론 당연히 10000번을 직접 누르셔도 된다 ^!^

'모의해킹 > Dreamhack Wargame' 카테고리의 다른 글

64se64 문제 풀이  (0) 2025.04.30
Exercise: Welcome-Beginners 문제풀이  (0) 2025.04.29
Command-injection-1 문제 풀이  (0) 2025.04.24
File-download-1 문제풀이  (0) 2025.04.22
Devtools-sources 문제 풀이  (0) 2025.04.18