Archive for Dev. (junyup2)

์ง€์‹์„ ์ฑ„์›Œ๊ฐ€๋Š” ใ€Ž๊ฐœ๋ฐœ์ž/ํ™”์ดํŠธํ•ด์ปคใ€๋ฅผ ๋ชฉํ‘œ๋กœ ์ •๋ฆฌํ•˜๋Š” ๋ธ”๋กœ๊ทธ

Practice/DVWA

[DVWA] SQL Injection (WHERE ๊ตฌ๋ฌธ ์šฐํšŒ - ์ „์ฒด ๋ฐ์ดํ„ฐ ์กฐํšŒ)

Gearvirus(junyup2) 2024. 4. 11. 23:20

Vulnerability: SQL Injection

์ฟผ๋ฆฌ๋ฌธ์˜ ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•˜๊ณ , SQL Injection์„ ์ด์šฉํ•˜์—ฌ ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒ(์ถœ๋ ฅ)ํ•ด๋ณด๋Š” ๊ฒƒ์„ ๋ชฉ์ ์œผ๋กœ ํ•œ๋‹ค.

DVWA SQL Injection ์‹ค์Šต

์‹ค์Šต ํ™˜๊ฒฝ
- Windows Docker๋ฅผ ์ด์šฉํ•œ DVWA
- Windows ํ™˜๊ฒฝ์˜ Burp Suite

Security Level: Low

Low ๋ ˆ๋ฒจ์˜ ๊ฒฝ์šฐ, User ID์— ํ•ด๋‹นํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ง์ ‘ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

์œ„์˜ User ID์—๋Š” 1~5์˜ ์ˆซ์ž์— ๋Œ€ํ•œ ๊ฐ’์ด ์กด์žฌํ•œ๋‹ค. ๊ฐ๊ฐ์˜ ์ž…๋ ฅ์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์œ„์˜ ๊ฒฐ๊ณผ ๊ฐ’์„ ์ •๋ฆฌํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

ID: 1 - First name: admin / Surname: admin
ID: 2 - First name: Gordon / Surname: Brown
ID: 3 - First name: Hack / Surname: Me
ID: 4 - First name: Pablo / Surname: Picasso
ID: 5 - First name: Bob / Surname: Smith

 

Query ์˜ˆ์ƒ

์ž…๋ ฅ ํŒŒ๋ผ๋ฏธํ„ฐ(parameter)๋Š” user ID ์ด๊ณ , ๊ทธ์— ํ•ด๋‹นํ•˜๋Š” First name๊ณผ  Sun name์„ ๋ฐ˜ํ™˜ํ•ด์ฃผ๊ณ  ์žˆ๋‹ค.

SELECT First_name, Sun_name FROM ~~~ WHERE UserID = '_____' ;

์‹ค์ œ Query

$query  = "SELECT first_name, last_name FROM users WHERE user_id = '$id';";

์ฟผ๋ฆฌ ์ƒ์œผ๋กœ user_id์— ํ•ด๋‹นํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” '___' ์‚ฌ์ด์— ๋“ค์–ด๊ฐˆ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์—, user_id' or ์ฐธ์ธ ๊ฐ’์„ ๋Œ€์ž…ํ•˜๋Š” ๊ฒฝ์šฐ, ํ•ญ์ƒ ์ฐธ์ธ ๊ฐ’์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  user ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ณ  ์ด๋ฅผ ํ™•์ธํ•ด๋ณธ๋‹ค.

1' or 1=1 # / 1' or '1'='1

(๊ฐ€๋Šฅํ•˜๋ฉด ์ฃผ์„์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.)

์œ„์™€ ๊ฐ™์ด 1~5์˜ ์ „์ฒด ๋ฐ์ดํ„ฐ๊ฐ€ ์กฐํšŒ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

WHERE id = '____' ; ๊ณผ ๊ฐ™์€ Query ์˜ ๋นˆ์นธ์— 1' or '1'='1๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

WHERE id = '1' or '1'='1';

์œ„์™€ ๊ฐ™์€ ๊ฒฝ์šฐ WHERE ์กฐ๊ฑด์ด ํ•ญ์ƒ ์ฐธ์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๊ฐ€ ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

 

์ƒ๊ฐํ•ด๋ณผ ์ 

