νΌλλ‘ λμκ°κΈ°
Dev.toSecurity
μλ¬Έ μ½κΈ°
Path Mapping μ€μ€μ λ° Cache Logic νμ μ μ΄μ©ν API Key νμ·¨
π§© The Web Cache "Whack-a-Mole" at PortSwigger Academy π§©
AI μμ½
Context
μΉ μΊμμ μ€λ¦¬μ§ μλ² κ°μ 리μμ€ ν΄μ μ°¨μ΄λ‘ λ°μνλ Web Cache Deception μ·¨μ½μ λΆμ. μ μ νμ₯μ(.css) κΈ°λ°μ μΊμ± κ·μΉκ³Ό μ€μ μλ²μ λμ κ²½λ‘ μ²λ¦¬ λ‘μ§ κ°μ λΆμΌμΉλ‘ μΈν΄ λ―Όκ° μ λ³΄κ° κ³΅κ° μΊμμ μ μ₯λλ ꡬ쑰μ κ²°ν¨ μ‘΄μ¬.
Technical Solution
- μ μ νμΌλ‘ μ€μΈνκ² λ§λλ νμ₯μλ₯Ό κ²½λ‘μ ν¬ν¨νμ¬ Cacheμ public asset νλ¨ λ‘μ§ μ λ
- μ€λ¦¬μ§ μλ²κ° νμ₯μλ₯Ό 무μνκ³ /my-account λ± λ―Όκ° κ²½λ‘μ λ°μ΄ν°λ₯Ό λ°ννλλ‘ μ λνλ Path Mapping νμ©
- μΈμ μΏ ν€λ₯Ό ν¬ν¨ν μμ²μΌλ‘ 200 OK λ° X-Cache: hit μνλ₯Ό μμ±νλ Prime λ¨κ³ μν
- λμΌ URLμ ν¬μμμκ² μ λ¬νμ¬ ν¬μμμ κ°μΈ μ λ³΄κ° μΊμ μλ²μ μ μ₯λκ² νλ Poison λ¨κ³ μ€ν
- TTL λ§λ£ μ μΏ ν€ μμ΄ ν΄λΉ URLμ μ κ·Όνμ¬ μ μ₯λ λ―Όκ° λ°μ΄ν°λ₯Ό νλνλ Harvest ꡬ쑰 μ€κ³
- 302 Redirect 루ν λ° TTL μ μ½μ 극볡νκΈ° μν μ λ°ν μμ² νμ΄λ° μ μ΄
μ€μ² ν¬μΈνΈ
- μΊμ μλ²μ νμΌ νμ₯μ κΈ°λ° μΊμ± κ·μΉκ³Ό μ€λ¦¬μ§ μλ²μ κ²½λ‘ λ§€ν μΌκ΄μ± κ²ν - λ―Όκ° μ 보 μλ΅ μ Cache-Control: no-store λλ private ν€λ μ μ© μ¬λΆ νμΈ - URL κ²½λ‘ μμ μμ νμ₯μκ° μλ² λ΄λΆ λ‘μ§μ μν₯μ μ£Όμ§ μλλ‘ Strict Path Validation ꡬν