Skip to content

Latest commit

ย 

History

History
131 lines (73 loc) ยท 7.23 KB

File metadata and controls

131 lines (73 loc) ยท 7.23 KB

BWASP ์‚ฌ์šฉ๋ฒ• ๊ฐ€์ด๋“œ

์ž๋™ ๋ถ„์„ ๊ธฐ๋Šฅ

๊ทธ๋ฆผ 1

[๊ทธ๋ฆผ 1]๊ณผ ๊ฐ™์ด ์ฒ˜์Œ URL์— ์ ‘๊ทผํ•˜๋ฉด Automated, Manual ๋‘ ๋ฐฉ์‹์ด ์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. Automated๋ฅผ ํด๋ฆญํ•˜๋ฉด ์ž๋™ ๋ถ„์„ ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋ฆผ 2

[๊ทธ๋ฆผ 1]์—์„œ ์ž๋™ ๋ถ„์„ ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•˜๋ฉด [๊ทธ๋ฆผ 2]์™€ ๊ฐ™์ด ๋Œ€์ƒ URL์ด ๊ธฐ๋ณธ์œผ๋กœ testasp๊ฐ€ ๋˜์–ด์žˆ๋Š”๋ฐ ํ…Œ์ŠคํŠธํ•˜๋ ค๋Š” ์‚ฌ์ดํŠธ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  Proceed ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ๋‹ค.

๊ทธ๋ฆผ 3

๊ทธ๋Ÿฌ๋ฉด ์ด๋ฏธ ์•Œ๊ณ  ์žˆ๋Š” ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ํ™”๋ฉด์œผ๋กœ ์ „ํ™˜๋˜๋Š”๋ฐ ์ด๋ฏธ ์•Œ๊ณ  ์žˆ๋Š” ์ •๋ณด๊ฐ€ ์žˆ๋‹ค๋ฉด ํ•ด๋‹น ํ™˜๊ฒฝ์„ ํด๋ฆญํ•˜๊ณ  ๋ฒ„์ „๋„ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค. (๋Œ€์ƒ URL์— ์•Œ๊ณ  ์žˆ๋Š” ์ •๋ณด๊ฐ€ ์—†๋‹ค๋ฉด ๋ฐ”๋กœ Proceed ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ๋‹ค.)

๊ทธ๋ฆผ 4

[Essential]

Analysis recursive level์€ ํฌ๋กค๋ง ํƒ์ƒ‰ ๋ ˆ๋ฒจ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์ด๋‹ค. ์ตœ๋Œ€ 5000๊นŒ์ง€ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์™ผ์ชฝ์— ๋ณด์ด๋Š” ์ˆซ์ž ๊ฐ’์„ ์ง์ ‘ ์ˆ˜์ •ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

Maximum Processes ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค ๊ฐœ์ˆ˜๋ฅผ ์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์ด๋‹ค. ์ด ๊ฐœ์ˆ˜ ์ง€์ •์— ๋”ฐ๋ผ ๋ถ„์„ ์†๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค. 1๋ถ€ํ„ฐ 10๊นŒ์ง€๊ฐ€ ๊ธฐ๋ณธ์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด๋ฉฐ 0์œผ๋กœ ์ง€์ •ํ•˜๋ฉด ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค ๊ฐœ์ˆ˜๋ฅผ ๋ฌดํ•œ์ •์œผ๋กœ ๋Œ๋ฆด ์ˆ˜ ์žˆ๋‹ค.

[Optional] ๊ณต๊ฒฉ ์˜ต์…˜ -> Test payloads ํ…Œ์ŠคํŠธ ํŽ˜์ด๋กœ๋“œ๋Š” ๊ณต๊ฒฉ์„ ์ง„ํ–‰ํ•˜๋Š” ์˜ต์…˜์ด๋‹ค. ํ˜„์žฌ SQL injection Error๋งŒ ํ™•์ธํ•˜๋Š” ํ˜•ํƒœ์˜ ๊ณต๊ฒฉ๋งŒ ์ง„ํ–‰๋˜๋„๋ก ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค. [Disable Risk Lock] ๋ฒ„ํŠผ์„ ํ†ตํ•ด์„œ โ€˜Unlockโ€™์„ ํ•œ ๊ฒฝ์šฐ์—๋งŒ ์ฒดํฌํ•˜์—ฌ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. (๋ณธ ๋„๊ตฌ๋Š” ๊ฐ€์šฉ์„ฑ ์นจํ•ด ์ตœ์†Œํ™”์™€ ์„œ๋ฒ„ ๋ถ€ํ•˜๋ฅผ ์ค„์ด๊ณ  ๋ถ„์„ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉ์ ์ด๋ฏ€๋กœ ํ•ด๋‹น ๊ณต๊ฒฉ ์˜ต์…˜์— ๋Œ€ํ•ด์„œ๋Š” ๊ธฐ๋ณธ์œผ๋กœ๋Š” lock์ด ๋˜์–ด์žˆ๋Š” ์ƒํƒœ๋‹ค.)

  • ํ˜„์žฌ ๊ณต๊ฒฉ ์˜ต์…˜์— ๋งž์ถฐ์„œ ๊ฒฐ๊ณผ๋Š” DB์— ๋“ฑ๋ก์ด ๋˜์–ด Error๋ฅผ ํƒ์ง€ํ•œ ํŽ˜์ด์ง€๊ฐ€ ๊ตฌ๋ถ„์ด ๋˜์ง€๋งŒ ๊ฐ€์ด๋“œ๋ผ์ธ์—์„œ ๋…ธ์ถœ๋˜๋Š” ๋ถ€๋ถ„์ด ์•„์ง ๊ฐœ๋ฐœ ์ค‘์ธ ์ƒํƒœ๋ผ ์ถ”ํ›„ ์ˆ˜์ •๋˜๋ฉด ๋ฐ”๋กœ ์—…๋ฐ์ดํŠธํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค!

ํฌํŠธ ์Šค์บ”, CSP๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์žˆ๊ณ  Google Search API ์ž…๋ ฅ ์นธ์ด ์žˆ๋‹ค.

์—ฌ๊ธฐ๋Š” Google ๊ฒ€์ƒ‰์„ ํ†ตํ•œ indexing ์ •๋ณด์™€ admin ํŽ˜์ด์ง€๋ฅผ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ํ•˜๋Š”๋ฐ Google Seach API Key์™€ Engine ID ๊ฐ’์„ ๋„ฃ์–ด์•ผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

๏ƒจ	์ •๋ฆฌํ•˜์ž๋ฉด ์œ„ ์˜ต์…˜ ์ค‘์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์ด ์—†์œผ๋ฉด ์—†๋Š” ์ƒํƒœ๋กœ Proceed ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ๋„˜์–ด๊ฐ€๋ฉด ๋œ๋‹ค.

๊ทธ๋ฆผ 5

๋„˜์–ด๊ฐ€๋ฉด ์ตœ์ข… ์ž…๋ ฅ๋œ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ํŽ˜์ด์ง€๋กœ ์ „ํ™˜๋œ๋‹ค. ์—ฌ๊ธฐ ์ •๋ณด๋ฅผ ์š”์•ฝํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  1. ๋Œ€์ƒ URL
  2. ํฌ๋กค๋ง ํƒ์ƒ‰ ๋ ˆ๋ฒจ
  3. ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค ๊ฐœ์ˆ˜
  4. ์ด๋ฏธ ์•Œ๊ณ  ์žˆ๋Š” ์›น ํ™˜๊ฒฝ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•œ ๊ฒฝ์šฐ์— ๋Œ€ํ•œ ๋‚ด์šฉ
  5. ํฌํŠธ ์Šค์บ”, CSP, Test payloads(๊ณต๊ฒฉ ์˜ต์…˜) ๋“ฑ ์„ ํƒํ•œ ์˜ต์…˜์— ๋Œ€ํ•œ ๋‚ด์šฉ
  6. Google Search API Key์™€ Engine ID ๊ฐ’

์œ„ ๊ฐ’๋“ค์„ ์ตœ์ข… ํ™•์ธ ํ›„ Submit ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ๋ฐ”๋กœ ์ž๋™ ๋ถ„์„ ๊ธฐ๋Šฅ์ด ์ˆ˜ํ–‰๋œ๋‹ค!

๊ทธ๋ฆผ 6

[๊ทธ๋ฆผ 5]์—์„œ Submit ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์‹ค์‹œ๊ฐ„ ์•Œ๋ฆผ์ด ์ถœ๋ ฅ๋˜๊ณ  ์กฐ๊ธˆ๋งŒ ๊ธฐ๋‹ค๋ฆฌ๋ฉด ๋ฐ”๋กœ ์ž๋™์œผ๋กœ Dashboard ํ™”๋ฉด์œผ๋กœ ์ „ํ™˜๋œ๋‹ค. ์ดํ›„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ฐ€์ ธ์˜ค๋Š” ์›น ํ™˜๊ฒฝ ์ •๋ณด์™€ ํฌํŠธ ์ •๋ณด ๊ทธ๋ฆฌ๊ณ  CVE ๊ฐœ์ˆ˜๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค.

