CVE-2012-4792¿Í ÇÔ²²ÇÏ´Â Èñ¸ÁÂù »õÇØ! »õÇØ°¡ ¹à¾Ò½À´Ï´Ù. Á¶±Ý ´ÊÀº°¨ÀÌ ¾øÀÝ¾Æ ÀÖÁö¸¸ »êŸÇҾƹöÁö°¡ ¿Ü±³Çùȸ (°ø°Ý´çÇÑ »ç°Ç. ÀÌ Æ÷½ºÆÿ¡¼­ ´Ù·ç´Â Á¦·Îµ¥ÀÌ·Î ÀÎÇØ °ø°Ý´çÇÔ ) ¿¡ ÁØ ¼±¹°À» Á¦°¡ Ç®¾îº¼ ±âȸ°¡ ÀÖ¾ú³×¿ä. Microsoft¸¦ ºñ·ÔÇؼ­ ¸î¸î ÇØÄ¿µéÀÌ ºí·Î±×¿¡ À̹ø¿¡ À̽´°¡ µÈ CVE-2012-4792 ¿¡ ´ëÇؼ­ Æ÷½ºÆÃÀ» Çß½À´Ï´Ù. ÇÏÁö¸¸ Àúµµ ºüÁú ¼ö ¾øÁÒ. ÃÖ´ëÇÑ Á¦°¡ ºÐ¼®Çß´ø ¸ðµç ³»¿ëµéÀ» ¼øÂ÷ÀûÀ¸·Î ´ã¾Æ³»·Á ³ë·ÂÇßÀ¸´Ï Àß Àо½Ã¸é ¿©·¯ºÐµµ ¶È°°ÀÌ µû¶óÇØ º¼ ¼ö ÀÖÀ»°Ì´Ï´Ù. Àú°°Àº °æ¿ì¿¡´Â À©µµ¿ì XP »ó¿¡¼­ µ¹¾Æ°¡´Â IE8 ¿¡¼­ ºÐ¼®ÇßÀ¸³ª, À©µµ¿ì 7 ¿¡¼­µµ Àß µÉ°Ì´Ï´Ù. ÀúÀÇ mshtml ¹öÁ¯Àº 8.0.6001.19393 ÀÌ¿´½À´Ï´Ù. * ºÐ¼® Á¦°¡ °¡Àå ù¹ø°·Î ÇÑ ÀÏÀº metasploit ÀͽºÇ÷ÎÀÕ¿¡¼­ Èü½ºÇÁ·¹ÀÌ ºÎºÐ°ú ´Ù¸¥ Àâ´ÙÇÑ °ÍµéÀ» »©¹ö¸®°í Ãë¾àÁ¡À» ¹ß»ý½ÃÅ°´Â °¡Àå ½ÉÇÃÇÑ Äڵ带 ¸¸µå´Â °ÍÀÌ¿´½À´Ï´Ù. ±× °á°ú¹°Àº ´ÙÀ½°ú °°½À´Ï´Ù. ±× ´ÙÀ½À¸·Î´Â iexplorer.exe¿¡ glags ¸¦ ÀÌ¿ëÇÏ¿© pageheap °ú user stack trace ±â´ÉÀ» ÄÑ°í À§¿¡¼­ ¸¸µç ½ÉÇÃÇÑ poc ¸¦ ½ÇÇà½ÃÄÑ Ãë¾àÁ¡ÀÌ ¹ß»ýÇÏ´ÂÁö¸¦ ÁöÄѺ¸´Â °ÍÀÌ¿´½À´Ï´Ù. ±× °á°ú ¾Æ·¡¿Í °°Àº windbg ·Î±×¸¦ º¼ ¼ö ÀÖ¾ú½À´Ï´Ù. À§ °á°ú¸¦ ÅëÇؼ­ ¾Ë ¼ö ÀÖ´Â »ç½ÇÀº , freeµÈ ¿ÀºêÁ§Æ®´Â CButton ¿ÀºêÁ§Æ®¿´À¸¸ç, onloadÇڵ鷯°¡ ¿ÏÀüÈ÷ ³¡³¯ ¶§ ÀÌ ÇØÁ¦µÈ ¿ÀºêÁ§Æ®¸¦ ´Ù½Ã »ç¿ëÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. poc Äڵ带 ´Ù½Ã »ìÆ캸¸é ÀÌ·¯ÇÑ µ¿ÀÛ°ú ¿¬°üÀÖ´Â Äڵ带 º¼ ¼ö ÀÖ½À´Ï´Ù. ¾Æ·¡ ÄÚµå´Â ÇØÁ¦µÉ CButton ¿ÀºêÁ§Æ®¸¦ »ý¼ºÇÏ´Â ÄÚµåÀÔ´Ï´Ù. ¾î¶² ŸÀֿ̹¡ ¿ÀºêÁ§Æ®°¡ ÇØÁ¦µÇ°í Àç»ç¿ëµÇ´ÂÁö Çѹø ¾Ë¾Æº¾½Ã´Ù. pocÄڵ忡 ¾à°£ÀÇ ÀÚ¹Ù½ºÅ©¸³Æ® Äڵ带 Ãß°¡Çؼ­ ³»ºÎÀûÀ¸·Î ¾î¶²ÀÏÀÌ ÀϾ´ÂÁö µð¹ö±ëÀ» Çغ¸°Ú½À´Ï´Ù. ¶ÇÇÑ CButton ¿ÀºêÁ§Æ®°¡ »ý¼ºµÇ°í ÇØÁ¦µÇ´Â °ÍÀ» ¾Ë±â ½±°Ô »ý¼º°ú ÇØÁ¦¸¦ ´ã´çÇÏ´Â ·çƾ¿¡ °¢°¢ ºê·¹ÀÌÅ© Æ÷ÀÎÆ®¸¦ °É°Ì´Ï´Ù. CButton ¿ÀºêÁ§Æ®¸¦ »ý¼ºÇÏ´Â °ÍÀº CButton::CreateElement ¸Þ¼ÒµåÀÔ´Ï´Ù. HeapAlloc¿¡ ºê·¹ÀÌÅ© Æ÷ÀÎÆ®¸¦ °É°í ÁöÄѺ¸¸é ¾î¶² ÁÖ¼Ò°¡ CButtonÀ¸·Î ÇÒ´çµÇ´ÂÁö ¾Ë ¼ö ÀÖ½À´Ï´Ù. ÇØÁ¦µÇ´Â °÷ ¿ª½Ã windbg ·Î±×¸¦ ÅëÇØ ¾Ë°í ÀÖÀ¸¹Ç·Î, ÇØÁ¦ÇÏ´Â °÷¿¡µµ ºê·¹ÀÌÅ© Æ÷ÀÎÆ®¸¦ °Ì´Ï´Ù. pocÄڵ忡 Math.atan2 ¿Í °°Àº ÀÚ¹Ù½ºÅ©¸³Æ® Äڵ带 Áý¾î ³ÖÀ¸¹Ç·Î½á pocÄڵ尡 ½ÇÇàµÇ´Â °úÁ¤¿¡¼­, ¼øÂ÷ÀûÀ¸·Î ¾î¶°ÇÑ ÀÏÀÌ ÀϾ´ÂÁö µð¹ö±ëÇغ¼ ¼ö ÀÖ½À´Ï´Ù. ½ÇÇàÇغ¸¸é ¾Æ·¡¿Í °°½À´Ï´Ù. sxe ld:jscript ¸¦ ÇØ ³ù±â ¶§¹®¿¡ jscript.dllÀÌ ·ÎµåµÇ¸é ºê·¹ÀÌÅ© Æ÷ÀÎÆ®°¡ °É¸³´Ï´Ù. ÀÌ ¶§ ÀÚ¹Ù½ºÅ©¸³Æ® ·Î±× ¸Þ¼¼Áö¸¦ º¸±â À§ÇØ ºê·¹ÀÌÅ©Æ÷ÀÎÆ®¸¦ °É¸é µË´Ï´Ù. CButton ¿ÀºêÁ§Æ®´Â CollectGarbage °¡ È£ÃâµÇ´Â µ¿¾È »èÁ¦µÇÁö¸¸ ÇØ´ç callÀÌ ³¡³ª±â Àü±îÁö Àç»ç¿ëµÇÁö ¾Ê½À´Ï´Ù. ±×·¸±â ¶§¹®¿¡ ÀÌ Å¸Àֿ̹¡ Á¤È®ÇÑ Å©±â·Î µ¥ÀÌÅ͸¦ ÇÒ´çÇÑ´Ù¸é ÇÁ·Î±×·¥ È帧À» Á¦¾îÇÒ ¼ö ÀְԵ˴ϴÙ. ÀÌ ºÎºÐÀº µÚ¿¡¼­ ÀÚ¼¼È÷ »ìÆ캸µµ·Ï ÇÏ°Ú½À´Ï´Ù. ´ÙÀ½ ÇØ¾ß ÇÒ ÀÏÀº Á¤È®È÷ ¿Ö use-after-free°¡ ÀϾ´ÂÁö ¾Ë¾Æº¸´Â °ÍÀÔ´Ï´Ù. Microsoft Ãø¿¡¼­ ÀÌ¹Ì ±×µéÀ» ºí·Î±×¸¦ ÅëÇØ ÀÌ ºÎºÐ¿¡ ´ëÇÑ »ó´çÇÑ ÈùÆ®¸¦ Á¦°øÇÏ°í ÀÖ½À´Ï´Ù. Å©·¡½Ã°¡ ³ª´Â °÷À¸·Î ´Ù½Ã µ¹¾Æ°¡ edi °¡(ÇØÁ¦µÈ ¸Þ¸ð¸®¸¦ °¡¸®Å°´Â ·¹Áö½ºÅÍ) ¾îµð¼­ ºÎÅÍ Èê·¯¿À´ÂÁö È®ÀÎÇØ º¸°Ú½À´Ï´Ù. ( mov eax, [edi] ; blah..; call [eax+0xdc] ) »ìÆ캸´Ï CElement::FindDefaultElem ÇÔ¼ö°¡ ÀÌ¹Ì ÇØÁ¦µÈ CButton ¿¤¸®¸ÕÆ®¸¦ ¸®ÅÏÇÏ´Â °Í °°½À´Ï´Ù. ÇØ´ç Ãë¾àÁ¡¿¡ ´ëÇÑ ÆÐÄ¡¿¡¼­ ÀÌ ÇÔ¼ö¸¦ ÆÐÄ¡ÇÏ´Â °ÍÀ¸·Î º¸¾Æ ÀúÈñ°¡ Á¦´ë·Î ºÐ¼®ÇÏ°í ÀÖ´Ù´Â°É ¾Ë ¼ö ÀÖ½À´Ï´Ù. ÀÌ ÇÔ¼ö´Â ÇÁ·Î¼¼½º°¡ crashµÇ±â Àü¿¡ ¸î¹ø È£ÃâµË´Ï´Ù. °í·Î ½ºÆ®·¹½º ¹ÞÁö ¾Ê°í Á¦¸í±îÁö »ì·Á¸é ÀÌ ÇÔ¼ö¿¡ ºê·¹ÀÌÅ© Æ÷ÀÎÆ®¸¦ °É¸é ¾ÈµÇ°í ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÏ´Â CMarkup::OnLoadStatusDone ÇÔ¼ö¿¡ ºê·¹ÀÌÅ© Æ÷ÀÎÆ®¸¦ °É¾î¾ß ÇÕ´Ï´Ù. ÇѸ¶µð µ¡ºÙÀÌÀÚ¸é »ç½Ç ÀÌ ÇØÁ¦µÈ ¿ÀºêÁ§Æ®¸¦ ÅëÇؼ­ EIP ÄÁÆ®·Ñ ÇÏ´Â°Ç ¸Å¿ì ½¬¿î ÀÏÀÔ´Ï´Ù. È®¿¬ÇÏ°Ô ÇØÁ¦µÈ ¿ÀºêÁ§Æ®ÀÇ vftable À» Á¶ÀÛÇÒ ¼ö ÀÖ°í ÀÌ vftable¿¡¼­ ¸Þ¼Òµå°¡ È£ÃâµÇ±â ¶§¹®ÀÔ´Ï´Ù. ¾î¶µç ÀÌÁ¦ CButton¿ÀºêÁ§Æ®°¡ »ý¼ºµÇ°í ÇØÁ¦µÇ´Â °÷¿¡ ºê·¹ÀÌÅ© Æ÷ÀÎÆ®¸¦ °É¾ú±â ¶§¹®¿¡ ÇØÁ¦µÈ CButton ¿ÀºêÁ§Æ®ÀÇ ÁÖ¼Ò¸¦ ¾Ë ¼ö ÀÖÀ¸¸ç, CElement::FindDefaultElem ÀÌ È£ÃâµÇ±â Àü¿¡ CMarkup::OnLoadStatusDone ÇÔ¼ö¿¡ ºê·¹ÀÌÅ©Æ÷ÀÎÆ®¸¦ °É¾ú½À´Ï´Ù. ¾Æ·¡ ·Î±×ÆÄÀÏÀº Àб⠽±°Ô ¾à°£ ¼öÁ¤ÇÑ °ÍÀÔ´Ï´Ù. ÀÌ ·Î±×¿¡¼­ ¾òÀ» ¼ö ÀÖ´Â Á¤º¸´Â CButton ¿ÀºêÁ§Æ®°¡ ÇØÁ¦µÇ¾úÀ½¿¡µµ ºÒ±¸ÇÏ°í CDoc element ¿¡ ·¹ÆÛ·±½º µÇ°í ÀÖ´Ù´Â Á¡ÀÔ´Ï´Ù. ´ÙÀ½À¸·Î ÇÒ ÀÏÀº pocÄڵ带 ´Ù½Ã ½ÇÇàÇϴ°̴ϴÙ. ( ÀÌ¹Ì ¾öû ¸¹ÀÌ ´Ù½Ã½ÇÇà ÇÏ°í ÀÖÁö¸¸¿ä ) ÀÌÁ¦ ¿Ö ÇØÁ¦µÈ ¿ÀºêÁ§Æ®ÀÇ ·¹ÆÛ·±½ÌÀÌ ³²¾ÆÀÖ´ÂÁö ¾Ë¾ÆºÁ¾ß ÇÕ´Ï´Ù. ±× ÀÌÀ¯¸¦ ¾Ë±â À§Çؼ± mshtml!CDoc::operator new ÇÔ¼ö¿¡ ºê·¹ÀÌÅ© Æ÷ÀÎÆ®¸¦ °É°í CDoc ¿ÀºêÁ§Æ®+0x1A8 À§Ä¡¿¡ ¸Þ¸ð¸® ºê·¹ÀÌÅ© Æ÷ÀÎÆ®¸¦ °É¾î¼­ ¾î¶² ÇÔ¼ö°¡ ÀÌ À§Ä¡¿¡ µ¥ÀÌÅ͸¦ ¾²´ÂÁö ¾Ë¾Æº¸´Â °Ì´Ï´Ù. CElement::SetDefaultElem ÇÔ¼ö°¡ ¸ÞÀÎ CDoc ¿ÀºêÁ§Æ®¿¡ ·¹ÆÛ·±½º¸¦ Ãß°¡Çϱâ Àü¿¡ AddRefÇÔ¼ö¸¦ È£ÃâÇÏ´Â °ÍÀ» "±î¸ÔÀº" °Í °°½À´Ï´Ù. ÀÌ·± ¿ÀºêÁ§Æ®´Â ´Ù¸¥ ¿ÀºêÁ§Æ®¿¡ ´ëÇÑ ·¹ÆÛ·±½º¸¦ Á¦°ÅÇÔÀ¸·Î½á ÇØÁ¦µÉ ¼ö ÀÖÁö¸¸, CDoc ¿ÀºêÁ§Æ®ÀÇ Default Element ·¹ÆÛ·±½º¸¦ ÅëÇؼ­ ¿©ÀüÈ÷ Á¢±ÙÀÌ °¡´ÉÇÕ´Ï´Ù. ÀÌÁ¦ ¿ì¸®´Â PoC¸¦ Á¶±Ý ´õ ½ÉÇÃÇÏ°Ô ¸¸µé ¼ö ÀÖ½À´Ï´Ù. Á¦ ³ª¸§ÀÇ ¹æ½Ä´ë·Î poc¸¦ ½ÉÇÃÇÏ°Ô ¸¸µé°í ¾ó¸¶ ÈÄ BinVuln.com ¿¡ h4ckmp ´ÔÀÌ ¿Ã¸° Æ÷½ºÆÃÀ» º¸´Ï Àú¿Í °ÅÀÇ µ¿ÀÏÇÑ ¾ÆÀ̵ð¾î¸¦ »ç¿ëÇÏ¿© poc¸¦ ½ÉÇÃÇÏ°Ô ¸¸µé¾ú´õ±º¿ä. ÀÌÁ¦ PoC Äڵ带 ÇÑÁÙÇÑÁÙ º¸¸é¼­ ÁÖ¼®À» ´Þ¾Æº¸°Ú½À´Ï´Ù. e0 = document.getElementById("a"); bodyÀÇ form ¿ÀºêÁ§Æ®·Î ºÎÅÍ ·¹ÆÛ·±½º¸¦ ¾ò¾î¿É´Ï´Ù. e1 = document.getElementById("b"); bodyÀÇ dfn ¿ÀºêÁ§Æ®·Î ºÎÅÍ ·¹ÆÛ·±½º¸¦ ¾ò¾î¿É´Ï´Ù. e2 = document.createElement("q"); q ¶ó´Â ¿¤¸®¸ÕÆ®¸¦ »ý¼ºÇÕ´Ï´Ù. e1.applyElement(e2); Q ¿¤¸®¸ÕÆ®¸¦ DFN °´Ã¼ÀÇ ºÎ¸ð°´Ã¼·Î ¼³Á¤ÇÕ´Ï´Ù. ¿©±â±îÁö DOM Æ®¸®´Â ÀÌ·± ¸ð¾çÀÌ µÉ°Ì´Ï´Ù. Q->DFN e1.appendChild(document.createElement('button')); Button ¿¤¸®¸ÕÆ®¸¦ »ý¼ºÇÏ¿© DFN ¿ÀºêÁ§Æ®¿¡ Ãß°¡ÇÕ´Ï´Ù. DOM Æ®¸®´Â ´ÙÀ½°ú °°ÀÌ º¯ÇÕ´Ï´Ù. Q->DFN->BUTTON e1.applyElement(e0); form ¿¤¸®¸ÕÆ®¸¦ DFN ¿¤¸®¸ÕÆ®ÀÇ ºÎ¸ð°´Ã¼°¡ µÇ°Ô ÇÔÀ¸·Î½á Q¿Í DFN °´Ã¼ »çÀÌ¿¡ Form °´Ã¼¸¦ »ðÀÔÇÕ´Ï´Ù. DOM Æ®¸®´Â ÃÖÁ¾ÀûÀ¸·Î ÀÌ·± ¸ð½ÀÀÌ µË´Ï´Ù. Q->FORM->DFN->BUTTON e2.outerText = ""; ÀÌÁ¦ °¡Àå »ó´Ü¿¡ ÀÖ´ø Q ¸¦ ³¯·Á¹ö¸²À¸·Î½á DOM Æ®¸®°¡ Q ¿¤¸®¸ÕÆ®¸¸ ·¹ÆÛ·±½Ì ÇÏ°í ÀÖ°Ô ¸¸µé¾ú½À´Ï´Ù. CButton ¿ÀºêÁ§Æ®¸¦ °¡¸®Å°´ø ¸ðµç ·¹ÆÛ·±½º¸¦ ³¯·Á¹ö¸°°ÅÁÒ. e2.appendChild(document.createElement('body')); ÀÌ ÄÚµå´Â use-after-free¸¦ À¯¹ßÇϱ⿡ ²À ÇÊ¿äÇÑ°Ç ¾Æ´ÏÁö¸¸ À¯¹ßÀ» Á»´õ ½±°Ô¸¸µé¾îÁÝ´Ï´Ù. ÇÏÁö¸¸ ¿ÖÀÎÁö´Â Àúµµ Àß ¸ð¸£°Ú½À´Ï´Ù. Äڵ带 Á» ´õ »ìÆ캸´Ï Ãë¾àÁ¡À» À¯¹ßÇÏ´Â Äڵ带 Á» ´õ ½ÉÇÃÇÏ°Ô ¸¸µé ¼ö ÀÖÀ» °Í °°½À´Ï´Ù. DFNÀ̳ª Q ¿ÀºêÁ§Æ®´Â ÇÊ¿äÇÏÁö ¾ÊÀ» °Í °°½À´Ï´Ù. Button À» document¿¡ Ãß°¡ÇÏ°í Form ¿ÀºêÁ§Æ®¿¡ ÀÌ Button ¿ÀºêÁ§Æ®¸¦ ÇÒ´çÇϱ⸸ Çصµ Ãë¾àÁ¡À» À¯¹ßÇϱ⿡´Â ÃæºÐÇÕ´Ï´Ù. ¾Æ·¡°¡ Á» ´õ ª¾ÆÁø PoC ÄÚµåÀÔ´Ï´Ù. ¿ª½Ã³ª µ¿ÀÏÇÏ°Ô Ãë¾àÁ¡À» À¯¹ß½ÃÅ°¸ç ¾Æ·¡°¡ ±× °á°úÀÔ´Ï´Ù. À§ ÄÚµå ¿ª½Ã DIV ¿¤¸®¸ÕÆ®¸¦ ¾²Áö ¾Ê°í, ButtonÀ» Á÷Á¢ÀûÀ¸·Î document.body¿¡ ÇÒ´çÇÏ´Â ¹æ½ÄÀ¸·Î ´õ ª°Ô ÁÙÀÏ ¼ö ÀÖÀ¸³ª, ±×·¸°Ô ÇÏ¸é °ªµéÀÌ ¾à°£ ´Þ¶óÁö°Ô µÇ°í exploit ÇÏ´Â°Ô Á¶±Ý ´õ ¾î·Á¿öÁý´Ï´Ù. ÀÌÁ¦ ¿ì¸®´Â exploit Çϱâ À§ÇÑ ´ëºÎºÐÀÇ »ç½ÇÀ» ¾Ë°íÀÖ½À´Ï´Ù. free µÈ ¿ÀºêÁ§Æ®ÀÇ »çÀÌÁî¿Í ¾ðÁ¦ free µÇ´ÂÁö¸¦ ¸»ÀÌÁÒ. ±×·¸±â ¶§¹®¿¡ ÇØ´ç »çÀÌÁŭ ¿ì¸®°¡ ¿øÇÏ´Â °ªÀ» ÇÒ´çÇؼ­ ÇØÁ¦µÈ ¸Þ¸ð¸®¸¦ ¹Ù²ãÄ¡±â ÇÏ´Â °ÍÀº ¸Å¿ì ½¬¿î ÀÏÀÔ´Ï´Ù. ¸ÕÀú ¿ì¸®´Â Low Fragmentation Heap¿¡ ÀÇÇØ ÇÒ´çµÈ CButton Object°¡ »ç¿ëÇÑ ¸Þ¸ð¸® ¿µ¿ªÀ» È®ÀÎÇØ¾ß ÇÕ´Ï´Ù. ¿Ö³ÄÇϸé ÀÌ ÇØÁ¦µÈ ¿µ¿ªÀ» ¿øÇÏ´Â °ªÀ¸·Î ¹Ù²Ù´Â ÀÛ¾÷À» È®½ÇÇÏ°Ô È®ÀÎÇϱâ À§Çؼ­ ÀÔ´Ï´Ù. ÀÌ°Ô È®½ÇÇÑ ÀÌÀ¯´Â LFH´Â free blockµéÀ» ÇÕÄ¡°Å³ª ³ª´©Áö ¾Ê°í Á¤ÇØÁø »çÀÌÁŭÀÇ block À» Àç»ç¿ëÇÏ´Â ¹æ½ÄÀ̱⠶§¹®ÀÔ´Ï´Ù. ÇØÁ¦µÈ CButton ¿ÀºêÁ§Æ®´Â 0x58 ÀÇ Å©±â¸¦ °®½À´Ï´Ù. ±×·¸±â ¶§¹®¿¡ ÀÌÁ¦ ÇØ¾ß ÇÒ ÀÏÀº 0x58¸¸Å­ ¸Þ¸ð¸®¸¦ ÇÒ´çÇÏ°í ±×°÷¿¡ ¿øÇÏ´Â °ªÀ» ä¿ì´Â °ÍÀÔ´Ï´Ù. LFH¸¦ È®½ÇÇÏ°Ô »ç¿ëÇÏ°Ô ÇÏ´Â ¹æ¹ýÀº Valasek ´ÔÀÌ ¾²½Å phrack¹®¼­¿¡ ³ª¿ÍÀÖ½À´Ï´Ù. ¹Ù·Î µ¿ÀÏÇÑ Å©±â·Î 16¹ø ¿¬¼ÓÀ¸·Î ÇÒ´çÇÏ´Â °ÅÁÒ. Å×½ºÆ®¿¡ ¾Õ¼­ iexplorer.exeÀÇ pageheap À» ²¨¾ßÇϸç windbg¿¡ iexplorer°¡ attach µÇ¾î ÀÖÀ» ¶§ debugheapÀ» »ç¿ëÇÏÁö ¸»¾Æ¾ß ÇÕ´Ï´Ù. ±âÁ¸ pocÄڵ忡 LFH¸¦ »ç¿ëÇϱâ À§ÇÑ ÄÚµå¿Í ÇØÁ¦µÈ ¿µ¿ªÀ» ´ëüÇÒ ¸¸ÇÑ Äڵ带 Ãß°¡Çß½À´Ï´Ù. ½ÇÇàÇÏ°Ô µÇ¸é ´ÙÀ½°ú °°Àº Å©·¡½Ã¸¦ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. ·¹Áö½ºÅÍ°¡ ¿øÇÏ´Â °ªÀ¸·Î ¹Ù²î¾ú°í, ¹Ù²ï °ªÀ» ÂüÁ¶ÇÏ¿© eip°¡ º¯Á¶µÉ ¼ö ÀÖÀ¸¹Ç·Î, ÀÌÁ¦ ¿Ïº®ÇÑ exploitÀ» ¸¸µé ¼ö ÀÖ´Ù´Â °ÍÀÌ È®½ÇÇØ Á³½À´Ï´Ù. register¿¡ offsetÀ» ´õÇÑ °÷À» ÂüÁ¶ÇÏ¿© callÀ» ÇÏ´Â°Ô ¾Æ´Ï¶ó EIP ¸¦ °ð¹Ù·Î Á÷Á¢ÀûÀ¸·Î ¹Ù²Ü ¼ö ÀÖ´Ù¸é ´õ ¸ÚÁöÁö ¾ÊÀ»±î¿ä? ´ëºÎºÐÀÇ exploit Á¦ÀÛÀÚµéÀº Èü½ºÇÁ·¹À̸¦ »ç¿ëÇßÀ»°Ì´Ï´Ù. ÇÏÁö¸¸ IE8 ¿¡¼± Èü½ºÇÁ·¹ÀÌ°¡ ¹Ýµå½Ã ÇÊ¿äÇÏÁø ¾Ê½À´Ï´Ù. ASLRÀ» ¿ìȸÇϱâ À§Çؼ­ memory leak À» À¯¹ßÇÏÁö ¾Ê¾Æµµ µÇ¸ç ASLRÀÌ °É¸®Áö ¾ÊÀº ¸ðµâÀÌ ·ÎµåµÇ¾î ÀÖÀ» ÇÊ¿äµµ ¾ø½À´Ï´Ù. ÀÌ ¹æ¹ýÀº »õ·Î¿î ±â¹ýÀ̶ó°í »ý°¢ÇÏ°í ÀÖ½À´Ï´Ù¸¸ IE9 ¿¡¼­´Â Àû¿ëµÇÁö°¡ ¾Ê±â ¶§¹®¿¡ À̹ø ±âȸ¿¡ °ø°³Çϵµ·Ï ÇÏ°Ú½À´Ï´Ù. IE8 Àº SMIL ¸¦ ±â¹ÝÀ¸·Î ÇÑ HTML+TIMEÀ» Áö¿øÇÕ´Ï´Ù. IE9¿Í ´õ ³ôÀº ÃֽŹöÁ¯¿¡¼­´Â Áö¿øÇÏÁö ¾Ê½À´Ï´Ù¸¸ IE8¿¡¼± ÃæºÐÈ÷ Àç¹Ì¸¦ º¼ ¼ö ÀÖ½À´Ï´Ù. Á¤È®È÷ ¸»ÇÏÀÚ¸é ¿ì¸®°¡ ÄÁÆ®·Ñ ÇÒ ¼ö ÀÖ´Â ¹®ÀÚ¿­À» °¡¸®Å°´Â ÀÓÀÇÀÇ Å©±âÀÇ Æ÷ÀÎÅÍ ¹è¿­À» ¸¸µé ¼ö ÀÖ°Ô ÇØÁÝ´Ï´Ù. ±×·¸°Ô Çϸé freeµÈ 0x58 »çÀÌÁî ¸¸Å­ÀÇ ¸Þ¸ð¸®¸¦ ÄÁÆ®·Ñ ÇÒ ¼ö ÀÖ°í, vftableÀÌ Á¶ÀÛµÈ ¹®ÀÚ¿­À» °¡¸®Å°°Ô ¸¸µé¾î¼­ call [eax+0xdc] ¸í·É¾î°¡ Èü½ºÇÁ·¹À̾øÀÌ ¿ì¸®°¡ ¿øÇÏ´Â ÁÖ¼Ò¸¦ È£ÃâÇÏ°Ô ¸¸µé ¼ö ÀÖ½À´Ï´Ù. À§ ¹æ¹ýÀ» °¡´ÉÇÏ°Ô Çϱâ À§Çؼ­´Â ¸î°¡Áö Àç¹Ô´Â ±¸¹®À» html¿¡ Ãß°¡ÇØ¾ß ÇÕ´Ï´Ù. ¼¼¹ÌÄÝ·ÐÀ¸·Î ºÐ¸®µÈ ¹®ÀÚ¿­·Î t:ANIMATECOLOR element ÀÇ 'values' ¼Ó¼ºÀ» ¼¼ÆÃÇÔÀ¸·Î½á ¿ì¸®´Â ¹®ÀÚ¿­ÀÇ °¢°¢ÀÇ ¿ä¼Ò¸¦ °¡¸®Å°´Â Æ÷ÀÎÅ͵éÀÇ ¹è¿­À» ¸¸µé ¼ö ÀÖ½À´Ï´Ù. °í·Î ¿ì¸®´Â 0x58/4 0x22 °ªÀ» °¡Áö´Â ¹®ÀÚ¿­À» »ç¿ëÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù. ÀÌÁ¦ ¿ì¸®´Â °ª ¼Ó¼ºÀ» ÀÌ ¹®ÀÚ¿­·Î µÑ ¼ö ÀÖ½À´Ï´Ù. º¸¼¼¿ä, EIP¸¦ Á÷Á¢ Á¶ÀÛÇÕ´Ï´Ù. values ¾È¿¡ µé¾î°¡¾ß ÇÏ´Â »ö»ó °ªÀÌ Á¤»óÀûÀÎ °ªÀÌ ¾Æ´Ï¸é exceptionÀÌ ³ª¼­ pocÄڵ尡 Á¾·áµÇ±â ¶§¹®¿¡ try except ±¸¹®À» »ç¿ëÇؼ­ ³Ö¾îÁà¾ß ÇÕ´Ï´Ù. ÀÌ Äڵ带 ¼öÇàÇϸé Ãß°¡ÀûÀÎ ÇÒ´çÀ̳ª ÇØÁ¦°¡ ÀÖÀ» ¼ö ÀÖÁö¸¸ °ø°Ý¿¡ Å« ¿µÇâÀ» ¹ÌÄ¡Áø ¾Ê½À´Ï´Ù. EIP°¡ º¯°æµÇ¾ú±â ¶§¹®¿¡ XP¶ó¸é ÀϹÝÀûÀÎ ROP ¸¦ ÇÏ¸é µË´Ï´Ù.