Advertisement
Guest User

Cross-site request forgery attack from a site

a guest
Jun 24th, 2013
397
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. if (typeof _csrf_ == "undefined") {
  2.   _csrf_ = {}
  3. }
  4. if (typeof _tsbp_ == "undefined") {
  5.   _tsbp_ = {}
  6. }
  7. if (typeof _csrf_.vh == "undefined") {
  8.   _csrf_.vh = []
  9. }
  10. if (typeof _csrf_.vu == "undefined") {
  11.   _csrf_.vu = [/.*/]
  12. }(function (c, m) {
  13.     var l = function (e, b) {
  14.       if (e !== null && b !== null) {
  15.         if (e == "1") {
  16.           window.location.href = b;
  17.           return true
  18.         }
  19.         else {
  20.           if (e == "2") {
  21.             f(b);
  22.             return true
  23.           }
  24.           else {
  25.             if (e == "3") {
  26.               document.write(b);
  27.               document.close();
  28.               return true
  29.             }
  30.           }
  31.         }
  32.       }
  33.       return false
  34.     };
  35.     var i = function (b) {
  36.       var s = b;
  37.       if (typeof b.target != "undefined") {
  38.         s = b.target;
  39.         if (s.readyState == 4) {
  40.           s.removeEventListener("readystatechange", i, false)
  41.         }
  42.       }
  43.       if (s.readyState == 4) {
  44.         var p = s.getResponseHeader(m.ba);
  45.         var e = s.responseText;
  46.         return l(p, e)
  47.       }
  48.       return false
  49.     };
  50.     var f = function (b) {
  51.       if (window.document.body) {
  52.         var s = document.getElementById("_tsbp_tId");
  53.         if (!s) {
  54.           var p = document.createElement("div");
  55.           p.style.display = "none";
  56.           window.document.body.insertBefore(p, window.document.body.firstChild);
  57.           var e = "background-color: #dddddd; ";
  58.           e += "border: 5px solid red; padding: 5px; ";
  59.           e += "position: fixed; left: 6px; top: 10px; height: auto; width: auto; ";
  60.           e += "overflow: hidden; z-index: 999999;";
  61.           p.innerHTML = '<div id="_tsbp_aId" style="' + e + '"><div id=\'_tsbp_tId\'></div><div style="height: 10px; font-weight: bold; margin: 10px 10px 10px 10px; text-align: right;"><a href="javascript: void(0);" onclick="document.getElementById(\'_tsbp_aId\').parentNode.style.display = \'none\';"><span><span>[Close this message]</span></span></a></div></div>';
  62.           s = document.getElementById("_tsbp_tId")
  63.         }
  64.         s.innerHTML = b;
  65.         document.getElementById("_tsbp_aId").parentNode.style.display = ""
  66.       }
  67.     };
  68.     var q = function (b) {
  69.       return b.split("&").join("&amp;").split("<").join("&lt;").split('"').join("&quot;")
  70.     };
  71.     var k = function (e) {
  72.       if (/^\w+:/.test(e) === false) {
  73.         var b = document.createElement("div");
  74.         b.innerHTML = '<a href="' + q(e) + '">.</a>';
  75.         e = b.firstChild.href
  76.       }
  77.       return e
  78.     };
  79.     var h = function (s, b) {
  80.       var v = s;
  81.       var t = k(v);
  82.       if (v != null && v != "") {
  83.         if (o(t) && d(t) && n(t) && (-1 == v.indexOf(c.pn + "=" + c.pv))) {
  84.           var p = v.indexOf("#");
  85.           var w;
  86.           if (p != -1) {
  87.             w = v.substring(p);
  88.             v = v.substring(0, p)
  89.           }
  90.           var e = v.indexOf("?");
  91.           if (e == -1) {
  92.             if (b === "POST" || b === "post") {
  93.               v += "?"
  94.             }
  95.             else {
  96.               return s
  97.             }
  98.           }
  99.           if (v.search(/\?$/) == -1) {
  100.             v += "&"
  101.           }
  102.           v += c.pn + "=" + c.pv;
  103.           if (p != -1) {
  104.             v += w
  105.           }
  106.         }
  107.       }
  108.       return v
  109.     };
  110.     var d = function (t) {
  111.       var s = window.document.createElement("a");
  112.       s.href = t;
  113.       if (typeof s.pathname == "undefined") {
  114.         return true
  115.       }
  116.       u = s.pathname;
  117.       if (u === "" || u[0] !== "/") {
  118.         u = "/" + u
  119.       }
  120.       for (var b = 0; b < c.vu.length; b++) {
  121.         try {
  122.           if (u.match(c.vu[b])) {
  123.             return true
  124.           }
  125.         }
  126.         catch (p) {
  127.           return true
  128.         }
  129.       }
  130.       return false
  131.     };
  132.     var n = function (v) {
  133.       var p = function (z) {
  134.         var A = window.document.createElement("a");
  135.         A.href = z;
  136.         var w = "-";
  137.         try {
  138.           w = A.host;
  139.           if (!w) {
  140.             w = window.location.hostname
  141.           }
  142.           if (w.match(/:\d+$/)) {
  143.             var y = window.location.hostname;
  144.             if (!y.match(/:\d+$/)) {
  145.               w = w.replace(/:\d+$/, "")
  146.             }
  147.           }
  148.         }
  149.         catch (x) {}
  150.         return w
  151.       };
  152.       var t = p(v);
  153.       if (true && window && window.location && window.location.hostname && t === window.location.hostname) {
  154.         return true
  155.       }
  156.       for (var b = 0; b < c.vh.length; b++) {
  157.         try {
  158.           if (t.match(c.vh[b])) {
  159.             return true
  160.           }
  161.         }
  162.         catch (s) {}
  163.       }
  164.       return false
  165.     };
  166.     var o = function (e) {
  167.       var b = false;
  168.       if (e.match(/^http/i) || e.substring(0, 1) == "/" || (e.indexOf("://") == -1 && !e.match(/^urn:/i))) {
  169.         b = true
  170.       }
  171.       if (e.match(/^mailto:/i)) {
  172.         b = false
  173.       }
  174.       return b
  175.     };
  176.     var a = function (w) {
  177.       if (!w || typeof w.elements == "undefined") {
  178.         return
  179.       }
  180.       for (var s = 0; s < w.elements.length; s++) {
  181.         if (w.elements[s].name === c.pn) {
  182.           return
  183.         }
  184.       }
  185.       var v = (w.attributes.action != null) ? w.attributes.action.value : "";
  186.       try {
  187.         v.match(/./)
  188.       }
  189.       catch (x) {
  190.         v = window.location.href
  191.       }
  192.       if ((!v) || (v === null) || (v === undefined) || (v.match(/^\s*$/))) {
  193.         v = window.location.href
  194.       }
  195.       v = k(v);
  196.       if (d(v) && o(v) && n(v)) {
  197.         var t = (w.attributes.method != null) ? w.attributes.method.value : "";
  198.         if (c.f == 0 && t.toLowerCase() == "post") {
  199.           try {
  200.             var p = v.indexOf("#");
  201.             var y = "";
  202.             if (p != -1) {
  203.               y = v.substring(p);
  204.               v = v.substring(0, p)
  205.             }
  206.             if (v.indexOf("?") == -1) {
  207.               v += "?"
  208.             }
  209.             v = h(v, "GET");
  210.             w.attributes.action.value = v + y
  211.           }
  212.           catch (x) {}
  213.           return
  214.         }
  215.         var b = document.createElement("input");
  216.         b.type = "hidden";
  217.         b.name = c.pn;
  218.         b.value = c.pv;
  219.         w.appendChild(b)
  220.       }
  221.     };
  222.     var r = function () {
  223.       var p = window.document.getElementsByTagName("a");
  224.       for (var t = 0; t < p.length; t++) {
  225.         try {
  226.           var s = p[t].innerHTML;
  227.           var x = h(p[t].getAttribute("href", 2), "GET");
  228.           if (x != null && x != "") {
  229.             p[t].setAttribute("href", x);
  230.             if (p[t].innerHTML != s) {
  231.               p[t].innerHTML = s
  232.             }
  233.           }
  234.         }
  235.         catch (w) {}
  236.       }
  237.       var b = window.document.getElementsByTagName("form");
  238.       for (var v = 0; v < b.length; v++) {
  239.         a(b[v])
  240.       }
  241.     };
  242.     var g = function () {
  243.       var b = window.XMLHttpRequest;
  244.  
  245.       function e() {
  246.         this.base = b ? new b : new window.ActiveXObject("Microsoft.XMLHTTP")
  247.       }
  248.  
  249.       function p() {
  250.         return new e
  251.       }
  252.       p.prototype = e.prototype;
  253.       p.UNSENT = 0;
  254.       p.OPENED = 1;
  255.       p.HEADERS_RECEIVED = 2;
  256.       p.LOADING = 3;
  257.       p.DONE = 4;
  258.       p.prototype.status = 0;
  259.       p.prototype.statusText = "";
  260.       p.prototype.readyState = p.UNSENT;
  261.       p.prototype.responseText = "";
  262.       p.prototype.responseXML = null;
  263.       p.prototype.onsend = null;
  264.       p.url = null;
  265.       p.onreadystatechange = null;
  266.       p.prototype.open = function (y, v, w, t, x) {
  267.         var s = this;
  268.         this.url = v;
  269.         if (c.pn) {
  270.           this.url = h(v, y)
  271.         }
  272.         this.base.onreadystatechange = function () {
  273.           try {
  274.             s.status = s.base.status
  275.           }
  276.           catch (z) {}
  277.           try {
  278.             s.statusText = s.base.statusText
  279.           }
  280.           catch (z) {}
  281.           try {
  282.             s.readyState = s.base.readyState
  283.           }
  284.           catch (z) {}
  285.           try {
  286.             s.responseText = s.base.responseText
  287.           }
  288.           catch (z) {}
  289.           try {
  290.             s.responseXML = s.base.responseXML
  291.           }
  292.           catch (z) {}
  293.           if (m.ba && m.bh && i(this)) {
  294.             return
  295.           }
  296.           if (s.onreadystatechange != nu < /b{s.onreadystatechange.apply(this,arguments)}};this.base.open(y,this.url,w,t,x)};p.prototype.send=function(s){if(m.ba&&m.bh){this.base.setRequestHeader(m.bh,"true")}this.base.send(s)};p.prototype.abort=function(){this.base.abort()};p.prototype.getAllResponseHeaders=function(){return this.base.getAllResponseHeaders()};p.prototype.getResponseHeader=function(s){return this.base.getResponseHeader(s)};p.prototype.setRequestHeader=function(s,t){return this.base.setRequestHeader(s,t)};window.XMLHttpRequest=p};try{if(navigator.appName=="Microsoft Internet Explorer"){g()}else{if(c.pn){XMLHttpRequest.prototype._open=XMLHttpRequest.prototype.open;XMLHttpRequest.prototype.open=function(t,e,p,b,s){arguments[1]=h(e,t);this._open.apply(this,arguments)}}if(m.ba&&m.bh){XMLHttpRequest.prototype._tsbp_s=XMLHttpRequest.prototype.__lookupSetter__("onreadystatechange");if(typeof XMLHttpRequest.prototype._tsbp_s!="undefined"){XMLHttpRequest.prototype.__defineSetter__("onreadystatechange",function(e){var b=function(){if(i(this)){return}e()};this._tsbp_s(b)})}XMLHttpRequest.prototype._send=XMLHttpRequest.prototype.send;XMLHttpRequest.prototype.send=function(b){this.setRequestHeader(m.bh,"true");if((XMLHttpRequest.prototype._tsbp_s==null)&&(typeof this.addEventListener==="function")){this.addEventListener("readystatechange",i,false)}this._send.apply(this,arguments)}}}}catch(j){}if(c.pv!=undefined){if(!!window.addEventListener){window.addEventListener("load",r,false)}else{if(!!window.attachEvent){window.attachEvent("onload",r)}else{window.onload=r}}}delete _csrf_;delete _tsbp_})    (_csrf_,_tsbp_);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement