HTML injection-Reflected(Get)๋ฐฉ์์ ์ด์ด์,
์ค๋์ Reflected๊ธฐ๋ฒ ์ค POST๋ฐฉ๋ฒ์ ์ค์ตํด๋ณผ๊ฒ์
์ค์ตํ๋ ๋ชจ๋ ๊ณต๊ฒฉ์ ์ค์ ๋ก ์ฌ์ฉํ์๋ฉด ์๋ฉ๋๋ค.
ํ์ฉ๋ฐ์ง ์์ ์๋น์ค ๋์์ ํดํน์ ์๋ํ๋ ํ๋์ ๊ธ์งํ๋ฉฐ,
๋ชจ๋ ๋ฒ์ ์ฑ
์์ ์ฌ์ฉ์์๊ฒ ์๋ ๊ฒ์ ๋ช
์ฌํด์ฃผ์ธ์.
๋จผ์ ์ฌ์ดํธ์์ HTML injection - Reflected(POST) ํญ๋ชฉ์ ์ ํํด ์ฃผ์ธ์.
๋์ด๋๋ low๋ก ์ง์ ํด์ค๋๋ค.
๋์ด๋ ํ
POST ํ์ด์ง๋ก ๋ค์ด์์ต๋๋ค.
์ ๋ฒ์ ์ค์ตํ GET๋ฐฉ์์ GET๋ฉ์๋๋ก HTTP ์์ฒญ์ ํ์๋ค๋ฉด,
POST๋ฐฉ์์ POST๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ๋๋ฌธ์ ์๋ฒ๋ก ์ ์กํ๋ ๋ณ์ ๊ฐ์ด URL์ ๋
ธ์ถ๋์ง ์์ต๋๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ด๋ฒ ์ค์ต์ ๋ฒํ์ค์ํธ(Burp Suite)๋ฅผ ์ฌ์ฉํ์ฌ ๋ณ์ ๊ฐ์ ์ ๋ฌํด ๋ณด๊ฒ ์ต๋๋ค.
๋จผ์ bee-box์์ ip๋ฅผ ํ์ธํด์ค๋๋ค.
192.168.0.43 ์ ์์ ํด๋ณผ๊ฒ์.
์ ์ ํ ๋ฒํ์ค์ํธ๋ฅผ ์คํ์ํต๋๋ค.
* burp suite์ ํ๋ฝ์(proxy)๊ธฐ๋ฅ์ ๊ธฐ๋ณธ ์ค์ ์ผ๋ก ์์ฒญ ์ธ์
๋ง ๊ฐ๋ก์ฑ๋ค. ์๋ต ์ธ์
๋ ๊ฐ๋ก์ฑ๋ ค๋ฉด
Proxy ํ์ ํญ์ธ "Options"์์ ์๋์ ๊ฐ์ ์ค์ ์ ์์ ํด์ผ ํ๋ค.
๋ค๋ชจ๋ฐ์ค ์์ ์ฒดํฌํด์ผํจ.
์ด์ ์ PC์ ํ๋ก์ ์ค์ ์ ํด์ค๊ฒ์.
๊ฒ์ -> ํ๋ก์
์ฃผ์๋ ๋ก์ปฌ ์ฃผ์๋ก ์ค์ ํด์ฃผ์๊ณ , ํฌํธ๋ฒํธ๋ 8080์ผ๋ก ๋ง์ถฐ์ฃผ์ธ์.
ํ๋ก์ ์ค์ ์ด ๋ค๋์๋ค๋ฉด, ์ผ์ฃผ์ ํ bee-box์์ Go๋ฅผ ํด๋ฆญํด์ฃผ์ธ์.
๊ทธ์ ์ ! ๋ฒํ ์ค์ํธ์ intercept is on/off์ค ๊ผญ on์ผ๋ก ์ผ์ฃผ์
์ผ ํฉ๋๋ค.
์ด๋ ๊ฒ ๋ณด๋ด์ฃผ๋ฉด ํด๋ผ์ด์ธํธ๊ฐ ๋ณด๋ด๋ HTTP์์ฒญ ์ ๋ณด๊ฐ ๋ฒํ์ค์ํธ์์ ๋ณด์
๋๋ค.
๋ฐ์ดํฐ๊ฐ ์กํ๋๋ฐ ๋น์ด์๋ค์, ์ด ๊ณณ์ ์ ๋ฒ GET๋ฐฉ์๋์ ๋์ผํ๊ฒ ํ๊ทธ๋ฅผ ์ ์ด์ค๋๋ค. (๋งค๊ฐ๋ณ์์ ๊ฐ์ ์์ )
์์ ํด์ฃผ๊ณ Forward ๋ฒํผ์ ํด๋ฆญํด์ ์์ฒญ์ ๋ณด๋ด์ค๋๋ค.
๋ฒํ์ค์ํธ๋ฅผ ์ฌ์ฉํ HTML ์ธ์ ์
๊ณต๊ฒฉ์ ๊ฒฐ๊ณผ๋ก ์น ๋ธ๋ผ์ฐ์ ์ h1ํ๊ทธ์ img(์ด๋ฏธ์ง)ํ๊ทธ๊ฐ ์ถ๋ ฅ๋ฉ๋๋ค.
์๋์ ์
๋ ฅํ๋ ํ๊ทธ์ฒ๋ผ ๋ด๋ค๋ฉด ์ฑ๊ณต.
๋์ด๋ ์ค
๋์ด๋๋ฅผ medium์ผ๋ก ๋ณ๊ฒฝํด์ค๋๋ค.
'๋์ด๋ ์ค' ๋ GET๋ฉ์๋ ๋ฐฉ์๊ณผ ๋์ผํ๊ฒ HTML์ธ์ ์
์ ๋ฐฉ์งํ๊ธฐ ์ํด '<'์ '>'๋ฌธ์๋ฅผ ํํฐ๋ง ํฉ๋๋ค.
๋ฐ๋ผ์ HTMLํ๊ทธ์ ์ฌ์ฉํ๋ ๋ฌธ์๋ฅผ ์ธ์ฝ๋ฉํ ํ ์
๋ ฅํด๋ณด๊ฒ ์ต๋๋ค.
์ ๋ฒ๊ณผ ๊ฐ์ด < = %3C, > = %3E๋ก ์ธ์ฝ๋ฉํด๋ณด๊ฒ ์ต๋๋ค.
๋ฐ๋ก Go๋ฅผ ํด๋ฆญํ์ฌ ํ๋ก์๋ฅผ ์ก์์ค๋๋ค.
์๋์ ๊ฐ์ด ์ธ์ฝ๋ฉํ ํ๊ทธ๋ฅผ ์
๋ ฅ ํ Forward๋ฅผ ํด๋ฆญํ์ฌ ์์ฒญ์ ์ ์กํฉ๋๋ค.
๊ทธ๋ฐ๋ฐ ์ฌ์ผ์ธ์ง... ์ธ์ฝ๋ฉํ ํ๊ทธ๋ฅผ ์ ์กํด๋ ์คํ์ด ๋์ง ์๊ณ , ๋ฌธ์์ด์ด ๊ทธ๋๋ก ์ถ๋ ฅ๋์๋ค์.
๊ทธ ์ด์ ๋ฅผ ํ์ธํด๋ณด๊ธฐ ์ํด์ ์น ํ์ด์ง์ 'firstname'์
๋ ฅ๋์ ํ๊ทธ๋ฅผ ์
๋ ฅ ํ ๋ฒํ์ค์ํธ๋ก ์์ฒญ ๊ฐ์ ๊ฐ๋ก์ฑ์
๋ณ์์ ์
๋ ฅํ ํ๊ทธ๋ฅผ ํ์ธํด๋ด
์๋ค.
์ธ์ฝ๋ฉํ ๊ฐ์ ๋ฃ์ด์ฃผ๊ณ Go๋ฅผ ํด๋ฆญํด๋ณด์๋๋
์ด๋ ๊ฒ ๋๋ธ์ธ์ฝ๋ฉ์ด ์ฌ์ฉ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
๋๋ณด๊ธฐ
๋๋ธ ์ธ์ฝ๋ฉ์ด๋?
์ธ์ฝ๋ฉ์ ์ฌ์ฉ๋๋ "%" ๋ฌธ์๋ ์ธ์ฝ๋ฉ์ ํ๋ ๋ฐฉ์์ผ๋ก
"%"๋ฌธ์์ ์ธ์ฝ๋ฉ ๊ฐ์ '%25'์ด๋ค.
์ฆ "<"๋ฌธ์๋ฅผ ์ธ์ฝ๋ฉํ ๊ฐ์ด %3C์ด๋ฉด, ๋๋ธ์ธ์ฝ๋ฉํ ๊ฐ์ %253C๊ฐ ๋๋ค.
์ด๋ฒ์ ๋๋ธ์ธ์ฝ๋ฉ ํ ๊ฐ์๋ฃ๊ณ Forward๋ฅผ ํด๋ฆญํด๋ณด์์ต๋๋ค.
์ ์์ ์ผ๋ก ์ฝ์
ํ ํ๊ทธ๊ฐ ์ถ๋ ฅ๋์์ผ๋ฏ๋ก, '๋์ด๋-์ค' ๋ ์ฑ๊ณต!
๋์ด๋ ์
๋์ด๋ ์ ๋จ๊ณ์์๋ low(๋์ด๋ ํ), midium(๋์ด๋ ์ค) ์ฒ๋ผ ํ๊ทธ๋ฅผ ์
๋ ฅํ์ฌ๋ ๋ฌธ์์ด๋ก ์ถ๋ ฅ์ด ๋ฉ๋๋ค.
๊ทธ ์ด์ ๋ "HTML injection - Reflected(GET)" ๋ฐฉ์๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก, ์ฐํ ๊ณผ์ ์ ๊ฑฐ์น๊ธฐ ๋๋ฌธ์
๋๋ค.
bee-box์ ํฐ๋ฏธ๋๋ก ์ ๊ทผํ์ฌ, htmi_post.php์์ ์์ค ์ฝ๋๋ฅผ ํ์ธํด๋ณด์๋๋,
'xss_check_3' ํจ์๋ฅผ ํตํด์ ์
๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์ฐํํ๊ณ ์๋ค์.
์ด ํจ์๋ Get๋ฐฉ์์์ ์ฐํํ ๋ ์ฐ์๋ ํจ์์ ๊ฐ์ ํจ์๋ก,
htmlspecialchars ํจ์๋ก ์
๋ ฅ ๊ฐ์ ์ฐํํด์ค๋๋ค.
(์ ํจ์์ ๊ดํ ๋ด์ฉ์ HTML์ธ์ ์
-GET์์ ์์ธํ ๋ค๋ค์ผ๋ ์ฐธ๊ณ ํด์ฃผ์ธ์.
https://lucete1230-cyberpolice.tistory.com/60)
๋ฐ๋ผ์! HTML์ธ์ ์
์ ๋ง์ผ๋ ค๋ฉด ์์ ๊ฐ์ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ HTMLํ๊ทธ์ ์ฌ์ฉ๋๋ ๋ฌธ์๋ค์
HTMLํ๊ทธ๋ก ์ธ์๋์ง ์๊ฒ UTF-8๋ก ์ธ์ฝ๋ฉ์ ํด์ฃผ๋ฉด ๋๋ต๋๋ค!
๋ค๋ค ์๊ณ ํ์
จ์ด์ ใ
ใ