[Bee-box] SQL ์ธ์ ์ - GET/Search
- -
์๋ ํ์ธ์ ์ค๋๋ง์ ๋๋์ด ใ ใ bee box๊ธ์ ๊ฒ์ํ๋ค์..ใ ใ
์ค๋ ์ค์ตํ ๊ณต๊ฒฉ์ SQL ์ธ์ ์ ์ผ๋ก
์ธ์ ์ ์ '๊ฝ'์ด๋ผ๊ณ ํ ์ ์์๋งํผ ์ค์ํ ๊ณต๊ฒฉ์ด๋๋๋ค.
IT๋จ๊ณจ ์ด ๊ณต๊ฒฉ. ๋งค์ฐ ๋งค์ฐ ๋งค์ฐ ์ค์ํ ๊ณต๊ฒฉ ์ค ํ๋์ฃ ใ ใ
์ ๊ทธ๋ผ ์ค๋์ SQL ์ธ์ ์ 'GET/Search' ๋ถ๋ถ์ ์ค์ตํด๋ณด๊ณ ์ ์ฒด์ ์ธ
SQL์ธ์ ์ ์ ๊ฐ์๋๋ฅผ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋น ใ ใ
์ค์ตํ๋ ๋ชจ๋ ๊ณต๊ฒฉ์ ์ค์ ๋ก ์ฌ์ฉํ์๋ฉด ์๋ฉ๋๋ค.
ํ์ฉ๋ฐ์ง ์์ ์๋น์ค ๋์์ ํดํน์ ์๋ํ๋ ํ๋์ ๊ธ์งํ๋ฉฐ,
๋ชจ๋ ๋ฒ์ ์ฑ ์์ ์ฌ์ฉ์์๊ฒ ์๋ ๊ฒ์ ๋ช ์ฌํด์ฃผ์ธ์.
๋จผ์ ์์ ์ SQL์ธ์ ์ ์ ์ ์์ ๊ณต๊ฒฉ ๊ฐ์๋๋ฅผ ์์๋ณด๋๋ก ํ ๊ป์.
SQL ์ธ์ ์
SQL์ธ์ ์ ์ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๊ฐ์ ์๋ฒ์์ ๊ฒ์ฆํ์ง ์๊ณ , ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌ ์ผ๋ถ๋ถ์ผ๋ก ์ธ์ํ์ฌ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๋ณด๊ฐ ๋ ธ์ถ๋๊ฑฐ๋ ์ธ์ฆ์ด ์ฐํ๋๋ ์ทจ์ฝ์ ์ ๋งํ๋ค.
SQL์ธ์ ์ ์ ์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ ์ ์๋ ๊ณณ ์ด๋์์๋ ๋ฐ์ํ ์ ์๊ณ , ์ด๋ฅผ ํตํ์ฌ ๊ณต๊ฒฉ์๋
SQL์ฟผ๋ฆฌ๋ฅผ ๋ณ์์ ์ ๋ ฅํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๋ณด๋ฅผ ํ๋ํ๊ฑฐ๋ ์์คํ ๋ด๋ถ๋ฅผ ํ์ ํ ์ ์๋ค.
SQL์ธ์ ์ ๊ณต๊ฒฉ ํ๋ฆ๋
![](https://blog.kakaocdn.net/dn/XUCHb/btqFYYVZn8X/5fA6DYAbAP0gj57wL39DU0/img.png)
์ด์ ๊ณต๊ฒฉ์ ์ค์ตํด๋ณผ๊ป์
๋์ด๋ ํ
![](https://blog.kakaocdn.net/dn/b5RuQt/btqFWAV11Ed/vdxeiv06o2aVG2vKkDKnz0/img.png)
bwapp ์ ์ ํ sql ์ธ์ ์ GET/Search๋ฅผ ๋ค์ด๊ฐ๋ค.
์ ์ํ๋ฉด ๋์ค๋ ํ์ด์ง๋ 'sqli_1.php'
์ด ํ์ด์ง๋ ์ํ ์ ๋ชฉ์ ๊ฒ์ํ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์กฐํํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ฃผ๋ ํ์ด์ง์ด๋ค.
๊ฒ์๋์ด ์์ผ๋ sql ์ธ์ ์ ์ด ๊ฐ๋ฅํ์ง ์์๋ณด๊ธฐ ์ํด ์์๋ฐ์ดํ (') ๋ฅผ ์ ๋ ฅํด์ค๋ค.
![](https://blog.kakaocdn.net/dn/b7ZoDd/btqFZ5UakA2/G2lOWoi74h35a3h10WJtZ1/img.png)
์ ๋ ฅ ๊ฒฐ๊ณผ ์๋์ ์๋ฌ ๋ฉ์ธ์ง๊ฐ ๋ด๋ค.
๋ณ์์ SQL์ธ์ ์ ์ทจ์ฝ์ ์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ SQL ์ค๋ฅ ๋ฉ์ธ์ง๋ฅผ ์ถ๋ ฅํ๋ค.
์์ ๋ฐ์ดํ๋ฅผ ์ ๋ ฅํ๋ ์ด์ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์์ ๋ฐ์ดํ๋ก ๋ฌธ์๋ฐ์ดํฐ๋ฅผ ๊ตฌ๋ถํ๊ธฐ ๋๋ฌธ์ด๋ค.
(๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ ๋ฌธ์๋ฅผ "" ๊ฐ ์๋, '' ๋ก ํํ)
๋ฐ๋ผ์ ์ทจ์ฝ์ ์ด ์กด์ฌํ ๋ ์์๋ฐ์ดํ๋ฅผ ์ ๋ ฅํ๋ฉด ์น ์๋ฒ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ์ ์ง์ํ๋
์ฟผ๋ฆฌ์ ๋ฌธ๋ฒ ์ค๋ฅ๊ฐ ์๊ธด๋ค.
![](https://blog.kakaocdn.net/dn/JUIsQ/btqFWBAG9Es/Cd5VeXHficlwI36ppKDam1/img.png)
๊ตฌ๋ฌธ ์ค๋ฅ ์๋ฌ๊ฐ ๋ด๊ณ , ์ฌ์ฉํ๋ ๋๋น๋ 'MySQL'์ด๋ผ๊ณ ์ ๋ณด๋ฅผ ์ถ๋ ฅํ์๋ค. ์ฆ ์๋ฌ ๋ฉ์ธ์ง๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค
์๋ฒ ์ ๋ณด๋ฅผ ํฌํจํ๋ค.
๋ค์์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ฌ์ฉํ๋ ์ฃผ์์ ์์๋ณด๊ธฐ ์ํด
' or 1=1 --
' or 1=1 #
์ ์ ๋ ฅํด๋ณด๊ณ ์ฃผ์ ๋ฌธ์๋ฅผ ์ฐพ๋๋ค.
( ์ ์ฟผ๋ฆฌ๋ ' ๋ฅผ ํตํด ์์ ๋ฌธ์ฅ์ ๋ซ์์ฃผ๊ณ , or 1=1๋ก ์์ ๋ด์ฉ์ ์๊ด์์ด ๊ฒฐ๊ณผ๋ฅผ ํญ์ ์ฐธ์ผ๋ก ๋ง๋๋ ์ฟผ๋ฆฌ์ด๋ค.)
![](https://blog.kakaocdn.net/dn/8VsAR/btqFZ4AWzZk/gQ91zR5lgiku087OK2kmD0/img.png)
๋์ค bwapp๋ #์ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ์์๋ค.
๋ ์์ธํ ์ ๋ณด๋ฅผ ์์๋ด๊ธฐ ์ํด
UNION SELECT ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๋ค.
UNION ์์๋ณด๊ธฐ โผ
SELECT๋ฌธ์ ์คํํ๋ฉด ๋ฐ์ดํฐ๊ฐ ์กฐํ๋๋ค.
๋ง์ฝ ์ด๋ ๊ฒ ์กฐํํ ์ฌ๋ฌ๊ฐ์ SELECT๋ฌธ์ ๊ฐ์ง๊ณ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณตํ๊ณ ์ถ๋ค๋ฉด ์งํฉ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
์งํฉ์ฐ์ฐ์๋ SELECT๋ฌธ ํ์ฉํ์ฌ ์กฐํํ ๋ฐ์ดํฐ๋ฅผ ์ฐ์ฐํ๋ ์ฐ์ฐ์์ด๋ค.
๊ทธ์ค UNION์ ํฉ์งํฉ์ ๋ํ๋ด๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ ์งํฉ ์ฐ์ฐ์ ์ด๋ค.
(๋ํ๊ธฐ๋ ๋น์ทํ ๊ฐ๋ ์ด๋ผ๊ณ ์ดํดํ์ ๋ ๋ฉ๋๋ค.)
ํฉ์งํฉ์ ์ค๋ณต๋๋ ๋ถ๋ถ์ ํ๋ฒ๋ง. ์ถ๋ ฅ ํ๋ ๋ฐฉ๋ฒ์ธ
UNION ์ด ์๊ณ ,
์ค๋ณตํ๋ ๋ถ๋ถ๊ณผ ๊ด๊ณ์์ด ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํ๋ (์ค๋ณต ์ ๊ฑฐ X)
UNION ALL ์ด ์๋ค.
์ค๋ณต ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ์กฐํํ๊ณ ์ถ๋ค๋ฉด ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ๋๋ค.
SELECT๋ฌธ์ ์คํํ๋ฉด ๋ฐ์ดํฐ๊ฐ ์กฐํ๋๋ค.
๋ง์ฝ ์ด๋ ๊ฒ ์กฐํํ ์ฌ๋ฌ๊ฐ์ SELECT๋ฌธ์ ๊ฐ์ง๊ณ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณตํ๊ณ ์ถ๋ค๋ฉด ์งํฉ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
์งํฉ์ฐ์ฐ์๋ SELECT๋ฌธ ํ์ฉํ์ฌ ์กฐํํ ๋ฐ์ดํฐ๋ฅผ ์ฐ์ฐํ๋ ์ฐ์ฐ์์ด๋ค.
๊ทธ์ค UNION์ ํฉ์งํฉ์ ๋ํ๋ด๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ ์งํฉ ์ฐ์ฐ์ ์ด๋ค.
(๋ํ๊ธฐ๋ ๋น์ทํ ๊ฐ๋ ์ด๋ผ๊ณ ์ดํดํ์ ๋ ๋ฉ๋๋ค.)
ํฉ์งํฉ์ ์ค๋ณต๋๋ ๋ถ๋ถ์ ํ๋ฒ๋ง. ์ถ๋ ฅ ํ๋ ๋ฐฉ๋ฒ์ธ
UNION ์ด ์๊ณ ,
![](https://blog.kakaocdn.net/dn/egbCDI/btqFZxQ8aaW/tzfBBCsPDsGpgqanzHu4W1/img.png)
์ค๋ณตํ๋ ๋ถ๋ถ๊ณผ ๊ด๊ณ์์ด ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํ๋ (์ค๋ณต ์ ๊ฑฐ X)
UNION ALL ์ด ์๋ค.
์ค๋ณต ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ์กฐํํ๊ณ ์ถ๋ค๋ฉด ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ๋๋ค.
![](https://blog.kakaocdn.net/dn/Dv6os/btqFY0e96Dm/EuGjQLiCf94AAKyudW6ilK/img.png)
UNION์ SELECT ๋ฌธ์ด ๋ ์ด์์ผ ๋ ์ด๋ฅผ ๊ฒฐํฉํ์ฌ ๋ ์ง์์ ๊ฒฐ๊ณผ๋ฅผ ํ๋๋ก ๋ฐํํ๋ค.
๋ณธํ์ด์ง ์์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํน์ ๋ด์ฉ์ ์ถ๋ ฅํ๋ ๊ธฐ์กด ์ฟผ๋ฆฌ๊ฐ ์๊ธฐ ๋๋ฌธ์
SQL์ธ์ ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์ฉ์ ํ์ ํ๋ ค๋ฉด ๋์ด์์ SELECT ๋ฌธ์ ๊ฒฐํฉํ๋ UNION ๊ตฌ๋ฌธ์ด ํ์ํ๋ค.
์ด๋ ๊ฒ UNION SELECT ๊ตฌ๋ฌธ์ ์ด์ฉํ์ฌ SQL์ธ์ ์ ์ ์๋ํ๋ ๊ณต๊ฒฉ ์ ํ์
'UNION Based SQL ์ธ์ ์ ' ์ด๋ผ๊ณ ํ๋ค.
(๊ทธ์ธ์๋ ๋ง์ SQL์ธ์ ์ ์ ํ์ด ์กด์ฌํ๋, ๊ทธ์ค ํนํ ์ค์ํ ๊ฒ์ ๊ฐ์กฐํ์ฌ ์ค๋ช ํ๋๋ก ํ ๊ป์)
UNION ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๋ ค๋ฉด ์ด์ ์ฟผ๋ฆฌ์์ ์ฌ์ฉํ๋ SELECT ๋ฌธ์ ์นผ๋ผ(Column) ์๊ฐ ์ผ์นํด์ผ ํ๋ค.
* ์นผ๋ผ ์ ์ผ์น
* ๋ฐ์ดํฐ ํ์ ์ญ์ ๊ฐ ์ด ๋จ์๋ก ๊ฐ๊ฑฐ๋ ์๋ก ํธํ๋๋ ๋ฐ์ดํฐ ํ์์ด์ด์ผ ํ๋ค.
์ด๋ ๋ ์ง์์ ๊ฒฐ๊ณผ๋ฅผ ํ๋์ ํ ์ด๋ธ๋ก ํฉ์น๊ธฐ ๋๋ฌธ์ด๋ค.
์นผ๋ผ์ ํ๋๋ง ์ถ๊ฐํ ๊ฒฝ์ฐ ์นผ๋ผ ์๊ฐ ์ผ์นํ์ง ์๋๋ค๋ ์ค๋ฅ ๋ฉ์ธ์ง๊ฐ ๋ํ๋๊ณ ,
์ด ์ค๋ฅ ๋ฉ์ธ์ง๊ฐ ๋์ค์ง ์์ ๋๊น์ง ์นผ๋ผ ์๋ฅผ ๋๋ ค ํ์ด์ง์ ๊ฒฐ๊ณผ๊ฐ ์ฐธ์ด ๋๋์ง ํ์ธํด์ผ ํ๋ค.
** UNION๋ฌธ์ ์ฑ๊ณต ํ๊ธฐ ์ํด์ , ์นผ๋ผ ์๋ฅผ ๋ง์ถฐ ์ฑ๊ณต ํ ๊ณต๊ฒฉ ์๋๋ฅผ ํด์ผ ํ๋ค. **
![](https://blog.kakaocdn.net/dn/cEBbw1/btqFWdtgY0b/tYLp0QB6CRnikJZYeafWs0/img.png)
์นผ๋ผ ์๊ฐ ๋ค๋ฅด๋ฉด ์์ ๊ฐ์ ์๋ฌ๊ฐ ๋น๋๋ค^_^.
![](https://blog.kakaocdn.net/dn/btyOk9/btqFZx4FqJY/7sKqG3hey7Uq3Y0c8nJk7K/img.png)
๊ฐฏ์๋ฅผ ํ๋๊ฐ์ฉ ์ถ๊ฐํ๋ค๋ณด๋ฉด ๊ฒฐ๊ณผ๊ฐ ์ฐธ์ด ๋๋ ๊ฒฝ์ฐ๊ฐ ์๊ธฐ๋๋ฐ์, 7๊ฐ์ ์นผ๋ผ์ ๋ฃ์ผ๋ ๊ฒฐ๊ณผ ๊ฐ์ด ์ถ๋ ฅ ๋๋ค์.
(ALL ์ ์จ์ค ์ด์ ๋ ์ค๋ณต์ ํ์ฉํ์ฌ ๋ชจ๋ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๊ธฐ ์ํจ์ ๋๋ค.)
์ฆ sqli_1.php ํ์ด์ง์์ ํธ์ถํ๋ ์นผ๋ผ ์๋ ์ด 7๊ฐ ์ด๋ค์.
์ด์ ๊ณต๊ฒฉ์ ์๋ํด๋ณผ ์ ์๋๋ฐ์.
ํ์ด์ง์ ๋ ธ์ถ๋๋ ์นผ๋ผ์ 2,3,4,5 ๋ฒ์ ์์นํ ์นผ๋ผ์ด๊ธฐ ๋๋ฌธ์
๊ฒฐ๊ณผ๊ฐ ๋ณด์ด๋ ์นผ๋ผ์ ์์คํ ๋ณ์๋ฅผ ๋ฃ์ด์ฃผ์ด, ์ ๋ณด๋ฅผ ํ์ทจํด๋ณด๊ฒ ์ต๋๋ค.
SQL์ธ์ ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๋ณด๋ฅผ ํ์ ํ ์ ์๋ ๋ณ์์ ํจ์ โผ
database() : ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ช ์ ์๋ ค์ฃผ๋ ํจ์
user() : ํ์ฌ ์ฌ์ฉ์์ ์์ด๋
system_user() : ์ต๊ณ ๊ถํ ์ฌ์ฉ์์ ์์ด๋
@@version : ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ์ ๋ฒ์ ( version() ๋ ์ฌ์ฉ๊ฐ๋ฅํฉ๋๋ค)
@@datadir : ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ๊ฐ ์กด์ฌํ๋ ๋๋ ํฐ๋ฆฌ
database() : ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ช ์ ์๋ ค์ฃผ๋ ํจ์
user() : ํ์ฌ ์ฌ์ฉ์์ ์์ด๋
system_user() : ์ต๊ณ ๊ถํ ์ฌ์ฉ์์ ์์ด๋
@@version : ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ์ ๋ฒ์ ( version() ๋ ์ฌ์ฉ๊ฐ๋ฅํฉ๋๋ค)
@@datadir : ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ๊ฐ ์กด์ฌํ๋ ๋๋ ํฐ๋ฆฌ
0' union select all 1,version(),user(),database(),5,6,7#
๋ฅผ ๋ฃ์ด์ค ๊ฒฐ๊ณผ! ์๋์ ๊ฐ์ ํ๋ฉด์ด ์ถ๋ ฅ ๋์์ต๋๋ค.
์ด๋ก์จ MySQL์ ๋ณด์ ํ์ฌ ์ฌ์ฉ์์ ์์ด๋, ๊ทธ๋ฆฌ๊ณ ํ์ฌ ์ฌ์ฉํ๊ณ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ์ด ์ถ๋ ฅ๋์๋ค์.
![](https://blog.kakaocdn.net/dn/bcWCMF/btqFWcA6huf/Z2RARVSQqrxbmuj974Xc21/img.png)
์ด์ ์๋ฒ์ ์กด์ฌํ๋ ๋ชจ๋ ํ ์ด๋ธ ๋ช ์ ์ถ๋ ฅํด๋ณด๋ ค ํฉ๋๋ค.
์ด๋ ์ด์ฉํ ์คํค๋ง ๋ช ์ด ๋ฐ๋ก, information_schema ๋ผ๋ ์คํค๋ง ์ธ๋ฐ์
์ ์ ์ด ์คํค๋ง์ ๋ํด ์์๋ณด๊ณ , ๊ตฌ์กฐ๋ฅผ ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๊ธ์ด ๋๋ฌด ๊ธธ์ด์ง ๊ฒ ๊ฐ์์ ์๋ ์ฃผ์์ ๋ฐ๋ก ์ ์ํด๋๋๋ก ํ๊ฒ ์ต๋๋ค.
https://lucete1230-cyberpolice.tistory.com/81
์ ์ฃผ์์ information_schema์, ๋ฉํ๋ฐ์ดํฐ์ ์ ์, DataBase์ ์ ์๋ฅผ ๋ช ์ํด๋์์ผ๋,
์ฐธ๊ณ ํด์ฃผ์ธ์~
์ด์ด์ ์ค๋ช ๋๋ฆฌ๊ฒ ์ต๋๋ค.
SQL์ธ์ ์ ๊ฒฐ๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ์ ์กด์ฌํ๋ ๋ชจ๋ ํ ์ด๋ธ ๋ช ์ ์ถ๋ ฅ ์ํค๋ ค๋ฉด ์๋ ์ฟผ๋ฆฌ๋ฌธ์ ์ ๋ ฅํ๋ค.
> 0'union select all 1,table_name,3,4,5,6,7 from information_schema.tables #
(0์ ์จ์ฃผ๋ ์ด์ ๋ union select ๋ฌธ์์๋ ๋ฑํ ์๊ด์ด ์๋ ๊ฑธ๋ก ์๊ณ ๋ ์๋๋ฐ,
bwapp์์๋ 0์ ์์จ์ฃผ๋ฉด ์ํ๋ ๋ฌธ์ฅ ์ธ์ ๊ฒ๋ ํจ๊ป ์ถ๋ ฅ์ด ๋๊ธธ๋ ๊ผญ 0์ ํจ๊ป ์จ์ฃผ์์ต๋๋ค.)
์์์ ๋ง์๋๋ฆฐ ๊ฒ ์ฒ๋ผ
0์ ์ฐ์ง์์ผ๋ฉด ์๋์ ๊ฐ์ด ์ถ๋ ฅ์ด ๋ฉ๋๋ค.
์๋ฒ์ ์กด์ฌํ๋ ๋ชจ๋ ํ ์ด๋ธ๋ ์ถ๋ ฅ์ด ๋์ง๋ง, ์์์ ์ถ๋ ฅํ๋ ๊ฒ์ ๊ฐ๋ฅํ ๋ชจ๋ ์ํ ์ ๋ชฉ์ด ํจ๊ป
์ถ๋ ฅ๋๋๊ตฐ์
์๋๋ 0์ ์จ์คฌ์ ๋ ์ ๋๋ค. ๋ฑ ์ํ๋ ๊ฒฐ๊ณผ๋ง ๋์ค๋ค์!
์์์ ๋ง์๋๋ฆฐ ๊ฒ ์ฒ๋ผ
0์ ์ฐ์ง์์ผ๋ฉด ์๋์ ๊ฐ์ด ์ถ๋ ฅ์ด ๋ฉ๋๋ค.
์๋ฒ์ ์กด์ฌํ๋ ๋ชจ๋ ํ ์ด๋ธ๋ ์ถ๋ ฅ์ด ๋์ง๋ง, ์์์ ์ถ๋ ฅํ๋ ๊ฒ์ ๊ฐ๋ฅํ ๋ชจ๋ ์ํ ์ ๋ชฉ์ด ํจ๊ป
์ถ๋ ฅ๋๋๊ตฐ์
![](https://blog.kakaocdn.net/dn/NqxAY/btqFWYvFUMs/cbX16o1Mw9k2UrhFDKgzd1/img.png)
์๋๋ 0์ ์จ์คฌ์ ๋ ์ ๋๋ค. ๋ฑ ์ํ๋ ๊ฒฐ๊ณผ๋ง ๋์ค๋ค์!
![](https://blog.kakaocdn.net/dn/HxwiI/btqFWdGNFOC/ZT4GE1ViqCXkulrqy4S8g1/img.png)
์๋ฒ์ ์กด์ฌํ๋ ๋ชจ๋ ํ ์ด๋ธ์ด ์ถ๋ ฅ๋์๋๋ฐ,
์ฌ๊ธฐ์ ์ถ๋ ฅ๋ ํ ์ด๋ธ ๋ช ์ค users ํ ์ด๋ธ์ ์ฌ์ฉ์์ ๊ณ์ ์ ๋ณด๊ฐ ๋ค์ด์๋ค๊ณ ์ถ์ธก์ ํ ์๊ฐ ์์ต๋๋ค.
![](https://blog.kakaocdn.net/dn/UY149/btqFXhaGprF/CKTpHEhZugSdxw6qwQZvVK/img.png)
๋ฐ๋ผ์ users ํ ์ด๋ธ์ ์นผ๋ผ๋ช ์ ์์๋ด๊ธฐ ์ํ์ฌ where์ ๋ก users ํ ์ด๋ธ ์ ๋ณด๋ง ์ถ๋ ฅํ๊ฒ๋
์กฐ๊ฑด์ ์ง์ ํด ์ค๋๋ค.
์ฟผ๋ฆฌ๋ฌธ > 0' union select all 1,column_name,3,4,5,6,7 from information_schema.columns where table_name='users' #
(์ถ์ธก๋ง์ผ๋ก ์๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ๋์ ์กด์ฌ ํ ํ ๋! ์ฌ๋งํ๋ฉด 4๋จ๊ณ๋ฅผ ๊ฑฐ์ณ ๊ณต๊ฒฉ์ ํฉ๋๋ค.)
1๋จ๊ณ = Database ์ด๋ฆ ์๊ธฐ
2๋จ๊ณ = table ์ด๋ฆ์๊ธฐ
3๋จ๊ณ = column ์ด๋ฆ์๊ธฐ
4๋จ๊ณ = ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ
1๋จ๊ณ = Database ์ด๋ฆ ์๊ธฐ
2๋จ๊ณ = table ์ด๋ฆ์๊ธฐ
3๋จ๊ณ = column ์ด๋ฆ์๊ธฐ
4๋จ๊ณ = ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ
์ด๋ ๊ฒ ์ฟผ๋ฆฌ๋ฌธ์ ๋ ๋ฆฌ๋ฉด usersํ ์ด๋ธ์ ์นผ๋ผ ๋ช ๋ค์ ์ถ๋ ฅ ํฉ๋๋ค.
![](https://blog.kakaocdn.net/dn/bsxV7N/btqFYZAyLjj/kuJrsRnFRHWoQfQPQC6bv0/img.png)
์นผ๋ผ๋ช ์ผ๋ก id, login, password ๋ฑ์ด ์๋ ๊ฒ์ผ๋ก ๋ณด์ ๊ณ์ ์ ๋ณด์ ๊ด๋ จ์ด ์์ผ๋ฏ๋ก
์ฌ์ฉ์ ๊ณ์ ์ ๋ณด๊ฐ ๋ค์ด์์ ๊ฐ๋ฅ์ฑ์ด ํฌ๋ค๋ ๊ฒ์ ์ ์ ์์ฃ
์นผ๋ผ ๋ด์ฉ์ ํ์ธํ๋ ค๋ฉด ํ์ด์ง์ ๋ ธ์ถ๋๋ ์นผ๋ผ ์์์ ๋ง์ถฐ, ํ์ธํ๊ณ ์ถ์ ์นผ๋ผ๋ช ์ ์ ๋ ฅํ๋ฉด ๋ฉ๋๋ค.
ํ์ฌ ํ์ด์ง์ ๋ ธ์ถ๋์ด์๋ ๋ฒํธ๋ 2,3,4,5 ๋ฒ์ผ๋ก 4๊ฐ์ง์ฉ ์ ๋ณด๋ฅผ ํ์ธ ํ ์ ์๊ฒ ๋ค์.
![](https://blog.kakaocdn.net/dn/JNC7h/btqFWBUYGhm/iJdlQ1WrhUYvHCepaEz4SK/img.png)
์ฟผ๋ฆฌ๋ฌธ > 0' union select all 1,id,login,password,email,6,7 from users#
sql์ธ์ ์ ๊ฒฐ๊ณผ
id์นผ๋ผ = ํ์์์, login ์นผ๋ผ = ์์ด๋, password์นผ๋ผ = ๋น๋ฐ๋ฒํธ ํด์๊ฐ ๋ฑ.. ์ ์ ์ฅํ ๊ฒ์ ์ ์ ์๋ค.
ํ์ด์ง์ ๋ ธ์ถ๋ ์นผ๋ผ ์๋ณด๋ค ํ์ธํ๋ ค๋ ์นผ๋ผ ์๊ฐ ๋ง์ ๋ "concat" ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์นผ๋ผ ๋ช ์ ์ธ์๋ก
์ ๋ ฅํ๋ฉด ์ฌ๋ฌ ์นผ๋ผ์ ๋ด์ฉ์ ๋ณผ ์ ์๋ค.
![](https://blog.kakaocdn.net/dn/801cm/btqFZi7JHQD/lgAeJF1w1iwPIXAGQHxVz1/img.png)
์ฟผ๋ฆฌ๋ฌธ > 0' union select all 1,concat(id,login),concat(password,email),4,5,6,7 from users#
์ฟผ๋ฆฌ๋ฌธ์ ๋ ๋ฆฌ๊ณ , ์ํ๋ ์ ๋ณด๊ฐ ๋ ธ์ถ๋๋ฉด
SQL์ธ์ ์ ์ฑ๊ณต
์ค์ต ๊ฟํ โผ
์ ์ฐธ๊ณ ๋ก ์ ๋ ํ ์ด๋ธ์ ๋์ผ๋ก ์ง์ ํ์ธํด ๊ฐ๋ฉด์ ๊ณต๊ฒฉ์ ์ค์ตํ์ต๋๋ค.
ํ๋ฆฌ๊ฒ ์ถ๋ ฅ๋๋ ๋ถ๋ถ๋ ๋ฐ๋ก๋ฐ๋ก ๋์ผ๋ก ํ์ธ ๊ฐ๋ฅํ๊ณ , ํ ์ด๋ธ ๊ตฌ์กฐ๋ ํ๋์ ํ์ ์ด ๋์ ํจ์ฌ
์ค์ต์ ๋์์ด ๋ง์ด ๋๋ ๊ฒ ๊ฐ์์! (putty๋ฅผ ์ด์ฉํ ์๊ฒฉ ์ ์)
information_schema ๊ตฌ์กฐ์ bWAPP๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉด์ ์ฌ๋ฌ ๋ฐฉ๋ฒ์ผ๋ก ์๋ํด๋ณผ ์ ์์ด์!
๋๋์ moviesํ ์ด๋ธ ์์ ์์ ๊ฒ ๊ฐ์ฅฌ ใ ใ
ํ์ธํด๊ฐ๋ฉฐ ์ค์ตํ๋ฉด ๋ ๊ธฐ์ต์ ์ค๋ ๋จ๋ ๊ฒ ๊ฐ์์ !
์ ์ฐธ๊ณ ๋ก ์ ๋ ํ ์ด๋ธ์ ๋์ผ๋ก ์ง์ ํ์ธํด ๊ฐ๋ฉด์ ๊ณต๊ฒฉ์ ์ค์ตํ์ต๋๋ค.
ํ๋ฆฌ๊ฒ ์ถ๋ ฅ๋๋ ๋ถ๋ถ๋ ๋ฐ๋ก๋ฐ๋ก ๋์ผ๋ก ํ์ธ ๊ฐ๋ฅํ๊ณ , ํ ์ด๋ธ ๊ตฌ์กฐ๋ ํ๋์ ํ์ ์ด ๋์ ํจ์ฌ
์ค์ต์ ๋์์ด ๋ง์ด ๋๋ ๊ฒ ๊ฐ์์! (putty๋ฅผ ์ด์ฉํ ์๊ฒฉ ์ ์)
![](https://blog.kakaocdn.net/dn/bweVho/btqFXhBEzm8/FqL9aKLe3lfd8vP1p7XcX1/img.png)
information_schema ๊ตฌ์กฐ์ bWAPP๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉด์ ์ฌ๋ฌ ๋ฐฉ๋ฒ์ผ๋ก ์๋ํด๋ณผ ์ ์์ด์!
![](https://blog.kakaocdn.net/dn/dCZy9o/btqFWdUnMyK/cPFSOLCO7uKyhzlGy7Au11/img.png)
๋๋์ moviesํ ์ด๋ธ ์์ ์์ ๊ฒ ๊ฐ์ฅฌ ใ ใ
![](https://blog.kakaocdn.net/dn/XtGhD/btqFWZH6Bwz/cuiGkssTkE4DZoTxXcSMq0/img.png)
ํ์ธํด๊ฐ๋ฉฐ ์ค์ตํ๋ฉด ๋ ๊ธฐ์ต์ ์ค๋ ๋จ๋ ๊ฒ ๊ฐ์์ !
๋์๋ฐฉ์
์์๋ฐ์ดํ๋ฅผ(') ์ ๋ ฅ ํ์์ ๋ ์ค๋ฅ ๋ฉ์ธ์ง๊ฐ ๋จ๋ ๊ฒ์ผ๋ก ๋ถํฐ SQL์ธ์ ์ ์ ์ทจ์ฝํ๋ค๊ณ ํ ์ ์๋ค.
์ฆ ์ค๋ฅ ๋ฉ์ธ์ง๊ฐ ๋์ค์ง ์์ผ๋ฉด SQL์ธ์ ์ ์ด ๋ถ๊ฐ๋ฅ ํ๋ค.
sqli_1.php ์์ค์ฝ๋๋ฅผ ์ดํด๋ณด๋ฉด ์๋์ ๊ฐ์ด
๋์ด๋ ํ ์์๋ (case "0") ์ฒดํฌ๋ฅผ ํ์ง ์์ง๋ง, ๋์ด๋ ์ (case "2") ์์๋ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ
'sqli_check_2' ํจ์๋ก ์ฐํ ํ๊ณ ์๋ ๊ฒ์ ์ ์ ์๋ค.
![](https://blog.kakaocdn.net/dn/FXDBO/btqFW0trpX0/chq4ohD0dpNyMurXa3ndkK/img.png)
sqli_check_2 ํจ์๋ functions_external.php์ ์ ์๋์ด ์๋ค.
์ ์๋์ด ์๋ ์์น๋ฅผ ํ์ธํด๋ณด๋ฉด, ์๋์ ๊ฐ์ด ์ฝ๋๊ฐ ์ง์ฌ์๋ค.
![](https://blog.kakaocdn.net/dn/1hxdX/btqFWBm6IBg/rmgvFBZ8ucsrvyS4MEwsz0/img.png)
sqli_check_2๋ "mysql_real_escape_string" ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ ฅํ ๋ฐ์ดํฐ๋ฅผ ์ฐํํ๊ณ ์๋ค.
mysql_real_escape_string ?
PHP์์ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณตํ๋ ํจ์๋ก, ์ฌ์ฉ์ ์ ๋ ฅ ๊ฐ์ SQL ๋ฌธ๋ฒ์์ ์ฌ์ฉํ๋ ํน์ ๋ฌธ์๊ฐ ์์ ๊ฒฝ์ฐ
๋ฐฑ์ฌ๋์๋ฅผ ๋ถ์ฌ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ SQL๋ฌธ๋ฒ์ผ๋ก ์ธ์ํ์ง ์๋๋ก ๋ฐฉ์ดํ๋ค.
์ฌ๊ธฐ์ ์ฐํํ๋ ๋ฌธ์๋ 'NULL, \n, \r, \, ', ", ^Z' ์ด๋ฏ๋ก ์์๋ฐ์ดํ(')๋ฅผ ์ ๋ ฅํ๋ฉด ๋ฐฑ์ฌ๋์๊ฐ ๋ถ์ด SQL์ฟผ๋ฆฌ๋ก ์ธ์ํ์ง ์๋๋ค.
์ฆ ์ด ํจ์๋ฅผ ์ด์ฉํ์ฌ, SQL์ธ์ ์ ์ ๋ง์ ์ ์๋ค.
'Game > Bee-box' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Bee-box] SQL ์ธ์ ์ - GET/Select (0) | 2020.07.24 |
---|---|
[Bee-box] SQL ์ธ์ ์ - POST/Search (0) | 2020.07.24 |
INFORMATION_SCHEMA ์์๋ณด๊ธฐ (0) | 2020.07.23 |
[Bee-box] ๊ธฐํ ์ธ์ ์ ๊ณต๊ฒฉ- SSI ์ธ์ ์ (1) | 2020.07.21 |
์์คํ ๊ณต๊ฐ ๊ฐ์ฌํฉ๋๋ค