Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Cryptography & Encryption Ver- und Entschlüsselung, Algorithmen, Kryptoanalyse ? Kryptographie in der Praxis. Blowfish, Triple-DES, XOR u.a.

Javascript Passwortabfrage mit MD5 knacken?

Diskussion: Javascript Passwortabfrage mit MD5 knacken? im Forum Cryptography & Encryption, in der Kategorie Security Area; Anzeige Hallo - ich habe hier eine Passwortabfrage, allerdings keine Ahnung ob bzw. wie ich hier draus das Passwort lesen ...

Antwort
Alt 11.03.08, 17:48   #1 (permalink)
 
Registriert seit: 11.03.08
molnitza Leistung: Facit NTK
Likes: 0
Standard Javascript Passwortabfrage mit MD5 knacken?

Anzeige

Hallo - ich habe hier eine Passwortabfrage, allerdings keine Ahnung ob bzw. wie ich hier draus das Passwort lesen kann. Es wäre nett, wenn mir jemand behilflich sein könnte.


#
<SCRIPT language="JavaScript">
<!-- //
// if(top.location != self.location) {
// top.location.href = "rpAuth.html";
// top.location.pathname = "rpAuth.html";
// }

var hex_chr = "0123456789abcdef";
function rhex(num)
{
var str = "";

for(var j = 0; j <= 3; j++)
str += hex_chr.charAt((num >> (j * 8 + 4)) & 0x0F) + hex_chr.charAt((num >> (j * 8)) & 0x0F);

return str;
}

function str2blks_MD5(str)
{
var nblk = ((str.length + 8) >> 6) + 1;
var blks = new Array(nblk * 16);

for(var i = 0; i < nblk * 16; i++) blks[i] = 0;
for(i = 0; i < str.length; i++)
blks[i >> 2] |= str.charCodeAt(i) << ((i % 4) * 8);

blks[i >> 2] |= 0x80 << ((i % 4) * 8);
blks[nblk * 16 - 2] = str.length * 8;

return blks;
}

function add(x, y)
{
return ((x&0x7FFFFFFF) + (y&0x7FFFFFFF)) ^ (x&0x80000000) ^ (y&0x80000000);
}

function rol(num, cnt)
{
return (num << cnt) | (num >>> (32 - cnt));
}

function cmn(q, a, b, x, s, t)
{
return add(rol(add(add(a, q), add(x, t)), s), b);
}

function ff(a, b, c, d, x, s, t)
{
return cmn((b & c) | ((~b) & d), a, b, x, s, t);
}

function gg(a, b, c, d, x, s, t)
{
return cmn((b & d) | (c & (~d)), a, b, x, s, t);
}

function hh(a, b, c, d, x, s, t)
{
return cmn(b ^ c ^ d, a, b, x, s, t);
}

function ii(a, b, c, d, x, s, t)
{
return cmn(c ^ (b | (~d)), a, b, x, s, t);
}

