[Webhacking.kr] old-39
October 23, 2025


$_POST[โidโ] = str_replace(โ\โ,โโ,$_POST[โidโ]); $_POST[โidโ] = str_replace(โโโ,โโโโ,$_POST[โidโ]); $_POST[โidโ] = substr($_POST[โidโ],0,15); ์ด ๋ถ๋ถ์ ์ดํด๋ณด๋ฉด, ๋ฐฑ์ฌ๋์๋ฅผ ์์ ๊ณ โ๋ฅผ โโ, ์ฆ ์์ ๋ฐ์ดํ๊ฐ ์์ผ๋ฉด ๋ ๊ฐ๋ก ๋ฐ๊ฟ์ค ๋ค 15๊ธ์๋ก ์๋ผ๋ธ๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ ์ฃผ์ด์ง SQL๋ฌธ select 1 from member where length(id)<14 and id=โ{$_POST[โidโ]} ์ ์ดํด๋ณด๋ฉด id=โ ์ฌ๊ธฐ ๋ง์ง๋ง์ ์์ ๋ฐ์ดํ๊ฐ ๋น ์ ธ์๋ค. ๊ทธ๋ผ โ๋ก ์์ํ๋ SQL๋ฌธ์ ์ ๋ ฅํด SQL Injection์ ํ ์ ์์ ๊ฒ์ด๋ค.
๊ทธ๋ฆฌ๊ณ ์ฑ๊ณต ์กฐ๊ฑด์ธ $result[0] == 1์ด ๋ ๋ ค๋ฉด DB์ length(id)<14์ธ ๋ ์ฝ๋๊ฐ ์กด์ฌํด์ผ ํ๊ณ , ๊ทธ ๋ ์ฝ๋์ id์ ์ ๋ ฅ๊ฐ์ด ์ผ์นํด์ผ ํ๋ค. admin์ ์ ๋ ฅํด ๋ณด๋ ๊ฒ ๊ตญ๋ฃฐ์ธ๋ฐ, ์กฐ๊ฑด์ ๋ง์กฑํ๋ฉด์ ์ ๋ ฅํด์ผ ํ๋ค. ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด ํ์ํ ์ฌ์ ์ง์์ mysql์์๋ ๋ฌธ์์ด ๋น๊ต๋ฅผ ํ ๋ ๋์ ๊ณต๋ฐฑ์ด ์ถ๊ฐ๋ก ๋ถ์ด๋ ๊ฐ์ ๋ฌธ์๋ก ์ธ์ํ๋ค๋ ๊ฒ์ด๋ค. ๊ทธ๋ผ admin____โ (_๋ ๊ณต๋ฐฑ์ ๋ํ๋) ์ด๋ ๊ฒ ์ ๋ ฅํ๋ฉด ๋ฐ์ดํ๊ฐ ๋ณํ๋์ด admin____โโ ์ด๋ ๊ฒ ์ ๋ ฅ์ด ๋ ๊ฒ์ด๋ค. ๊ทธ๋ผ ์ ์ฒด SQL๋ฌธ์ select 1 from member where length(id)<14 and id=โadmin โโโ MYSQL์ id=โadminโโโ, โadmin โ + โโ ์ด๋ผ๊ณ ํด์ํ๊ฒ ๋๋ค.
๊ฝค ์ด๋ ค์ ์.