CTF, War game

[Dreamhack] Beginner: Carve Party

mnzy๐ŸŒฑ 2022. 9. 24. 03:03

1. ๋ฌธ์ œ

https://dreamhack.io/wargame/challenges/96

 

Carve Party

Description ํ• ๋กœ์œˆ ํŒŒํ‹ฐ๋ฅผ ๊ธฐ๋…ํ•˜๊ธฐ ์œ„ํ•ด ํ˜ธ๋ฐ•์„ ์ค€๋น„ํ–ˆ์Šต๋‹ˆ๋‹ค! ํ˜ธ๋ฐ•์„ 10000๋ฒˆ ํด๋ฆญํ•˜๊ณ  ํ”Œ๋ž˜๊ทธ๋ฅผ ํš๋“ํ•˜์„ธ์š”!

dreamhack.io

 

- ํ˜ธ๋ฐ•์„ 10000๋ฒˆ ํด๋ฆญํ•˜๋ฉด ํ”Œ๋ž˜๊ทธ๋ฅผ ํš๋“ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ฌธ์ œ์— ์ œ์‹œ๋˜์–ด ์žˆ๋‹ค.


2. ํ•ด๊ฒฐ ๊ณผ์ •

(1) ๋ฌธ์ œ ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ

- jack-o-lantern์ด๋ผ๋Š” ํŒŒ์ผ๋ช…์˜ html ๋ฌธ์„œ๊ฐ€ ๋ณด์ธ๋‹ค. 

 

- pumpkin์„ ํด๋ฆญํ•˜๋ผ๋Š” ๋ฌธ๊ตฌ์™€ ํ˜ธ๋ฐ• ๊ทธ๋ฆผ, ๊ทธ ๋ฐ‘์—๋Š” ํด๋ฆญ์ˆ˜๋งŒํผ ์ค„์–ด๋“œ๋Š” ๋ฌธ์ž์—ด์ด ๋ณด์ธ๋‹ค. 

 

 

 

(2) ์ฝ”๋“œ ํ™•์ธ

- F12๋ฅผ ๋ˆŒ๋Ÿฌ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•œ๋‹ค.

$(function() {
  $('#jack-target').click(function () {
    counter += 1;
    if (counter <= 10000 && counter % 100 == 0) {
      for (var i = 0; i < pumpkin.length; i++) {
        pumpkin[i] ^= pie;
        pie = ((pie ^ 0xff) + (i * 10)) & 0xff;
      }
    }
    make();
  });
});

 

์ œ์ด์ฟผ๋ฆฌ๋กœ ๋œ ํด๋ฆญ๊ณผ ๊ด€๋ จ๋œ ์ฝ”๋“œ๋ฅผ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ๋‹ค. 

  • jack-target์„ ํด๋ฆญํ•  ๋•Œ ๋งˆ๋‹ค counter๋ฅผ 1์”ฉ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค
  • counter๊ฐ€ 10000์ดํ•˜์ด๊ณ , 00์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง„๋‹ค๋ฉด for๋ฌธ์„ ์‹คํ–‰ํ•œ๋‹ค.
  • 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ  pumpkin.length๋ณด๋‹ค ์ž‘์„ ๋•Œ๊นŒ์ง€ 1์”ฉ ์ฆ๊ฐ€ํ•œ๋‹ค.

for๋ฌธ ์•„๋ž˜๋Š” 

  • pie ^ 0xff: pie์™€ 0xff์˜ XOR ์—ฐ์‚ฐ์€ pie์˜ ๊ฐ ๋น„ํŠธ๋ฅผ ๋ฐ˜์ „์‹œํ‚จ๋‹ค.
  • (i * 10): ๋ฃจํ”„์˜ ๊ฐ ๋ฐ˜๋ณต์—์„œ, i์˜ ๊ฐ’์— 10์„ ๊ณฑํ•œ ๊ฐ’์„ XOR ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ์— ๋”ํ•œ๋‹ค.
  • & 0xff: ๋งˆ์ง€๋ง‰์œผ๋กœ, ๊ฒฐ๊ณผ๋ฅผ 0xff์™€ AND ์—ฐ์‚ฐํ•˜์—ฌ ๊ฒฐ๊ณผ๊ฐ€ 8๋น„ํŠธ ๊ฐ’์˜ ๋ฒ”์œ„ ๋‚ด์— ์žˆ๋„๋ก ํ•œ๋‹ค.

 

์ฆ‰, ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ for๋ฌธ์œผ๋กœ 10000๋ฒˆ ๋ฐ˜๋ณตํ•˜์—ฌ ํด๋ฆญ ์ด๋ฒคํŠธ๋ฅผ ๊ฐ•์ œ๋กœ ๋™์ž‘์‹œํ‚ค๊ณ  ์‹ถ์—ˆ๋‹ค. 

 

 

3. ์ฝ”๋“œ ์ž…๋ ฅ 


[JAVASCRIPT/Jquery] ํด๋ฆญ์ด๋ฒคํŠธ ๊ฐ•์ œ ๋ฐœ์ƒ (trigger())

 

[์ฐธ๊ณ ] https://6developer.com/6

 

[Javascript/Jquery] ํด๋ฆญ์ด๋ฒคํŠธ ๊ฐ•์ œ ๋ฐœ์ƒ (์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ or ์ œ์ด์ฟผ๋ฆฌ)

[Javascript/Jquery] ํด๋ฆญ์ด๋ฒคํŠธ ๊ฐ•์ œ ๋ฐœ์ƒ (์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ or ์ œ์ด์ฟผ๋ฆฌ) - ํ”ผ๊ณคํ•˜๋‹ค ๋งŒ๋“ค๊ณ  ์‹ถ์€๊ฒŒ ์ƒ๊ฒผ๋‹ค 1. ๋ฌด์—‡์„ ๋งŒ๋“ค๊ณ  ์‹ถ์—ˆ๋Š”๊ฐ€ - ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์ง€ ์•Š์•„๋„ ํด๋ฆญ์ด๋ฒคํŠธ๋ฅผ ๊ฐ•์ œ๋กœ ๋ฐœ์ƒ์‹œํ‚ค๊ณ  ์‹ถ์—ˆ

6developer.com

 

์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๋Š” ์ œ์ด์ฟผ๋ฆฌ์˜ ํด๋ฆญ์ด๋ฒคํŠธ ๊ฐ•์ œ ๋ฐœ์ƒ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด ๋œ๋‹ค.

$("#my-btn").trigger("click");

 

- ์ฆ‰, ํด๋ฆญ ๋Œ€์ƒ. trigger("click");


 

for (i = 0; i < 10000; i++){ $("#jack-target").trigger("click");}