π Introduction
CSV Injectionμ Formula InjectionμΌλ‘λ λΆλ¦¬λ©° μΌλ°μ μΌλ‘ CSV νμΌ λ€μ΄λ‘λ λ±μ κΈ°λ₯μμ λ°μλλ μ·¨μ½μ μ΄μ, 곡격기λ²μ λλ€. MS Excel, Libre Office λ±μμ CSV νμΌμ μ΄ λ νΉμ ꡬ문μ μ΄μ©νμ¬ μμ€ν λͺ λ Ήλ±μ μνν μ μλλ°, μ΄λ₯Ό μ μμ μΈ νμΌμ΄ μλ μ μμ μΈ νμΌμ λ€μ΄λ‘λν λ 곡격μκ° μλν κ΅¬λ¬Έμ΄ CSV νμΌ λ΄λΆμ λ°μλλλ‘ νμ¬ νΌν΄μκ° μμ¬μμ΄ νμΌμ μ΄λ©΄μ 곡격μκ° μλν μ½λκ° μ€νλλλ‘ ν μ μλ 곡격μ λλ€.
μΌλ°μ μΌλ‘ 보μ κ²½κ³ μ, μ¬μ©μ μΈν°λ μ μ΄ μμ΄ κ³΅κ²© 볡μ‘λκ° λμ νΈμ΄κΈ΄ νμ§λ§, μ λ’°λ₯Ό κΈ°λ°μΌλ‘ νκΈ° λλ¬Έμ νμΌμ μ΄ κ°λ₯μ±μ΄ λμ μνμμ μμ€ν λͺ λ Ήλ±μ μνν μ μμ΄μ 리μ€ν¬ μ체λ λμνΈμ λλ€.
π‘ Offensive techniques
Detect
μλΉμ€μ λλ©μΈμμ μΉ νμ΄μ§, API λ±μ ν΅ν΄ CSV νμΌμ λ€μ΄λ‘λνλ κΈ°λ₯μ΄ μλ€λ©΄ μ°μ μ κ²ν ν¬μΈνΈκ° λ©λλ€. μ¬κΈ°μ URL Query, 미리 μ μ₯ν λ°μ΄ν°λ±μ μ΄μ©ν΄μ CSVμ μμ ν μ μλ€λ©΄ CSV Injectionμ ν¬μΈνΈλ‘ 보면 λ©λλ€.
Request
|
|
Response
|
|
Exploitation
CSV λ΄λΆλ₯Ό μ μ΄ν μ μλ€λ©΄ μλμ κ°μ΄ DDE(Dynamic Data Exchange) μ½λ λ±μ ν΅ν΄ λͺ λ Ή μ€νμ μ λν©λλ€.
Request
|
|
Response
|
|
μΌλ°μ μΌλ‘ CSV Injectionμ μ¬μ©λλ DDE μ½λλ μλμ κ°μ΅λλ€.
|
|
Bypass protection
CSV νμΌμ μ¬μ©μμκ² μμ ν μ μλλ‘ κΈ°λ₯μ μΌλ‘ μ 곡νλ κ²½μ°, DDE ꡬ문 λ±μ μΆκ°ν μ μλλ‘ μ κ·μ λλ λ¬Έμμ΄ κΈ°λ°μ κ²μ¦ μ μ± μ΄ λ€μ΄κ°κ² λ©λλ€. μ΄λ¬ν κ²½μ° λ°λ³΅μ μΈ ν μ€ν μ ν΅ν΄μ κ²μ¦ μ μ± μ μΆμΈ‘νκ³ , μ΄λ₯Ό μ°ννμ¬ μ½λλ₯Ό μ½μ νλ ννλ‘ Bypassingμ ν μ μμ΅λλ€.
π‘ Defensive techniques
κ°κΈμ CSV νμΌ λ΄λΆλ μ¬μ©μκ° μ μ΄ν μ μλλ‘ Input pointλ₯Ό μ κ±°νλ κ²μ΄ μ’μΌλ©°, κΈ°λ₯ μ μ¬μ©μκ° ν΅μ ν μ μμ΄μΌ νλ€λ©΄ μ©λμ λ§κ² νν°λ§νλ ννλ‘ μ νν μ μμ΅λλ€. μλ₯Όλ€μ΄ μ«μλ§ μ λ ₯μ΄ νμν νλλΌλ©΄, CSV νμΌμ μμ±νμ¬ λ΄λ €μ£ΌκΈ° μ μ μ¬μ©μ μ λ ₯μ΄ μ«μ κ°μΈμ§ μ ννκ² κ²μ¦νκ³ λ΄λ €μ£Όλ ννλ‘ λ°©μ΄ν μ μμ΅λλ€.
λλ€μ κ΅¬λ¬Έμ΄ cmdλ₯Ό μ¬μ©νκΈ° λλ¬Έμ ν΄λΉ λ¬Έμμ΄μ κΈ°λ°μΌλ‘ κ²μ¦νλ λ°©λ²λ μμ΅λλ€. λ€λ§ XSSμ μ μ¬νκ² λμλ¬Έμμ μΈμ½λ©μ λν΄μλ κ³ λ €νμ¬ νν°λ§λμΌ ν©λλ€.