Skip to content

Instantly share code, notes, and snippets.

@apsun
Created October 19, 2015 22:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save apsun/510c37e380e152561f1c to your computer and use it in GitHub Desktop.
Save apsun/510c37e380e152561f1c to your computer and use it in GitHub Desktop.
// ==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