Created
October 19, 2015 22:33
-
-
Save apsun/510c37e380e152561f1c to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name SHSID WiFi AutoLogin | |
// @namespace crossbowffs | |
// @description Automatically enters your username and password on the SHSID WiFi login page. | |
// @include http://192.255.255.94/ | |
// @version 1.0 | |
// ==/UserScript== | |
//-------Change these values------- | |
var username = "YOUR_USERNAME_HERE"; // e.g: G2042010546 | |
var password = "YOUR_PASSWORD_HERE"; // e.g: 0xy63n | |
var submit = true; // If false, the script will not submit your login data. | |
//--------------------------------- | |
function fill_only() { | |
var form = document.forms["f1"]; | |
if (typeof form == "undefined") return; | |
var form_username = form.elements["DDDDD"]; | |
var form_password = form.elements["upass"]; | |
form_username.value = username; | |
form_password.value = password; | |
} | |
function fill_and_submit() { | |
var form = document.forms["f0"]; | |
if (typeof form == "undefined") return; | |
var form_R1 = form.elements["R1"]; | |
var form_R2 = form.elements["R2"]; | |
var form_username = form.elements["DDDDD"]; | |
var form_password = form.elements["upass"]; | |
var salt_pid = "1"; | |
var salt_calg = "12345678"; | |
var encrypted_password = calcMD5(salt_pid+password+salt_calg)+salt_calg+salt_pid; | |
form_R1.value = 0; | |
form_R2.value = 1; | |
form_username.value = username; | |
form_password.value = encrypted_password; | |
form.submit(); | |
} | |
(function() { | |
// Notes on reverse engineered values (for nerds): | |
// f0 is the (invisible) form that is submitted to the server. | |
// f1 is the (visible) form that the user can enter data into. | |
// f0.R1 is a value that is always set to 0, for some reason. | |
// f0.R2 is a value that is set to 1 when logging in, before submitting. | |
// f0.DDDDD/f1.DDDDD is the plaintext username, which is case-sensitive. | |
// f0.upass is the encrypted password | |
// f1.upass is the plaintext password | |
if (submit) fill_and_submit(); else fill_only(); | |
})(); | |
//----------ORIGINAL FUNCTIONS USED TO GENERATE ENCRYPTED PASSWORD, DO NOT MODIFY---------- | |
function safe_add(e,a){var b=(e&65535)+(a&65535);return(e>>16)+(a>>16)+(b>>16)<<16|b&65535} | |
function rol(e,a){return e<<a|e>>>32-a} | |
function cmn(e,a,b,c,d,f){return safe_add(rol(safe_add(safe_add(a,e),safe_add(c,f)),d),b)} | |
function ff(e,a,b,c,d,f,g){return cmn(a&b|~a&c,e,a,d,f,g)} | |
function gg(e,a,b,c,d,f,g){return cmn(a&c|b&~c,e,a,d,f,g)} | |
function hh(e,a,b,c,d,f,g){return cmn(a^b^c,e,a,d,f,g)} | |
function ii(e,a,b,c,d,f,g){return cmn(b^(a|~c),e,a,d,f,g)} | |
function coreMD5(e){var a=1732584193,b=-271733879,c=-1732584194,d=271733878;for(i=0;i<e.length;i+=16)var f=a,g=b,h=c,k=d,a=ff(a,b,c,d,e[i+0],7,-680876936),d=ff(d,a,b,c,e[i+1],12,-389564586),c=ff(c,d,a,b,e[i+2],17,606105819),b=ff(b,c,d,a,e[i+3],22,-1044525330),a=ff(a,b,c,d,e[i+4],7,-176418897),d=ff(d,a,b,c,e[i+5],12,1200080426),c=ff(c,d,a,b,e[i+6],17,-1473231341),b=ff(b,c,d,a,e[i+7],22,-45705983),a=ff(a,b,c,d,e[i+8],7,1770035416),d=ff(d,a,b,c,e[i+9],12,-1958414417),c=ff(c,d,a,b,e[i+10],17,-42063), b=ff(b,c,d,a,e[i+11],22,-1990404162),a=ff(a,b,c,d,e[i+12],7,1804603682),d=ff(d,a,b,c,e[i+13],12,-40341101),c=ff(c,d,a,b,e[i+14],17,-1502002290),b=ff(b,c,d,a,e[i+15],22,1236535329),a=gg(a,b,c,d,e[i+1],5,-165796510),d=gg(d,a,b,c,e[i+6],9,-1069501632),c=gg(c,d,a,b,e[i+11],14,643717713),b=gg(b,c,d,a,e[i+0],20,-373897302),a=gg(a,b,c,d,e[i+5],5,-701558691),d=gg(d,a,b,c,e[i+10],9,38016083),c=gg(c,d,a,b,e[i+15],14,-660478335),b=gg(b,c,d,a,e[i+4],20,-405537848),a=gg(a,b,c,d,e[i+9],5,568446438),d=gg(d,a,b, c,e[i+14],9,-1019803690),c=gg(c,d,a,b,e[i+3],14,-187363961),b=gg(b,c,d,a,e[i+8],20,1163531501),a=gg(a,b,c,d,e[i+13],5,-1444681467),d=gg(d,a,b,c,e[i+2],9,-51403784),c=gg(c,d,a,b,e[i+7],14,1735328473),b=gg(b,c,d,a,e[i+12],20,-1926607734),a=hh(a,b,c,d,e[i+5],4,-378558),d=hh(d,a,b,c,e[i+8],11,-2022574463),c=hh(c,d,a,b,e[i+11],16,1839030562),b=hh(b,c,d,a,e[i+14],23,-35309556),a=hh(a,b,c,d,e[i+1],4,-1530992060),d=hh(d,a,b,c,e[i+4],11,1272893353),c=hh(c,d,a,b,e[i+7],16,-155497632),b=hh(b,c,d,a,e[i+10],23, -1094730640),a=hh(a,b,c,d,e[i+13],4,681279174),d=hh(d,a,b,c,e[i+0],11,-358537222),c=hh(c,d,a,b,e[i+3],16,-722521979),b=hh(b,c,d,a,e[i+6],23,76029189),a=hh(a,b,c,d,e[i+9],4,-640364487),d=hh(d,a,b,c,e[i+12],11,-421815835),c=hh(c,d,a,b,e[i+15],16,530742520),b=hh(b,c,d,a,e[i+2],23,-995338651),a=ii(a,b,c,d,e[i+0],6,-198630844),d=ii(d,a,b,c,e[i+7],10,1126891415),c=ii(c,d,a,b,e[i+14],15,-1416354905),b=ii(b,c,d,a,e[i+5],21,-57434055),a=ii(a,b,c,d,e[i+12],6,1700485571),d=ii(d,a,b,c,e[i+3],10,-1894986606), c=ii(c,d,a,b,e[i+10],15,-1051523),b=ii(b,c,d,a,e[i+1],21,-2054922799),a=ii(a,b,c,d,e[i+8],6,1873313359),d=ii(d,a,b,c,e[i+15],10,-30611744),c=ii(c,d,a,b,e[i+6],15,-1560198380),b=ii(b,c,d,a,e[i+13],21,1309151649),a=ii(a,b,c,d,e[i+4],6,-145523070),d=ii(d,a,b,c,e[i+11],10,-1120210379),c=ii(c,d,a,b,e[i+2],15,718787259),b=ii(b,c,d,a,e[i+9],21,-343485551),a=safe_add(a,f),b=safe_add(b,g),c=safe_add(c,h),d=safe_add(d,k);return[a,b,c,d]} | |
function binl2hex(e){for(var a="",b=0;b<4*e.length;b++)a+="0123456789abcdef".charAt(e[b>>2]>>b%4*8+4&15)+"0123456789abcdef".charAt(e[b>>2]>>b%4*8&15);return a} | |
function str2binl(e){for(var a=(e.length+8>>6)+1,b=Array(16*a),c=0;c<16*a;c++)b[c]=0;for(c=0;c<e.length;c++)b[c>>2]|=(e.charCodeAt(c)&255)<<c%4*8;b[c>>2]|=128<<c%4*8;b[16*a-2]=8*e.length;return b} | |
function calcMD5(e){return binl2hex(coreMD5(str2binl(e)))}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment