Hack mich!

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Benutzeravatar
Kiffi
Beiträge: 10620
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Hack mich!

Beitrag von Kiffi »

Ihr Lieben,

ich habe hier eine kleine Test-Seite erstellt, deren JavaScript verschlüsselt wurde:

http://test.tuebben.de/CryptTest/

Könnt Ihr mir bitte den Gefallen tun und versuchen, Benutzernamen und das Passwort herauszufinden, damit ich einschätzen kann, wie gut die Verschlüsselung ist?

Mit Dank im Voraus & Grüßen ... Peter
Hygge
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Hack mich!

Beitrag von NicTheQuick »

Welche Verschlüsselung nutzt du denn?
Und es wäre toll, wenn du uns die Arbeit nehmen würdest den Javascript-Code wieder kenntlich zu machen. Der ist ja scheinbar minimiert worden.

Edit: Momentan sieht der Code ja eher so nach den typischen Ransomware-Trojanern aus. Ich hoffe deine Verschlüsselung ist nicht "Security by Obscurity", sondern was anständiges. :D
Bild
Benutzeravatar
Dadido3
Beiträge: 103
Registriert: 24.02.2007 22:15
Kontaktdaten:

Re: Hack mich!

Beitrag von Dadido3 »

Von verschlüsselung sehe ich nichts, das sieht einfach nach code aus der von irgendeiner Sprache nach JavaScript transpiliert wurde.

Benutzername: ItsyBitsyTeenieWeenie
Passwort: HonoluluStrandbikini

Edit:

Meine Vorgehensweise:
  • Seite in Firefox mit Entwicklerwerkzeugen öffnen
  • Im Element-Inspektor dem Event-Handler des Buttons folgen
  • Firefox zeigt dann den den JavaScript code, welcher zur Laufzeit erstellt wurde. Also quasi der "Entschlüsselte" code.
  • Durch Verfolgen des Codeflusses kommt man zu:

    Code: Alles auswählen

    this.cmdloginclick = function (_be) {
        if (_B == null) _B = this;
        var _B6;
        _B6 = false;
        if (_B._B1.value() == 'ItsyBitsyTeenieWeenie') {
          if (_B._B2.value() == 'HonoluluStrandbikini') {
            _B6 = true;
          }
        }
        if (_B6 == true) {
          _B._B4.text('Login erfolgreich!');
        } else {
          _B._B4.text('Login fehlgeschlagen!');
        }
      };
Es macht keinen Sinn sowas wie Logins browserseitig auszuführen. Es spielt keine rolle, welche noch so ausgefeilte Methode man sich ausdenkt. Alles was im Browser ausgeführt wird, kann manipuliert und ausgewertet werden.

Falls es darum geht, zugang zu einer "Webapp" zu gewähren, welche auch offline verfügbar sein soll, dann muss die Webapp verschlüsselt werden.
Dabei darf kein Passwort (Klartext oder verschlüsselt/gehasht) vorliegen, sondern die Applikation muss mit einem Passwort verschlüsselt werden. Bei Eingabe eines korrekten Passwortes, kann dann der code entschlüsselt und ausgeführt werden.

Aber diese Methode ist nicht so sicher, wie eine online Applikation, da ein Angreifer beliebig viele passwörter in beliebiger Geschwindigkeit ausprobieren kann.

Also, was ist das Ziel hier?
Zuletzt geändert von Dadido3 am 27.05.2019 15:51, insgesamt 3-mal geändert.
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Hack mich!

Beitrag von RSBasic »

Ich werde heute Abend mal versuchen, falls bis dahin noch nicht geknackt wurde. :D

\\Edit:
Oh, zu spät. :lol:
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Hack mich!

Beitrag von NicTheQuick »

Dadido3 hat geschrieben:Von verschlüsselung sehe ich nichts, das sieht einfach nach code aus der von irgendeiner Sprache nach JavaScript transpiliert wurde.
Cool, wie hast du es gemacht? Bin da unerfahren mit Javascript Debugging. Da finde ich mich nie zurecht oder hab einfach keine anständige Umgebung dafür.
Bild
Benutzeravatar
Kiffi
Beiträge: 10620
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Hack mich!

Beitrag von Kiffi »

Dadido3 hat geschrieben:Benutzername: ItsyBitsyTeenieWeenie
Passwort: HonoluluStrandbikini
:lol: Das ging in der Tat ziemlich schnell. :allright:

Darf ich fragen, wie Du dabei vorgegangen bist?

Danke & Grüße ... Peter
Hygge
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Hack mich!

Beitrag von NicTheQuick »

Auf jeden Fall schon mal drei Tipps von mir:
- Passwörter nicht clientseitig überprüfen
- Passwörter immer gehasht und gesalzen speichern, wenn man mag auch noch mit ein bisschen Pfeffer würzen
- Keine eigenen Verschlüsselungsalgorithmen erfinden, sondern etablierte offene Standards nutzen
Bild
Benutzeravatar
Dadido3
Beiträge: 103
Registriert: 24.02.2007 22:15
Kontaktdaten:

Re: Hack mich!

Beitrag von Dadido3 »

Ich hab den Beitrag oben ergänzt.

Trotzdem würde ich gerne wissen, was das eigentliche Ziel ist. Es gibt wahrscheinlich verbreitete und sichere Lösungen, je nach Randbedingungen.
Benutzeravatar
Kiffi
Beiträge: 10620
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Hack mich!

Beitrag von Kiffi »

NicTheQuick hat geschrieben:- Passwörter nicht clientseitig überprüfen
- Passwörter immer gehasht und gesalzen speichern, wenn man mag auch noch mit ein bisschen Pfeffer würzen
weiß ich. Es ging um eine erste Abschätzung der Widerstandsfähigkeit dieser "Verschlüsselung" (ich schreib das mal jetzt so, obwohl Dadido3 da wohl anderer Meinung ist).
NicTheQuick hat geschrieben:- Keine eigenen Verschlüsselungsalgorithmen erfinden, sondern etablierte offene Standards nutzen
ist nix erfundenes. Ist ein Algorithmus aus der crypto-js (https://github.com/brix/crypto-js)

Grüße ... Peter
Hygge
Benutzeravatar
Dadido3
Beiträge: 103
Registriert: 24.02.2007 22:15
Kontaktdaten:

Re: Hack mich!

Beitrag von Dadido3 »

Kiffi hat geschrieben:
NicTheQuick hat geschrieben:- Keine eigenen Verschlüsselungsalgorithmen erfinden, sondern etablierte offene Standards nutzen
ist nix erfundenes. Ist ein Algorithmus aus der crypto-js (https://github.com/brix/crypto-js)

Grüße ... Peter
Ok, so genau hab ich es mir nicht angesehen. Dann ist der Code wahrscheinlich wirklich verschlüsselt. Aber damit der Browser diesen ausführen kann liegt der Schlüssel mit bei.
Trotzdem, ich musste mir noch nicht mal die Arbeit machen irgendwelche Schlüssel im Quelltext zu suchen, und dann anschließend nach Daten zu suchen, welche damit entschlüsselt werden könnten.

Der Browser hat das ja bereits für mich erledigt, ich hab mir nur den Code zur Laufzeit angesehen. Sicherer wäre es, wenn du das eingegebene Passwort nutzt um den Code zu entschlüsseln.
Aber wie ich bereits oben geschrieben habe, ist es trotzdem nicht die beste Methode.
Antworten