function calcMD5(str)
{
var x = str2blks_MD5(str);
var a = 0x67452301;
var b = 0xEFCDAB89;
var c = 0x98BADCFE;
var d = 0x10325476;

for(var i = 0; i < x.length; i += 16)
{
var olda = a;
var oldb = b;
var oldc = c;
var oldd = d;

a = ff(a, b, c, d, x[i+ 0], 7 , 0xD76AA478);
d = ff(d, a, b, c, x[i+ 1], 12, 0xE8C7B756);
c = ff(c, d, a, b, x[i+ 2], 17, 0x242070DB);
b = ff(b, c, d, a, x[i+ 3], 22, 0xC1BDCEEE);
a = ff(a, b, c, d, x[i+ 4], 7 , 0xF57C0FAF);
d = ff(d, a, b, c, x[i+ 5], 12, 0x4787C62A);
c = ff(c, d, a, b, x[i+ 6], 17, 0xA8304613);
b = ff(b, c, d, a, x[i+ 7], 22, 0xFD469501);
a = ff(a, b, c, d, x[i+ 8], 7 , 0x698098D8);
d = ff(d, a, b, c, x[i+ 9], 12, 0x8B44F7AF);
c = ff(c, d, a, b, x[i+10], 17, 0xFFFF5BB1);
b = ff(b, c, d, a, x[i+11], 22, 0x895CD7BE);
a = ff(a, b, c, d, x[i+12], 7 , 0x6B901122);
d = ff(d, a, b, c, x[i+13], 12, 0xFD987193);
c = ff(c, d, a, b, x[i+14], 17, 0xA679438E);
b = ff(b, c, d, a, x[i+15], 22, 0x49B40821);

a = gg(a, b, c, d, x[i+ 1], 5 , 0xF61E2562);
d = gg(d, a, b, c, x[i+ 6], 9 , 0xC040B340);
c = gg(c, d, a, b, x[i+11], 14, 0x265E5A51);
b = gg(b, c, d, a, x[i+ 0], 20, 0xE9B6C7AA);
a = gg(a, b, c, d, x[i+ 5], 5 , 0xD62F105D);
d = gg(d, a, b, c, x[i+10], 9 , 0x02441453);
c = gg(c, d, a, b, x[i+15], 14, 0xD8A1E681);
b = gg(b, c, d, a, x[i+ 4], 20, 0xE7D3FBC8);
a = gg(a, b, c, d, x[i+ 9], 5 , 0x21E1CDE6);
d = gg(d, a, b, c, x[i+14], 9 , 0xC33707D6);
c = gg(c, d, a, b, x[i+ 3], 14, 0xF4D50D87);
b = gg(b, c, d, a, x[i+ 8], 20, 0x455A14ED);
a = gg(a, b, c, d, x[i+13], 5 , 0xA9E3E905);
d = gg(d, a, b, c, x[i+ 2], 9 , 0xFCEFA3F8);
c = gg(c, d, a, b, x[i+ 7], 14, 0x676F02D9);
b = gg(b, c, d, a, x[i+12], 20, 0x8D2A4C8A);

a = hh(a, b, c, d, x[i+ 5], 4 , 0xFFFA3942);
d = hh(d, a, b, c, x[i+ 8], 11, 0x8771F681);
c = hh(c, d, a, b, x[i+11], 16, 0x6D9D6122);
b = hh(b, c, d, a, x[i+14], 23, 0xFDE5380C);
a = hh(a, b, c, d, x[i+ 1], 4 , 0xA4BEEA44);
d = hh(d, a, b, c, x[i+ 4], 11, 0x4BDECFA9);
c = hh(c, d, a, b, x[i+ 7], 16, 0xF6BB4B60);
b = hh(b, c, d, a, x[i+10], 23, 0xBEBFBC70);
a = hh(a, b, c, d, x[i+13], 4 , 0x289B7EC6);
d = hh(d, a, b, c, x[i+ 0], 11, 0xEAA127FA);
c = hh(c, d, a, b, x[i+ 3], 16, 0xD4EF3085);
b = hh(b, c, d, a, x[i+ 6], 23, 0x04881D05);
a = hh(a, b, c, d, x[i+ 9], 4 , 0xD9D4D039);
d = hh(d, a, b, c, x[i+12], 11, 0xE6DB99E5);
c = hh(c, d, a, b, x[i+15], 16, 0x1FA27CF8);
b = hh(b, c, d, a, x[i+ 2], 23, 0xC4AC5665);

a = ii(a, b, c, d, x[i+ 0], 6 , 0xF4292244);
d = ii(d, a, b, c, x[i+ 7], 10, 0x432AFF97);
c = ii(c, d, a, b, x[i+14], 15, 0xAB9423A7);
b = ii(b, c, d, a, x[i+ 5], 21, 0xFC93A039);
a = ii(a, b, c, d, x[i+12], 6 , 0x655B59C3);
d = ii(d, a, b, c, x[i+ 3], 10, 0x8F0CCC92);
c = ii(c, d, a, b, x[i+10], 15, 0xFFEFF47D);
b = ii(b, c, d, a, x[i+ 1], 21, 0x85845DD1);
a = ii(a, b, c, d, x[i+ 8], 6 , 0x6FA87E4F);
d = ii(d, a, b, c, x[i+15], 10, 0xFE2CE6E0);
c = ii(c, d, a, b, x[i+ 6], 15, 0xA3014314);
b = ii(b, c, d, a, x[i+13], 21, 0x4E0811A1);
a = ii(a, b, c, d, x[i+ 4], 6 , 0xF7537E82);
d = ii(d, a, b, c, x[i+11], 10, 0xBD3AF235);
c = ii(c, d, a, b, x[i+ 2], 15, 0x2AD7D2BB);
b = ii(b, c, d, a, x[i+ 9], 21, 0xEB86D391);

a = add(a, olda);
b = add(b, oldb);
c = add(c, oldc);
d = add(d, oldd);
}

return rhex(a) + rhex(b) + rhex(c) + rhex(d);
}

