ํ์ดํธํ ์ค์ฟจ 2๊ธฐ - ๋ฌธ์์ง (@anstjwls)
- Django์ QuerySet API์ธ order_by์์ ์ ๋ ฅ๊ฐ์ ๊ฒ์ฆํ์ง ์์, SQL injection์ด ๊ฐ๋ฅ
- DB์ ๋ฒ์ , ํ ์ด๋ธ ์ด๋ฆ ๋ฑ ์ธ๋ถ ๋ด์ฉ๋ค์ ๊ณต๊ฒฉ์๊ฐ ํ์ธํ ์ ์์
docker compose up -d๋ฅผ ์คํํ์ฌ ํ ์คํธ ํ๊ฒฝ์ ์คํ (django 3.2.4๋ฒ์ )your-ip:8000/vuln์ ์ ์ํ์ฌ db ์ ๋ณด ํ์ธpython3 poc.py your-ip:8080/๋ฅผ ํธ์ถํ์ฌ ๋ฐํ ๊ฒฐ๊ณผ๋ฅผ ์ฝ์- SQL ์ธ์ ์ ์ ํตํด ๊ฒฐ๊ณผ์์ "HTTP ์๋ต ๋ณธ๋ฌธ" ์ DB๋ฒ์ ์ ํ์ธํ ์ ์์
SQL injection ๊ณต๊ฒฉ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๋ณด๋ฅผ ๋ ธ์ถ์ํค๊ฑฐ๋ ์กฐ์ํ ์ ์์ผ๋ฉฐ, ์ฌ์ง์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ๋ถ์ ์์คํ ๋ช ๋ น์ด๋ฅผ ์คํํ์ฌ ์์คํ ์ ์์์ํฌ ์๋ ์๋ค. ๋ฐ๋ผ์ ์ ๋ ฅ ์ ํจ์ฑ ๊ฒ์ฌ, ๋งค๊ฐ ๋ณ์ํ๋ ์ฟผ๋ฆฌ ์ฌ์ฉ, ORM(Object-Relational Mapping) ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ ๋ฑ์ ๋ณด์ ์กฐ์น๋ฅผ ์ ์ฉํด์ผ ํ๋ค.