์—ฌ๊ธฐ์„œ [๊ทธ๋ฆผ 6]์—์„œ ์ž…๋ ฅํ•œ URL ์ •๋ณด๋ฅผ ๋‹ค์‹œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ดํ›„ ๋‹ค๋ฅธ ์ •๋ณด๋กœ ๋‹ค์‹œ ๋ถ„์„์„ ์ง„ํ–‰ํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋Š” ์™ผ์ชฝ ์‚ฌ์ด๋“œ์— ์žˆ๋Š” Start ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ [๊ทธ๋ฆผ 2]๋กœ ๋Œ์•„๊ฐ€์„œ ๋ถ„์„์„ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋ฆผ 7

์ง„ํ–‰๋˜๋Š” ์ค‘๊ฐ„์— Attack Vector๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณด๊ณ  ์‹ถ์„ ๋•Œ [๊ทธ๋ฆผ 7]์˜ ์™ผ์ชฝ ์‚ฌ์ด๋“œ์—์„œ Attack Vectors๋ฅผ ํด๋ฆญํ•˜๋ฉด [๊ทธ๋ฆผ 7]๊ณผ ๊ฐ™์ด Attack Vector๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ถ”๊ฐ€๋˜๋Š” ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋“ค์€ [๊ทธ๋ฆผ 7]์—์„œ ์˜ค๋ฅธ์ชฝ ์„ค์ • ์•„์ด์ฝ˜์„ ํ†ตํ•ด UPDATE๋ฅผ ํ•˜๋ฉด ์ง€์†์ ์œผ๋กœ ์ถ”๊ฐ€๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ฐ ๋ถ„์„๋œ ์ •๋ณด ๋ ˆ์ฝ”๋“œ๋ฅผ ํด๋ฆญํ•˜๋ฉด ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ๋ชจ๋‹ฌ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋ฆผ 8

๋ชจ๋‹ฌ์—์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

  1. ๋ ˆ์ฝ”๋“œ์—์„œ ๋ณด๋˜ ์˜ํ–ฅ๋„, ์˜ˆ์ธก๋œ ์ทจ์•ฝ์  ํ•ญ๋ชฉ ๋“ฑ ๊ธฐ๋ณธ ์ •๋ณด
  2. Cookies
  3. Query Strings
  4. Input Tag
  5. ์ฃผ์š”์ •๋ณดํ†ต์‹ ๊ธฐ๋ฐ˜ ๊ฐ€์ด๋“œ
  6. ์ทจ์•ฝ์  ํ•ญ๋ชฉ์— ๋งž์ถฐ ์ฐธ๊ณ ํ•  ์ˆ˜ ์žˆ๋Š” Cheat Sheet

๋””์ž์ธ์˜ ๊ฒฝ์šฐ ํ˜„์žฌ ์—…๋ฐ์ดํŠธ๋˜์–ด [๊ทธ๋ฆผ 9]๋ณด๋‹ค ๋” ๊น”๋”ํ•˜๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋ฆผ 9

[๊ทธ๋ฆผ 7]์—์„œ ๋งํ•œ ์„ค์ • ์•„์ด์ฝ˜(ํ†ฑ๋‹ˆ๋ฐ”ํ€ด)์„ ํด๋ฆญํ•˜๋ฉด ๋‚˜์˜ค๋Š” ํ™”๋ฉด์ด [๊ทธ๋ฆผ 9]์ด๋‹ค.

ํŽ˜์ด์ง• ๊ธฐ๋Šฅ์ด ํ˜„์žฌ ์œ„์™€ ๊ฐ™์ด ๊ตฌํ˜„๋˜์–ด ์žˆ๊ณ  ์˜ค๋ฅธ์ชฝ ์•„๋ž˜์— ์žˆ๋Š” ๊ธฐ๋ณธ ํŽ˜์ด์ง• ๊ธฐ๋Šฅ์€ ์•„์ง ๊ตฌํ˜„ ์ค‘์ธ ์ƒํƒœ๋‹ค.

์œ„ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์ถ”๊ฐ€๋˜๋Š” ๊ณต๊ฒฉ ๋ฒกํ„ฐ ์ •๋ณด๋“ค์„ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์ˆ˜๋™ ๋ถ„์„ ๊ธฐ๋Šฅ

๊ทธ๋ฆผ 10

[๊ทธ๋ฆผ 10]๊ณผ ๊ฐ™์ด BWASP Companion ํฌ๋กฌ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์„ clone์œผ๋กœ ์„ค์น˜ํ•œ๋‹ค.

๊ทธ๋ฆผ 11

Chrome Extension์„ ๋“ฑ๋กํ•˜๊ธฐ ์œ„ํ•ด chrome://extensions์— ์ ‘๊ทผํ•˜์—ฌ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ๋กœ๋“œ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ๋‹ค.

๊ทธ๋ฆผ 12

