πŸ”’ Secure Search

우리의 XSS ν•„ν„°λŠ” μ•ˆμ „ν•©λ‹ˆλ‹€... μ •λ§λ‘œ?

πŸ’‘ 힌트

힌트 1

script νƒœκ·Έλ§Œ μ°¨λ‹¨λ˜λŠ” 것은 μ•„λ‹™λ‹ˆλ‹€. ν•˜μ§€λ§Œ λͺ¨λ“  νƒœκ·Έκ°€ μ°¨λ‹¨λ˜λŠ” 것도 μ•„λ‹™λ‹ˆλ‹€.

힌트 2

HTML5μ—λŠ” λ§Žμ€ μƒˆλ‘œμš΄ νƒœκ·Έλ“€μ΄ μžˆμŠ΅λ‹ˆλ‹€. svg, math, details λ“±...

힌트 3

XSSκ°€ μ„±κ³΅ν•˜λ©΄ /api/flag μ—”λ“œν¬μΈνŠΈμ— μš”μ²­μ„ λ³΄λ‚΄λ³΄μ„Έμš”.

힌트 4

fetch APIλ₯Ό μ‚¬μš©ν•˜μ—¬ ν”Œλž˜κ·Έλ₯Ό κ°€μ Έμ˜¬ 수 μžˆμŠ΅λ‹ˆλ‹€: fetch('/api/flag').then(r=>r.json()).then(d=>alert(d.flag))

πŸ“‹ λͺ©ν‘œ

XSS 필터링을 μš°νšŒν•˜μ—¬ /api/flagμ—μ„œ ν”Œλž˜κ·Έλ₯Ό νšλ“ν•˜μ„Έμš”!