SWLUG/μ›Ή ν•΄ν‚Ή

[Dreamhack/λ“œλ¦Όν•΅] Web

waterproof 2024. 4. 29. 14:03


 

 

 

γ…‹γ…‹γ…‹ κΈ€μžλ“€μ΄ λ‚ μ•„λ‹€λ‹Œλ‹€... CTF 문제λ₯Ό μ œμž‘ν•˜λŠ” λ°μ—λŠ” μ°Έμ‹ ν•œ 아이디어도 ν•„μš”ν•œ 것 κ°™λ‹€.

 

 

 

 

 

 

F12λ₯Ό 눌러 κ΄€λ¦¬μž 도ꡬλ₯Ό μ—΄μ–΄λ³΄λ‹ˆ, κΈ€μžκ°€ μ“°μ—¬μ Έ μžˆλŠ” 이미지 νŒŒμΌλ“€μ΄ μžˆλŠ” 것을 확인할 수 μžˆμ—ˆλ‹€.

이 κΈ€μž 이미지듀이 λ‚ μ•„λ‹€λ‹ˆλŠ” 것 κ°™λ‹€.

μ§€κΈˆμ€ 이 κΈ€μžλ“€μ˜ μˆœμ„œλ₯Ό μ•Œ 수 μ—†λ‹€.

 

 

 

문제 νŽ˜μ΄μ§€μ˜ μ†ŒμŠ€ μ½”λ“œλ₯Ό μ‚΄νŽ΄λ³΄κ² λ‹€.

 

κ·Έ 전에 잠깐 νŠΉμ΄μ μ„ μ°Ύμ•„λ‚Ό 수 μžˆμ—ˆλŠ”λ°, 

 

 

 

μ½”λ“œκ°€ 계속 λ°”λ€ŒλŠ” 것을 μ•Œ 수 μžˆμ—ˆλ‹€, μ•„λ§ˆ νŽ˜μ΄μ§€μ—μ„œ κΈ€μžμ˜ 이미지가 μœ„μΉ˜ν•˜λŠ” μœ„μΉ˜κ°’μ΄ 계속 λ°”λ€ŒλŠ” 것 κ°™μ•˜λ‹€.

 

이 μ›€μ§μž„μ„ λ©ˆμΆ°μ€˜μ•Όκ² λ‹€κ³  μƒκ°ν•΄μ„œ, μœ„μΉ˜κ°’μ„ 계속 λ°”λ€Œκ²Œ ν•˜λŠ” μ½”λ“œλ₯Ό μ°Ύμ•„λ³΄μ•˜λ‹€.

 

"transform: translateX()" 뢀뢄이 μ›€μ§μž„μ— κ΄€μ—¬ν•œλ‹€κ³  μƒκ°ν•΄μ„œ κ΄€λ ¨ μ½”λ“œλ₯Ό μ•„λž˜μ—μ„œ μ°Ύμ•„λ³΄μ•˜λ‹€.

 

const max_pos = self.innerWidth;
    function anim(elem, pos, dis){
      function move() {
        pos += dis;
        if (pos > max_pos) {
          pos = 0;
        }
        elem.style.transform = `translateX(${pos}px)`;
        requestAnimationFrame(move);
      }
      move();
    }

 

이 뢀뢄이 μ›€μ§μž„κ³Ό κ΄€λ ¨μžˆμ„ 것이라고 μƒκ°ν–ˆλ‹€.

if 문의 쑰건을 λ°”κΏ”μ£Όλ©΄ μ›€μ§μž„μ„ 멈좜 것이라고 μƒκ°ν•΄μ„œ, 일단 pos > max_pos λ₯Ό  pos <= max_pos둜 λ°”κΏ”μ„œ μ €μž₯ν•œ Web.html을 λ§Œλ“€μ–΄μ„œ νŒŒμΌμ„ μ—΄μ–΄λ³΄μ•˜λ‹€.

 

 

λ‚ μ•„λ‹€λ‹ˆλŠ” 건 λ©ˆμ·„λŠ”λ°, κ·Έλƒ₯ μœ„μ—μ„œλΆ€ν„° μ•„λž˜λ‘œ, μ™Όμͺ½λΆ€ν„° 였λ₯Έμͺ½μœΌλ‘œ μˆœμ„œλŒ€λ‘œ 읽으면 λ˜λŠ” 걸까?

 

읽기 νž˜λ“€μ—ˆμ§€λ§Œ ν•œ 번 ν•΄λ³΄μ•˜λ‹€.

 

"Too_H4rd_to_sEe_th3_Ch4rs_x.x" 라고 μ½ν˜€μ‘Œλ‹€...

 

그런데 μƒκ°ν•΄λ³΄λ‹ˆκΉŒ

 

μœ„μ—μ„œ μ•„λž˜λ‘œ, μ™Όμͺ½μ—μ„œ 였λ₯Έμͺ½μœΌλ‘œ 화면에 λ³΄μ΄λŠ” μˆœμ„œλŒ€λ‘œ μ†ŒμŠ€μ½”λ“œμ— 이미지 파일이 λ“±λ‘λ˜μ–΄μžˆλ˜ 것 κ°™μ•„μ„œ

κ·Έ μˆœμ„œλŒ€λ‘œ 이미지λ₯Ό μ½μ–΄λ³΄μ•˜λ‹€.

 

 

 

10 17 13 7 16 8 14 2 9 5 11 6 12 3 0 19 4 15 18 1 μˆœμ„œμ΄λ―€λ‘œ,

이미지λ₯Ό μˆœμ„œλŒ€λ‘œ 읽어본 κ²°κ³Ό, μ•„κΉŒμ˜ 값인 "Too_H4rd_to_sEe_th3_Ch4rs_x.x" 와 κ°™μ•˜λ‹€.

 

 

정닡을 λ§žμ·„λ‹€!