function passwordMD5(str)
{
var MDstring = calcMD5(str);

return MDstring;
}

function LoginClick(hiddenPassword, loginPassword)
{
var passwordStr = passwordMD5(loginPassword.value);

hiddenPassword.value = passwordStr;
loginPassword.value = "ZyXEL ZyWALL Series";

return;
}

var interval = 60 ; //sec
setInterval("window.location.reload();", interval * 1000);

// -->
</SCRIPT>
#

molnitza ist offline   Mit Zitat antworten
Alt 11.03.08, 17:59   #2 (permalink)
 
Registriert seit: 03.03.08
Knoxx Leistung: Facit NTK
Likes: 0
Standard

Ich kann kein JavaScript, aber das sieht so aus, als ob nur eine Eingabe verschlüsselt wird und dann vermute ich mal blind, dass man so nicht direkt an das PW kommt.
Aber das soll vielleicht noch jmd kommentieren, der den Code besser versteht als ich.
Knoxx ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 11.03.08, 19:52   #3 (permalink)
 
Registriert seit: 02.06.07
Teflon Leistung: Facit NTK
Likes: 2
Standard

Wäre noch ganz interessant die HTML-Datei zu sehen in der das Script steht...
Darf ich fragen wo das herkommt?

Ansonsten stimm ich Knoxx zu, der nimmt die Eingabe, verschlüsselt die (berechnet den MD5 Hash, wenn man den function Namen trauen kann) und speichert das Ergebniss in einem versteckten Feld auf der Seite.

-->ab jetzt reine Vermutung aus Dummheit/Unerfahrenheit ?(

Der Wert der dann in dem hiddenPassword Feld steht wird mit einem gespeicherten MD5-Hash verglichen. Wenn du den hättest könntest du evtl. eine Eingabe zurückrechnen die denselben Wert ergibt wenn sie durch das Javascript gedreht wird und damit den Login machen.

Aber eigentlich kann man den vorigen Absatz getrost in Frageform umwandeln
Ist das so wie ich mir das denke?
Teflon ist offline   Mit Zitat antworten
Alt 12.03.08, 01:05   #4 (permalink)
 
Registriert seit: 17.02.06
Harry Boeck Leistung: Facit NTK
Likes: 0
Standard

Geht's um sowas?

http://secunia.com/product/147/?task=advisories

Ansonsten: MD5 wird zwar des öfteren als "gebrochen" bezeichnet. Aber das bezieht sich nur auf sehr spezielle Spezialfälle, wo man einen Klartext hat und den zu zwei geringfügig (in genau einem Block) unterschiedlichen Varianten erweitern möchte, die denselben MD5 erzeugen. - WENN ich das richtig verstanden habe (ich bin leider kein Mathematiker)...

Den besten Kommentar dazu (verständlich formuliert ohne höhere Mathematik) hat Elderan hier im HaBo geschrieben (Mathe-Studenten und -Profs sollten sich an seiner Ausdrucksweise ein Beispiel nehmen!):

MD5 entgueltig gebrochen
Harry Boeck ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Security Area » Cryptography & Encryption » Javascript Passwortabfrage mit MD5 knacken?
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Passwortabfrage Lemon (Web-) Design und webbasierte Sprachen 6 06.05.08 23:02
Javascript - Passwortabfrage Machine Code Kitchen 5 05.09.07 10:41
Windows XP - Passwortabfrage Shunmai Die Problemzone 4 05.05.07 14:05
Passwortabfrage in C++ reaLInsanity Code Kitchen 29 11.01.06 16:30
unbekannte Passwortabfrage Reboot Windows 17 08.02.05 15:18


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61