[Bee-box] κΈ°ν μΈμ μ 곡격- iframe
HTML injection-Stored(Blog)λ°©μμ μ΄μ΄μ,
μ€λμ μΈμ μ κΈ°λ² μ€ iframe μΈμ μ μ μ€μ΅ν΄λ³Όκ²μ
μ€μ΅νλ λͺ¨λ 곡격μ μ€μ λ‘ μ¬μ©νμλ©΄ μλ©λλ€.
νμ©λ°μ§ μμ μλΉμ€ λμμ ν΄νΉμ μλνλ νλμ κΈμ§νλ©°,
λͺ¨λ λ²μ μ± μμ μ¬μ©μμκ² μλ κ²μ λͺ μ¬ν΄μ£ΌμΈμ
λμ΄λ ν
iframeμ HTML λ¬Έμ μμμ λ λ€λ₯Έ HTML λ¬Έμλ₯Ό μΆλ ₯νλ νκ·Έλ‘,
μ΄λ μμΉλ μκ΄μμ΄ μΈμ μ 곡격μ ν μ μμ΅λλ€.
λν λ 립μ μΌλ‘ λ§λ€ μ μκΈ° λλ¬Έμ HTML μΈμ μ μ€μμλ 곡격μ μμ£Ό μ¬μ©λ©λλ€.
νμ΄μ§ λ΄μ iframe νκ·Έλ₯Ό μ£Όμ νλ€. --> μ£Όλ‘ μ μ± URLμ μ½μ ν μ¬μ΄μ¦λ₯Ό 0μΌλ‘ μ€μ νμ¬ μ¨κΈ΄λ€.
--> μ¬μ©μμκ² μλμΉ μκ² μ μ±μ¬μ΄νΈλ‘ μ μνκ²λ νκ±°λ, κ²½κ³ μ°½μ λμΈ μ μλ€.
λ¨Όμ lowλ¨κ³λ‘ 'iframei.php' νμ΄μ§λ‘ λ€μ΄κ°λλ€.
'iframei.php' νμ΄μ§λ GET λ°©μμΌλ‘ λ°μ΄ν°λ₯Ό μ μ‘λ°μΌλ―λ‘ URLμ λ³μκ° λ ΈμΆλ©λλ€.
λ³μλ₯Ό νμΈν΄λ³΄λ©΄ 'ParamUrl', 'ParamWidth', 'ParamHeight' μ΄ μΈκ°μ§κ° μμ΅λλ€.
ParamUrl -> μ°κ²°ν μ£Όμ λ°μμ€κΈ°.
ParamWidth, ParamHeight -> λ΄μ©μ μΆλ ₯ν ν¬κΈ° μ§μ νκΈ°.
κ°λ°μ λκ΅¬λ‘ μ½λλ₯Ό νμΈν΄λ³΄λ©΄
iframe νκ·Έλ₯Ό μ¬μ©νμ¬ 'robots.txt' λΌλ νμΌμ λ΄μ©μ νμΈν΄μ£Όλ€μ.
μκΉ μμ URLμμ νμΈ ν΄λ³΄λ©΄, ParamUrl λ³μμκ°μ robot.txtμ λλ€.
μ΄ λ³μμ μ λ ₯ν λ΄μ©μ΄ iframe νκ·Έμ μΆκ°λμ΄ κΈ°μ‘΄ iframe νκ·Έλ₯Ό κ°μ λ‘ λ«κ³ URLμ λ ΈμΆλ λ³μμ μ μμ μΈ
iframe νκ·Έλ₯Ό μ£Όμ ν΄λ³΄λλ‘ νκ² μ΅λλ€.
- HTML νμ΄μ§ μμ±νκΈ° -
λ¨Όμ μ¬μ©μκ° λͺ¨λ₯΄κ² μ μμ μΈ νμ΄μ§λ₯Ό μΆλ ₯νλ 곡격μ νλ €λ©΄ HTML νμ΄μ§κ° νμν©λλ€.
vmware > bee-box μμ ν°λ―Έλμ ν΅νμ¬, λͺ λ Ήμ΄λ₯Ό μ λ ₯ν΄μ νμ΄μ§λ₯Ό μμ±ν΄ 보λλ‘ νκ² μ΅λλ€.
> ν°λ―Έλμ μ€ν ν λΉλ°μ€μμ μ§μ ν μΉ μ ν리μΌμ΄μ λλ ν°λ¦¬ μμΉλ‘ μ΄λν΄μ€λλ€.
* cd -> change Directory
> vi νΈμ§κΈ°λ₯Ό μ¬μ©νμ¬ 'bad.html' μ΄λΌλ νμΌμ μμ±ν΄μ€λλ€.
(μ λ λ¨Όμ sudo su λͺ λ Ήμ΄λ₯Ό ν΅ν΄ 루νΈκΆνμ λΉλ Έμ§λ§, κ·Έλ μ§ μμΌμ λΆμ sudo vi bad.html μ μ λ ₯ν΄μ£ΌμΈμ.)
μμ κ°μ΄ νμΌ μμ± ν λ΄μ©μ μ λ ₯ν΄μ£Όμκ³ ,
"Esc -> Shift + : " λ₯Ό λλ₯Έ ν " wq! " λ₯Ό μ λ ₯νμ¬ λ΄μ©μ μ μ₯ν΄μ€λλ€.
μ λλ‘ μ μ₯μ΄ λμλμ§ νμΈν΄μ€λλ€.
μ΄λ κ²! HTML νμ΄μ§λ₯Ό λ§λ€κ³ λλ©΄ λ€μ iframei.php νμ΄μ§λ‘ μ΄λνμ¬, URLμ μ μμ μΈ νμ΄μ§λ₯Ό νΈμΆν΄λ΄ μλ€.
λ¨Όμ μλ κΈ°μ‘΄μ URL μΈλ°μ, μμΈν 보면
μ΄λ κ² λλ€μ.
μμ ν URLλ μμ νμν΄ λμλλ°μ.
κΈ°μ‘΄μ ParamUrl λ³μμ κ°μ΄ μλ νμ΄μ§μ iframe νκ·Έμ μΆκ°λκΈ° λλ¬Έμ
"></iframe> μ μ λ ₯νμ¬ μλ νμ΄μ§μ iframe νκ·Έλ₯Ό λ«μμ£Όκ³ , bad.html νμ΄μ§λ₯Ό srcμμ±μ μ λ ₯ν΄μ€λλ€.
μ΄λ κ² urlμ μ λ ₯ν΄ μ£Όκ³ μν°λ₯Ό λλ₯΄λ©΄
νλ©΄κ³Ό κ°μ΄ Succed λΌκ³ κ²½κ³ μ°½μ΄ λ¨κ² λ©λλ€. -> λ¨λ©΄ 곡격 μ±κ³΅
νμΈ λ²νΌμ ν΄λ¦νλ©΄
robots.txt λ΄μ© μμ bad.htmlμ μ λ ₯ν ν€λ© νκ·Έ "<h1>" λ΄μ©μ μΆλ ₯νκ³ κ·Έμμλ μ μ iframe νκ·Έμ λ€μ΄κ°λ
λμ΄μ λμ΄ μμ±μ λ¬Έμμ΄λ‘ μΆλ ₯ν©λλ€.
--> μ΄λ μ μ iframeνκ·Έλ₯Ό κ°μ λ‘ λ«μκΈ° λλ¬Έμ μμ±μ΄ λ ΈμΆλ κ²μ λλ€.
--> ParamWidth λ³μμ iframe νκ·Έλ₯Ό μ£Όμ νλ©΄ μ μ iframe νκ·Έμ κ°μ₯ λ§μ§λ§μ΄κΈ° λλ¬Έμ "> λ§ μΆλ ₯ν©λλ€.
곡격 μ±κ³΅ ν [F12] κ°λ°μ λκ΅¬λ‘ λ€μ΄κ°μ μμ€ μ½λλ₯Ό νμΈνλ©΄
div id="main" μ μλ μλ iframeνκ·Έκ° λ«νκ³ μ μμ μΌλ‘ μ£Όμ ν iframeνκ·Έκ° μΆκ°λ κ²μ νμΈ ν μ μμ΅λλ€.
μ¬μ©μ λͺ°λ iframe μΈμ μ 곡격μ νκΈ° μν΄ 'width'μμ±κ³Ό 'height' μμ±μ 0μΌλ‘ λ³κ²½ν΄λ³΄κ² μ΅λλ€.
μ΄λ κ² μ¬μ΄μ¦λ₯Ό 0μΌλ‘ μ§μ νκ³ μ€ν μμΌλ³΄λ©΄
μκΉμ λμΌνκ² succeedλΌλ κ²½κ³ μ°½μ κ·Έλλ‘ μΆλ ₯λ©λλ€.
νμ§λ§ μ΄μ κ³Ό λ€λ₯΄κ² bad.htmlμ μ λ ₯ν <h1> νκ·Έ λ΄μ©μ΄ μΆλ ₯λμ§ μλ€μ..!
μ΄λ κ² μ λ ₯νλ ν€λ©νκ·Έλ μΆλ ₯λμ§ μμλ€μ.
--> λ°λΌμ 곡격μλ iframe μΈμ μ μΌλ‘ κ²½κ³ μ°½μ μΆλ ₯νμ¬ μλ μ¬μ΄νΈμμ μ μμ μΈ μλ΅μ μ£Όλ κ² μ²λΌ μ¬μ©μλ₯Ό
μμΌ μ μμ΅λλ€. (μμ λ΄μ©μ μ¨κΈ°κ³ , κ²½κ³ μ°½λ§ μΆλ ₯μ΄ λ¨)
κ·Έλ¬λ μ νλ©΄λ§ λ³΄λ©΄, iframe μ¬μ΄μ¦κ° μ΄μνλ€λ κ²μ λλ κ²μ λλ€.
νλ©΄μ μ΄μν μ μ λμΉμ±μ§ λͺ»νκ² λμ΄ μμ±μ μμ£Ό ν° κ°μΌλ‘ μ€μ ν΄μ€λλ€.
μλ url λ³μμ λμ΄ κ°μ μ§μ ν΄μ£Όκ³ μ€νμμΌμ£Όλ©΄
μ΄λ κ² μ€ν¬λ‘€λ μμ°μ€λ½κ² λ΄λ €κ°κ³ , μ΄μ κ³Όλ λ€λ₯΄κ² μ μμ μΈ μΉ νμ΄μ§λ‘ 보μ΄λ€μ.
--> 곡격 μ±κ³΅
λμ λ°©μ
λμ΄λ μμμλ μμ κ°μ κ³΅κ²©μ΄ λ¨Ήνμ§ μμ΅λλ€.. (μ무λ°μμ΄ μμ..)
κ°λ°μ λͺ¨λλ‘ λ€μ΄κ°λ΄λ λμΌν©λλ€..
μ΄μ λ λμ΄λ μμμ κ²°κ³Όλ₯Ό μΆλ ₯νκΈ° μ μ μ°ν λ¨κ³λ₯Ό κ±°μΉκΈ° λλ¬Έμ,
μΉ λΈλΌμ°μ μμ μ λ ₯ λ°μ΄ν°λ₯Ό νκ·Έλ‘ ν΄μνμ§ μμμ μΈλ°μ.
iframei.php νμ΄μ§ μ½λλ₯Ό νμΈν΄λ³΄λ©΄
'λμ΄λ ν'μ λ€λ₯΄κ² 'μ€' κ³Ό 'μ' μμλ ν¨μλ₯Ό μ¬μ©νκ³ μμ΅λλ€.
(xss_check ν¨μλ functions_external.phpμ μ μλμ΄μμ΄μ.)
'λμ΄λ μ€' μ addslashesν¨μλ₯Ό μ΄μ©νμ¬ μ°ννμκ³ ,
'λμ΄λ μ' μμλ htmlspecialchars ν¨μλ‘ μ λ ₯κ°μ μ°ννλ€μ!
νμ injectionκΈλ§λ€ λμ€λ μ΄ ν¨μλ! HTMLμμ μ¬μ©νλ νΉμλ¬Έμλ₯Ό UTF-8λ‘ λ°νν΄μ£Όλ ν¨μμ λλ€.
λ°λΌμ iframe μΈμ μ μ λ§μΌλ €λ©΄ htmlspecialchars ν¨μλ₯Ό μ¬μ©νμ¬ μΉ λΈλΌμ°μ μμ iframe νκ·Έμ μ¬μ©νλ
λ¬Έμλ€μ HTMLνκ·Έλ‘ ν΄μνμ§ μκ² μ λ ₯ λ°μ΄ν°λ₯Ό UTF-8λ‘ μΈμ½λ© ν΄μ£Όλ λ°©λ²μ΄ μμ΅λλ€.