ํ•˜๋‚˜์˜ ๊ฐ’์„ ์ž…๋ ฅํ•˜์—ฌ์„œ, ์ „์ฒด ๋ฐ์ดํ„ฐ๊ฐ€ ์กฐํšŒ๋˜๋Š” ๊ฒƒ์€ ์ด๋ฏธ SQL Injection์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์ฆ๋น™์ด ๋œ๋‹ค.
์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ ๊ฐ’์ด ์ „๋‹ฌ๋˜๋Š” ๊ฒฝ๋กœ๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €(Web Browser) -> ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(Web Application) -> DB ์„œ๋ฒ„(SQL Parser, SQL ๋ถ„์„๊ธฐ)๋กœ ์ถ”์ •์ด ๊ฐ€๋Šฅํ•  ๊ฒƒ์ด๋‹ค.

๊ณต๊ฒฉ์ž๊ฐ€ ์‚ฝ์ž…ํ•œ SQL ๊ตฌ๋ฌธ์ด ํ•ด์„๋˜์—ˆ๋‹ค๋ฉด SQL Parser์—์„œ or ์—ฐ์‚ฐ์ž์™€, ์ฃผ์„(#) ๋”ฐ์œ„๋ฅผ ์ฒ˜๋ฆฌํ•œ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— SQL Injection ์ทจ์•ฝ์ ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์ข€ ๋” ์ž์„ธํ•œ ํ™•์ธ์„ ์œ„ํ•ด์„œ๋Š” and ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•˜์—ฌ ์ฐธ(true) / ๊ฑฐ์ง“(false) ๊ฐ’์„ ๊ฐ๊ฐ ํ™•์ธํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค.
1' or 1=1 # (์ „์ฒด ๋ฐ์ดํ„ฐ ์กฐํšŒ)
1' or 1=2 # (1 ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ)
1' and 1=1 # (1๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ)
1 ' and 1=2 # (๊ฒฐ๊ณผ ์—†์Œ)
๊ณผ ๊ฐ™์ด or / and ์—ฐ์‚ฐ์ž์— ๋Œ€ํ•œ ์ฐธ/๊ฑฐ์ง“ ๊ฐ’์— ์˜ํ•˜์—ฌ ์ถœ๋ ฅ ๊ฐ’์— ๋ณ€ํ™”๊ฐ€ ์žˆ๋Š” ๊ฒƒ์„ ๊ด€์ฐฐํ•  ์ˆ˜ ์žˆ๋‹ค.

Security Level: Medium

Medium ๋ ˆ๋ฒจ์˜ ๊ฒฝ์šฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฝค๋ณด ๋ฐ•์Šค(Combo Box)์— 1~5์˜ ๊ฐ’์ด ์กด์žฌํ•œ๋‹ค.

์œ„์˜ ์ฝค๋ณด ๋ฐ•์Šค ๋ถ€๋ถ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

ํ•ด๋‹น ์ฝค๋ณด ๋ฐ•์Šค์˜ ๊ฒฝ์šฐ, ์‚ฌ์šฉ์ž๋Š” ์ง์ ‘ ๊ฐ’์„ ์ž…๋ ฅํ•  ์ˆ˜ ์—†๊ณ , ๋ชฉ๋ก์— ์กด์žฌํ•˜๋Š” 1~5์— ๋Œ€ํ•ด์„œ๋งŒ ๊ฐ’์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ Burp Suite๋กœ ํ™•์ธํ•ด๋ณด๋ฉด ํ•ด๋‹น ๊ฐ’์— ๋Œ€ํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์ด ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ๋ณ€์กฐํ•˜์—ฌ ๋‹ค๋ฅธ ๊ฐ’์„ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ๋‹ค.

id=1~5&Submit=Submit

์œ„์™€ ๊ฐ™์ด ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” id ํŒŒ๋ผ๋ฏธํ„ฐ์— ์ฝค๋ณด๋ฐ•์Šค์— ์กด์žฌํ•˜๋Š” 1~5๊ฐ€ ์ž…๋ ฅ๋˜์ง€๋งŒ, ์ด๊ฒƒ์„ ๋ณ€์กฐํ•˜์—ฌ ์š”์ฒญํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

id=1+or+1=1# / id=1+or+1=1

(๊ฐ€๋Šฅํ•˜๋ฉด ์ฃผ์„์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.)

์œ„์™€ ๊ฐ™์ด id ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ณ€์กฐํ•˜์—ฌ ์š”์ฒญํ•˜๋Š” ๊ฒฝ์šฐ ๋ชจ๋“  user ์ •๋ณด๊ฐ€ ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์‹ค์ œ ์ฟผ๋ฆฌ๋ฅผ ์‚ดํŽด๋ณด๋ฉด ์œ„์™€ ๊ฐ™์€๋ฐ, mysqli_real_escape_string์„ ์ด์šฉํ•˜์—ฌ NUL (ASCII 0), \n, \r, \, ', ",  CTRL+Z. ์™€ ๊ฐ™์€ ๊ฐ’์„ ๋ง‰๋Š”๋‹ค. ์ฝค๋ณด ๋ฐ•์Šค๋กœ ๊ฐ’์„ ๋ฐ›๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ๊ฐ’์€ ์ˆซ์ž ๊ฐ’์œผ๋กœ ๋ฐ›์•„์ง€๊ธฐ ๋•Œ๋ฌธ์— ' ์™€ " ๋“ฑ์„ ๋ง‰๋Š” ์—ญํ• ์„ ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์—ฌ์ง„๋‹ค. ํ•˜์ง€๋งŒ ์œ„์™€ ๊ฐ™์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ „์ฒด ์กฐํšŒํ•˜๋Š” ๋ฐ์—๋Š” ๋ฌธ์ œ๊ฐ€ ์—†์—ˆ๋‹ค.


Security Level: High

High ๋ ˆ๋ฒจ์˜ ๊ฒฝ์šฐ, ํŒ์—…์ฐฝ์„ ํ†ตํ•ด ์ž…๋ ฅ์„ ๋ฐ›๋Š”๋‹ค.

here to change your ID. ๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŒ์—… ์ฐฝ์ด ๋‚˜์˜จ๋‹ค.

// Get input
$id = $_SESSION[ 'id' ];

// Check database
$query = "SELECT first_name, last_name FROM users WHERE user_id = '$id' LIMIT 1;";

SQL๋ฌธ์—์„œ ์‚ฌ์šฉํ•  id ๊ฐ’์„ ์„œ๋ฒ„์˜ ์„ธ์…˜(session)์œผ๋กœ๋ถ€ํ„ฐ ์ฝ์–ด์„œ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜จ์ „ํ•˜๊ฒŒ ์•ˆ์ „ํ•œ ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ์‹ค์งˆ์ ์œผ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ์„œ๋ฒ„์— ์ €์žฅ๋œ ์„ธ์…˜ ๋‚ด์˜ ๊ฐ’์„ ์กฐ์ž‘ํ•  ๋ฐฉ๋ฒ•์ด ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

ํ•˜์ง€๋งŒ ํ•ด๋‹น ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ ์„œ๋ฒ„์˜ ์„ธ์…˜์— ์ €์žฅ๋˜๋Š” ๊ฐ’์„ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ œ๊ณตํ•œ๋‹ค. 

์ด๊ฒƒ์€ ๋น„ํ˜„์‹ค์ ์ธ ์ƒํ™ฉ์„ ๊ฐ€์ •ํ•œ ๊ฒƒ์œผ๋กœ ๋ณด์•„๋„ ๋ฌด๋ฐฉํ•˜๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์„ธ์…˜์€ ์„œ๋ฒ„๊ฐ€ ์ž๋™์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์œผ๋กœ, ๋กœ๊ทธ์ธ์„ ํ•˜๋Š” ๊ณผ์ •์—์„œ ๊ฒ€์ฆ๋œ ๊ฐ’(ID, ๊ถŒํ•œ)์„ ์ €์žฅํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฐ’์€ ์„œ๋ฒ„์— ์ €์žฅ๋˜๋Š” ๊ฐ’์œผ๋กœ์„œ ์‚ฌ์šฉ์ž๊ฐ€ ๊ด€์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ์—†๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์œ„์˜ ์ž…๋ ฅ ์ฐฝ์— ๋Œ€ํ•˜์—ฌ ์‚ดํŽด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

ํ•ด๋‹น ์ž…๋ ฅ์ฐฝ์„ ํ†ตํ•ด ์ž…๋ ฅํ•˜๋ฉด ํ•ด๋‹น ์ž…๋ ฅ๊ฐ’์ด ์ž…๋ ฅ์ฐฝ์— ๋‚˜ํƒ€๋‚˜๊ณ , ํ•ด๋‹น ๊ฐ’์ด ์ „๋‹ฌ๋œ๋‹ค.

์šฐ์„  ์ด์ „ ๋ ˆ๋ฒจ์—์„œ ์‹œ๋„ํ•ด๋ดค๋˜ ๊ฐ’์„ ์ž…๋ ฅํ•ด๋ณธ๋‹ค.

1' or '1'='1

์œ„์™€ ๊ฐ™์ด ์ž…๋ ฅํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜จ๋‹ค.

์ด์ „์˜ ๋ ˆ๋ฒจ๊ณผ ์ฟผ๋ฆฌ๋ฌธ์ด ๊ฐ™๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค๋ฉด, ์ „์ฒด ๋ฐ์ดํ„ฐ๊ฐ€ ์กฐํšŒ๋˜์–ด์•ผ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ High ๋ ˆ๋ฒจ์˜ ๊ฒฝ์šฐ, ํ•œ ์ค„๋งŒ ์ถœ๋ ฅ๋˜์—ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์ด๊ฒƒ์€ ๋ฐ˜ํ™˜๋˜๋Š” ํ–‰ ์ˆ˜๋ฅผ ์ œํ•œํ–ˆ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

MySQL ์—์„œ LIMIT์„ ์ด์šฉํ•œ ํ–‰์ˆ˜์˜ ์ œํ•œ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฟผ๋ฆฌ๋ฅผ ๊ฐ€์ง„๋‹ค.

mysql> SELECT ์—ด๋ช… FROM ํ…Œ์ด๋ธ”๋ช… WHERE ์กฐ๊ฑด์‹ ORDER BY ์—ด๋ช… LIMIT ํ•จ์ˆ˜;

๊ทธ๋ ‡๋‹ค๋ฉด ์œ„์˜ ๊ฒฝ์šฐ, ORDER BY ๊ตฌ๋ฌธ์€ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ, ์กฐ๊ฑด์‹์ธ WHERE ๊ตฌ๋ฌธ ๋’ค์— LIMIT ํ•จ์ˆ˜๊ฐ€ ๋ถ™์–ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์ฃผ์„์„ ์ด์šฉํ•˜๋ฉด ์šฐํšŒ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์—ฌ๊ธฐ์„œ ์ฃผ์„์€ # ๋˜๋Š” --  ๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ( -- ์˜ ๊ฒฝ์šฐ -- ๋’ค์— ๊ณต๋ฐฑ์ด ํ•œ์นธ ์ ์šฉ๋˜์–ด์•ผ ์ฃผ์„์œผ๋กœ ์ธ์‹ํ•œ๋‹ค.)

๊ทธ๋ ‡๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐ’์„ ์ž…๋ ฅํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค.

1' or 1=1 # / 1' or 1=1 --
(1=1 ์„ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜ '1'='1'์„ ์ž…๋ ฅํ•ด์„œ  or ๋’ค์˜ ๊ฐ’์€ ์ฐธ์ด๊ธฐ๋งŒ ํ•˜๋ฉด๋œ๋‹ค.)

์œ„์™€ ๊ฐ™์ด ์ž…๋ ฅํ•ด์ค€ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์œ„์™€ ๊ฐ™์ด ์ „์ฒด ๋ฐ์ดํ„ฐ๊ฐ€ ์กฐํšŒ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ Burp ํ†ตํ•ด ํ™•์ธํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์‹ค์ œ ์ฟผ๋ฆฌ ๋ถ€๋ถ„์„ ์‚ดํŽด๋ณด๋ฉด ์œ„์™€ ๊ฐ™์ด LIMIT 1์„ ์ด์šฉํ•˜์—ฌ, ํ•œ ์ค„๋งŒ ์ถœ๋ ฅํ•ด์ฃผ๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.


Security Level: Impossible

Impossible ๋ ˆ๋ฒจ์˜ ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด Low ๋ ˆ๋ฒจ๊ณผ ๊ฐ™์ด ์ž…๋ ฅ ๊ฐ’์„ ์ง์ ‘ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ˆซ์ž ๊ฐ’๋งŒ ๋ฐ›๋„๋ก ์กฐ์น˜๋˜์–ด ์žˆ๊ณ , ๊ธฐ์กด์˜ Medium ์˜ ๋ณด์•ˆ ์กฐ์น˜์™€ ๋”๋ถˆ์–ด Prepared State๋ฅผ ์ด์šฉํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์™„๋ฒฝํ•œ ๋ณด์•ˆ ์กฐ์น˜๋ฅผ ์ทจํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์œ„์™€ ๊ฐ™์ด ์ž…๋ ฅ๋˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ์— ๋Œ€ํ•˜์—ฌ ์ˆซ์ž์ธ์ง€ ํ™•์ธํ•˜๊ณ , ๊ฒฐ๊ณผ ๊ฐ’์— ๋Œ€ํ•˜์—ฌ๋„, ํ•œ์ค„์˜ ๊ฒฐ๊ณผ๋งŒ์ด ๋‚˜์˜ค๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์žˆ๋‹ค.


์งˆ๋ฌธ ํ™˜์˜, ์ˆ˜์ • ๋ฐ ๋ณด์™„์— ๋Œ€ํ•œ ์ง€์  ํ™˜์˜