rosieblue
article thumbnail
728x90

GOAL : To solve the lab, perform a SQL injection attack that causes the application to display details of all products in any category, both released and unreleased.

(์™ผ์ชฝ)Gifts->๊ธฐ์กด๋ฒ„์ „ (์˜ค๋ฅธ ์ชฝ)Gifts'-- ->์ฃผ์„ ์ฒ˜๋ฆฌํ•œ ๋ฒ„์ „

 

 

์ฃผ์„ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋‹ˆ๊นŒ ์ƒˆ๋กœ์šด ์ƒํ’ˆ์ด ๋ณด์ธ๋‹ค.(+ ๋‚ด๊ฐ€ ์นดํ…Œ๊ณ ๋ฆฌ ๋’ค์— ์“ด ๊ฐ’์ด ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅ๋œ๋‹ค.. -> ์ •๋ณด๋ฅผ ์—ฌ๊ธฐ์„œ ์ถœ๋ ฅํ•  ์ˆ˜๋„ ์žˆ์„ ๋“ฏ) ์•„๋งˆ ์ด ์ด์œ ๋Š” SQL ๊ตฌ๋ฌธ์— WHERE Categories='Gifts' AND ??? ์ด๋Ÿฐ์‹์œผ๋กœ ์žˆ์–ด์„œ ํ•ด๋‹นํ•˜๋Š” ์• ๋“ค๋งŒ ๊ฐ€์ ธ์™”๋Š”๋ฐ ์•„์˜ˆ ์ฃผ์„ ์ฒ˜๋ฆฌํ•˜๋‹ˆ๊นŒ ๊ทธ ์กฐ๊ฑด(๋ญ”์ง„ ๋ชจ๋ฅด์ง€๋งŒ)์„ ์ œ์™ธํ•œ ์• ๋“ค๋„ ๋‹ค ๋ณด์—ฌ์ฃผ๋Š” ๋“ฏ (์ฆ‰ AND๋ถ€ํ„ฐ ๋‹ค ๋‚ ๋ผ๊ฐ€๋Š”๊ฑฐ)

 

์ด๋Ÿฐ์‹์œผ๋กœ ๊ฑ ์ฃผ์„๋งŒ ์—†์• ๋ด๋„ ์ƒˆ๋กœ์šด ์ •๋ณด๋ฅผ ํš๋“ํ•  ์ˆ˜๋„ ์žˆ์„๊ฒƒ ๊ฐ™๋‹ค ํ•ญ์ƒ where์ ˆ์ด where ๋ณ€์ˆ˜ = ใ…ใ… ์ด๋Ÿฐ์‹์œผ๋กœ๋งŒ ๋๋‚˜๋Š”๊ฒŒ ์•„๋‹ํ…Œ๋‹ˆ๊นŒ ใ…‡ใ…‡ 

 

์ด๋ ‡๊ฒŒ ํ•˜๋‹ˆ๊นŒ where ์ ˆ ๊ฐ’์ด ๋‹ค true๊ฐ€ ๋˜์–ด์„œ ๋ชจ๋‘๋‹ค ์ถœ๋ ฅ๋˜๊ฒŒ๋œ๋‹ค

 

order by๋กœ ์นผ๋Ÿผ ๊ฐœ์ˆ˜๊ฐ€ 8์ด๋ผ๋Š” ๊ฒƒ ์•Œ์•„๋ƒ„

 

null 8๊ฐœ๋กœ union ํ•ด์ฃผ๋‹ˆ๊นŒ ์ž˜ ์ž‘๋™ํ•œ๋‹ค.

null์„ union์—์„œ ์“ฐ๋Š” ์ด์œ ? -> null๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด๋ž‘ compatibleํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋”ฐ๋กœ ๋ฐ์ดํ„ฐ ํƒ€์ž…์— ์˜ํ•œ ์˜ค๋ฅ˜๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ๋‹ค.(ํ•˜์ง€๋งŒ NullPointerException ๋‚˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์œผ๋‹ˆ๊นŒ ์กฐ์‹ฌ)

์ € ์‚ฌ์ดํŠธ์—์„œ null ๋Œ€์‹  1,1,1,1,1,1,1,1 ํ•ด์คฌ์„ ๋•Œ๋Š” ์„œ๋ฒ„ ์˜ค๋ฅ˜๊ฐ€ ๋–ด๋‹ค. ์•„๋งˆ integer(1)์ด๋ž‘ compatibleํ•˜์ง€ ์•Š์€ column์ด ์žˆ์–ด์„œ์ผ ๊ฒƒ์œผ๋กœ ๋ณด์ธ๋‹ค.

 

์ฐธ๊ณ ๋กœ Oracle์—์„œ๋Š” select ๋ฌธ์„ ํ• ๋•Œ ๋ฌด์กฐ๊ฑด from์„ ํ•ด์„œ ํ…Œ์ด๋ธ”๋ช…์„ ํฌํ•จ์‹œ์ผœ์ฃผ์–ด์•ผํ•œ๋‹ค. ์ด๋•Œ ์“ฐ์ด๋Š” ํ…Œ์ด๋ธ”์ด dual ํ…Œ์ด๋ธ”์ด๋‹ค!

 

On Oracle databases, every SELECT statement must specify a table to select FROM. If your UNION SELECT attack does not query from a table, you will still need to include the FROM keyword followed by a valid table name.

There is a built-in table on Oracle called dual which you can use for this purpose. For example: UNION SELECT 'abc' FROM dual

profile

rosieblue

@Rosieblue

ํฌ์ŠคํŒ…์ด ์ข‹์•˜๋‹ค๋ฉด "์ข‹์•„์š”โค๏ธ" ๋˜๋Š” "๊ตฌ๋…๐Ÿ‘๐Ÿป" ํ•ด์ฃผ์„ธ์š”!