Git์œผ๋กœ ๋ฐ›์€ ํฌ๋กฌ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ํด๋”๋ฅผ ์„ ํƒํ•œ๋‹ค.

๊ทธ๋ฆผ 13

์ดํ›„ [๊ทธ๋ฆผ 12]์—์„œ ๋กœ๋“œ๋œ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์„ ํ™œ์„ฑํ™”ํ•œ๋‹ค.

๊ทธ๋ฆผ 14

์ˆ˜๋™ ๋ถ„์„ ๊ธฐ๋Šฅ๊ณผ ์ž๋™ ๋ถ„์„ ๊ธฐ๋Šฅ์ด ๊ฐ™์€ URL์— ๊ฐ™์€ DB๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹œ์ž‘ ๋ฐฉ์‹์€ ์šฐ์„  ์ž๋™์œผ๋กœ ์‹œ์ž‘์„ ํ•œ ์ƒํƒœ์—ฌ์•ผ ์ˆ˜๋™๋„ ๊ฐ™์€ DB๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

[๊ทธ๋ฆผ 14]์™€ ๊ฐ™์ด ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” Manual ๋ฒ„ํŠผ์€ ํ–ฅํ›„ Chrome Extension์„ Chrome WebStore์— ์˜ฌ๋ ค์„œ ํ•ด๋‹น ๋งํฌ๋กœ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋Š” ์•ˆ๋‚ด๋กœ ํ™œ์šฉ๋  ๋ฒ„ํŠผ์ด๋‹ค.

๊ทธ๋ฆผ 15

๋กœ๊ทธ์ธ, ์ธ์ฆ ๋“ฑ ์ ˆ์ฐจ๋ฅผ ๊ฑฐ์นœ ํ›„ ์ถ”๊ฐ€ ๋ถ„์„์„ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํฌ๋กฌ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์œ„์™€ ๊ฐ™์€ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋ฆผ 16

์‹œ์ž‘ํ•˜๋ฉด ๋””๋ฒ„๊น… ํ‘œ์‹œ๊ฐ€ ๋‚˜์˜จ๋‹ค๋ฉด ์ •์ƒ์ ์œผ๋กœ ์ง„ํ–‰๋œ ๊ฒƒ์ด๋‹ค. ํ•ด๋‹น ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•ด ์‹œ์ž‘ ๋ฒ„ํŠผ ํ›„ ์ƒˆ๋กœ๊ณ ์นจ(F5)๋ฅผ ํ•œ ๋ฒˆ ์ง„ํ–‰ํ•ด์•ผ ํ•œ๋‹ค.

๊ทธ๋ฆผ 17

๊ทธ๋ฆฌ๊ณ  Python Flask Attack Vector๋ฅผ ๊ฑฐ์ณ์„œ ์ •๋ณด๋ฅผ ์ „๋‹ฌ๋ฐ›๊ณ  ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋ฆผ 18

๋ฆฌํ”ผํ„ฐ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•๋„ Analysis์™€ ๋™์ผํ•˜๊ฒŒ ์‹คํ–‰ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ ๋’ค ์ƒˆ๋กœ๊ณ ์นจ(F5)๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด ๋œ๋‹ค.

๊ทธ๋ฆผ 19

ํŽธ์˜ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€๋กœ ์ œ๊ณตํ•˜๊ณ ์ž Decode์™€ Encode๊ฐ€ ํฌํ•จ๋œ Dencode ์‚ฌ์ดํŠธ๋ฅผ iframe ํ˜•ํƒœ๋กœ ์ œ๊ณตํ•œ๋‹ค.

์œ„ ์‚ฌ์ดํŠธ๋ฅผ ํ†ตํ•ด ์ถ”๊ฐ€๋กœ ์ธ์ฝ”๋”ฉ ๋””์ฝ”๋”ฉ ๊ด€๋ จ ๋ฌธ์ œ๋ฅผ ๋น ๋ฅด๊ฒŒ ํ•ด๋‹น ๋„๊ตฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋ฆผ 20

๊ณต๊ฒฉ ๋ฒกํ„ฐ๋ฅผ ๋ชจ์•„๋ณด๋˜ ๊ณณ์œผ๋กœ ๋‹ค์‹œ ์˜ค๋ฉด ํฌ๋กฌ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์ง„ํ–‰ํ–ˆ๋˜ ๊ฒฐ๊ณผ๋“ค๋„ ๊ฐ™์ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๋ˆ„๋ฅด๊ฒŒ ๋˜๋ฉด ์œ„์—์„œ ๋ณด๋˜ ๋ชจ๋‹ฌ ํ‘œ๊ธฐ์™€ ๊ฐ™์ด ์ƒ์„ธํ•˜๊ฒŒ ๋ถ„์„๋œ ๋‚ด์šฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.