waffle 2021. 9. 13. 17:58
728x90

sql query & PHP code

query๊ฐ’์„ ํ†ตํ•ด ๋ฐ›์•„์˜ค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•˜์—ฌ sql query๋กœ ๋งŒ๋“ค์–ด db์— ๋ช…๋ น์„ ๋‚ด๋ฆฌ๋Š” php ์ฝ”๋“œ์ด๋‹ค.

 

PHP ๋ถ„์„


์•ž์„  Gremlin ๋ฌธ์ œ์™€ ํ•„ํ„ฐ๋ง ์ฝ”๋“œ์— ํฐ ์ฐจ์ด๋Š” ์—†์—ˆ๋‹ค. ๋‹ค๋งŒ ํŠน์ • id๊ฐ€ ๋‚˜์˜ค๋Š” ์ƒํ™ฉ์—์„œ๋งŒ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค๊ณ  ํ‘œ์‹œํ•˜๋Š” ์ ์„ ๋ฏธ๋ฃจ์–ด ๋ณผ ๋•Œ, ํ•ด๋‹น ๊ฐ’์„ ๊ฐ€์ง„ ๊ณ„์ •์„ query ์‹คํ–‰ ๊ฒฐ๊ณผ ๋ณด์—ฌ์ฃผ๊ธฐ๋งŒ ํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™์•˜๋‹ค. ๋”ฐ๋ผ์„œ ์•ž๋ฌธ์ œ์ฒ˜๋Ÿผ idํ•„๋“œ๋ฅผ ๋น„์šฐ๊ณ  OR๋กœ ๋ฌดํ•„ํ„ฐ๋ง ํ†ต๊ณผ๋ฅผ ์‹œํ‚ค๋Š” ๋Œ€์‹ , admin ๊ณ„์ •๋งŒ ํ•„ํ„ฐ๋ง์‹œํ‚จ ๋’ค md5๋กœ ์•”ํ˜ธํ™”ํ•˜์—ฌ ๊ฐ’์„ ๋น„๊ตํ•˜๋Š” ํ›„๋ฐ˜๋ถ€ ๊ฐ’์„ ๋ฌด์‹œ์‹œํ‚ค๋ฉด Inejction์ด ๊ฐ€๋Šฅํ•  ๊ฒƒ ๊ฐ™๋‹ค.

 

 

Injection


๋”ฐ๋ผ์„œ ์ฒ˜์Œ ์‹œ๋„ํ•œ Injection Code๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค:

 

admin'#

์ •์ƒ์ ์œผ๋กœ admin ๊ฐ’์„ ์ฐพ๊ฒŒํ•œ ํ›„, ๋’ค์— #์„ ๋ถ™์—ฌ ๋’ท ์ฝ”๋“œ๋ฅผ ๋ชจ๋‘ ๋ฌดํšจํ™”์‹œ์ผฐ๋‹ค.

 

์ดํ›„ ํ™•์ธํ•œ ๋ชจ๋ฒ” Injection Code๋„ ๋™์ผํ–ˆ๋‹ค.

 

How to Defence


 

์ƒ๊ฐํ•ด๋ณธ ๋ฐฉ๋ฒ•๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. (์‚ฌ์‹ค ์ด์ „ ๋ฌธ์ œ์—์„œ ์ƒ๊ฐํ–ˆ๋˜ ๋ฐฉ์–ด๋ฐฉ๋ฒ•๊ณผ ๋™์ผํ•˜๋‹ค):

 

1. %์ด๋‚˜ #๊ฐ’์œผ๋กœ ๊ฐ’์ด ๋“ค์–ด์˜ค๋ฉด ์š”์ฒญ ์ž์ฒด๋ฅผ ์ทจ์†Œ

SQL Injection์€ ๋Œ€๋ถ€๋ถ„ query ๋ณ€์กฐ๋ฅผ ํ†ตํ•ด ๋“ค์–ด์˜ค๊ธฐ ๋•Œ๋ฌธ์—, query์— ํŠน์ˆ˜๋ฌธ์ž๋ฅผ ์ž…๋ ฅํ•˜๊ธฐ์œ„ํ•ด ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ %๋ฌธ์ž๋ฅผ ์• ์ดˆ์— ๋ง‰๋Š”๋‹ค. ๋˜ํ•œ ์ฟผ๋ฆฌ๋ฌธ ์ฃผ์„์„ ์œ ๋„ํ•˜๋Š” #๋ฌธ์ž ๋˜ํ•œ ๊ธˆ์ง€์‹œ์ผœ ์˜๋„ํ•œ ์ฝ”๋“œ์˜ ์‹คํ–‰์ค‘๋‹จ์„ ๋ฐฉ์ง€ํ•œ๋‹ค. ๋‹ค๋งŒ ์ด ๋ฐฉ๋ฒ•์„ ์œ„ํ•ด์„œ๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ๋‚˜ ์•„์ด๋””์— %๋ฌธ์ž์™€ #๋ฌธ์ž ์ž…๋ ฅ์„ ๊ธˆ์ง€์‹œ์ผœ์•ผ ํ•œ๋‹ค.

 

2. ๋ชจ๋“  ํŠน์ˆ˜๋ฌธ์ž ์•ž์— ์—ญ์Šฌ๋ ˆ์‹œ ('\') ๋ถ™์ด๊ธฐ

์—ญ์Šฌ๋ ˆ์‹œ๋ฅผ ํŠน์ˆ˜๋ฌธ์ž ์•ž์— ๋ถ™์ด๊ฒŒ ๋˜๋ฉด ํ•ด๋‹น ๊ฐ’์ด ๊ฐ€์ง€๋Š” ํŠน๋ณ„ํ•œ ์˜๋ฏธ๊ฐ€ ์•„๋‹Œ ๋ฌธ์ž ์ž์ฒด์˜ ์˜๋ฏธ๋กœ ์ปดํ“จํ„ฐ๊ฐ€ ํ•ด์„ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋”ฐ๋ผ์„œ ๋ชจ๋“  ํŠน์ˆ˜๋ฌธ์ž ์•ž์— ์—ญ์Šฌ๋ ˆ์‹œ๋ฅผ ๋ถ™์ด๋ฉด ์œ„๋ณ€์กฐ๋ฅผ ๋ง‰์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ•œ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•