Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
28.09.2003, 19:30
Mazze



Hi!
Ein Kumpel will seine Seite mit einem Script schützen.
Und zwar dieses hier:
Quellcode:<script language="JavaScript" type="text/javascript">
  var soll=2468;            /* Sollwert - siehe Anleitung            */
  var rechnen=false;        /* auf true abaendern, um einen Sollwert */
                            /* zu errechnen - siehe Anleitung        */
  var fehlerseite='fehler'; /* ohne '.htm' bzw. '.html' eingeben     */
  var extension='.htm';     /* .htm oder .html (mit Punkt angeben!)  */

  var ist=0;
  var i=0;
  var code="!#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_abcdefghijklmnopqrstuvwxyz{|}";

  var passwort = "" + window.prompt("Bitte geben Sie das Passwort ein:","");
  if (passwort.length)
    {
      for (i=0; i<=passwort.length-1; i++)
        ist=ist+(i+1)*code.indexOf(passwort.charAt(i));
      if (ist!=soll)
        passwort=fehlerseite;
      if (rechnen)
        alert (ist);
      else
        self.location.href=passwort+extension;
    }
  else
    self.location.href=fehlerseite+extension;
</script>
Er kann nichts serverseitiges machen, oder so.

Also es giebt hier ja praktisch unendlich viele Lösungen und der Witz ist auch nicht, dass man den Algorithmus zurückverfolgen soll, oder ähnliches. Eigentlich muss man nur wissen, wie die Seiten heißen, die auf dem Server sind.
Ich hab ihm gesagt, dass wenn er ein index.htm File erstellt, dass dann niemand schauen kann, was er im Ordner hat.
Ich nachhinein bin ich mir da nicht mehr so sicher....
Vielleicht wisst ihr da mehr.

PS: Das sind keine wahnsinnig geheimen Infos, die da verschlüsselt werden sollen, aber es wär nett, wenn nicht jeder Depp rein kann.

cu

--

BattleTech-MOD:
http://bthl.unitedgaming.net/

zum Seitenanfang zum Seitenende Profil || Suche
001
29.09.2003, 18:58
Hanfling



Java Script halte ich da für sehr ungeeignet. Zur not mach das mit PHP und in einer Datei die pwd's gespeichert. Es gibt ja z.T. PHP Webspace ohne MySQL, da kannst du dann auch z.B. mit der PHP Datenbank API von cworkers.ch arbeiten.

--

Nun ist deine Zeit gekommen sprach der Tod, stolperte und brach sich das Genick. :o

zum Seitenanfang zum Seitenende Profil || Suche
002
29.09.2003, 21:53
Megge



Zitat:
Er kann nichts serverseitiges machen, oder so.
geh ma auf http://selfhtml.teamone.de -> Forum
dort solltest schneller hilfe erhalten.

ansonsten ab nach #html (.de) im q-net.

--

zum Seitenanfang zum Seitenende Profil || Suche
003
29.09.2003, 21:55
Milchtrinka



Hmm, ich denke er sollte ein HT-ACCESS drauf machen. Ich bin mir aber nicht sicher ob das geht wenn er nicht serverseitiges machen kann.

--

zum Seitenanfang zum Seitenende Profil || Suche
004
30.09.2003, 11:31
Prefect



Eine kleine Lektion in Computersicherheit ist - denke ich - angebracht.
Ich kann dir jetzt natürlich nicht sagen, was das Passwort ist, immerhin handelt es sich hier um eine Art Hash, d.h. um ein Many-to-One-Mapping. Ich hoffe aber, dass dir klar ist, dass es äußerst einfach ist, *ein* mögliches Passwort zu errechnen. Kryptographisch gesehen ist das ein sehr schwacher Hash.
Das allein bringt natürlich nichts, weil das Passwort mit dem Namen einer existierenden HTML-Datei übereinstimmen muss.

Du (oder dein Kumpel) willst eine Website sicherer machen. Nun - du hast es versucht. Aber durch deinen Versuch mit JavaScript ist die Website in Wirklichkeit unsicherer geworden! Glaubst du nicht? Okay, here goes:

Die "sichere" Lösung wäre es, Directory Listings zu verhindern (habt ihr sicher gemacht) und entweder gar keine index.html reinzustellen, oder eine index.html, die dem Besucher der Seite vorspiegelt, dass hier nichts interessantes zu sehen ist (z.B. nur eine gefakete zwei Jahre alte Seite von irgendwelchen Kiddies, die einen CS-Klon machen wollen).

Vergleichen wir einmal die Plain-Methode mit der JavaScript-Methode:
1. Vom psychologischen Standpunkt her:
Bei der Plain-Methode wird ein potentieller Angreifer nichts sehen, was auf eine versteckte, interessante Website hinweist. Falls er also nicht schon mit Sicherheit weiß, dass es hier was zu holen gibt, wird er einfach weiterschauen.
Mit der JavaScript-Methode sieht er ein Password-Prompt - das reizt natürlich dazu, nachzuschauen, ob und was hier zu holen ist.

2. Von der Angriffsmethode her:
Es ist klar, dass ohne einen Apache-Bug die einzige Möglichkeit, hier reinzukommen, Brute-Force ist. Der Angreifer darf sich auf viele 404-Antworten gefasst machen.

Bei der Plain-Methode hat er keinerlei Anhaltspunkt dafür, was für einen Namen die versteckte HTML-Datei hat.

Bei der JavaScript-Methode kann er jedoch jeden Namen vor dem Ausprobieren durch das JavaScript (oder ein schnell gebautes Äquivalent) durchjagen, um im Vornherein zu prüfen, ob der Name richtig sein könnte. Du ersparst durch das JavaScript einem Angreifer also sehr viele Fehlversuche!

Da der verwendete "Hash" sehr schwach ist, offenbarst du sogar noch mehr Informationen. So muss das gesuchte Passwort z.B. ca. 10 Zeichen lang sein (~ sqrt(4*wert/anzahl möglicher zeichen)), wobei ein kleinbuchstabiges Passwort entsprechend kürzer wäre. Würde man davon ausgehen, dass der Seitenname ein einigermaßen lesbares Wort ist, vielleicht mit eingestreuten Zahlen, so hat man schon mal einen sehr guten Ausgangspunkt für eine Brute-Force-Attacke.

Also: Wenn Server-seitig nichts möglich ist, dann solltet ihr dem Angreifer *gar keine* Informationen geben. Eine client-seitige Passwortabfrage ist die ideale Fundgrube für Informationen.

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.


Dieser Beitrag wurde am 30.09.2003 um 11:31 von Prefect bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
005
30.09.2003, 15:31
Mazze



Das mit dem Hash und so war mir schon klar...
Aber danke, für die andere Methode, die könnte man sich mal anschaun...

Auch danke für den Forum-Link.

Allerdings ist, wie Prefect schon sagte, das pwd nicht ohn weiteres zu knacken.
Darauf wollte ich eigentlich raus. Also nicht jeder kann einfach auf die Seite springen (mit entspr. Aufwand schon).

thx
Matze

--

BattleTech-MOD:
http://bthl.unitedgaming.net/

zum Seitenanfang zum Seitenende Profil || Suche
006
30.09.2003, 17:26
Prefect



Ehm ja. Hast du meinen Post durchgelesen?

Noch mal, ganz Wort für Wort:
Dadurch, dass du den JavaScript-Check auf die Webseite stellst, wird es für einen Angreifer einfacher, auf die "geheime" Webseite zu kommen. Es wäre also besser, ihr würdet den Check ganz weglassen, und einfach niemandem von der geheimen Webseite erzählen.

Warum das so ist, habe ich in meinem Post ausführlich erklärt.

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.

zum Seitenanfang zum Seitenende Profil || Suche
007
30.09.2003, 18:09
Mazze



Ehm ja. Nochmal:

Es ging mir nicht darum, den super passwort-schutz zu suchen, sondern ein Kumpel hat mich gefragt, ob die Seite mit dem Script arg leicht zu knacken ist.
Die Antwort hab ich ja schon: Nicht sonderlich leicht, aber leichter wie wenn du gar keinen pwd-check einfügst.

Das werd ich ihm mitteilen.

Ich hab schon kapiert, von was du geredet hast. Keine Angst, dein Post war nicht umsonst! =)

thx
Matze

--

BattleTech-MOD:
http://bthl.unitedgaming.net/

zum Seitenanfang zum Seitenende Profil || Suche
008
30.09.2003, 20:51
Megge



Zitat:
, aber leichter wie wenn du gar keinen pwd-check einfügst.
ich schätze, du hast eben nicht kapier :D

--

zum Seitenanfang zum Seitenende Profil || Suche
009
01.10.2003, 15:53
Mazze



Ja dann erklär's mir doch einfach.

--

BattleTech-MOD:
http://bthl.unitedgaming.net/

zum Seitenanfang zum Seitenende Profil || Suche
010
01.10.2003, 22:58
Spike



ganz einfach. wenn man auf die seite geht kommt das javascript für die seiten eingabe/passwort. jetzt weiß ein angreifer, dass sich hinter der seite verbergen muss.
wenn nur eine langweilige 0 8 15 seite kommt, dann weiß der angreifer doch garnicht, dass man noch mehr sehen kann.
wenn er den seitennamen bereits kennt kann er den sowieso sofort in die adresszeile des browsers eingeben. da nüzt die abrage garnix.

den einzigen schutz den du brauchst:
man darf nicht sehen können was sich für dateien in dem ordner verbergen.
lösung:
index.html in den ornder plazieren, am besten mit langweiligem inhalt. z.B. erste versuche in html oder so. macht einfach ne klickbunti seite mit word. das eignet sich dazu sehr gut ;).

ich hoffe du hast nu verstanden was wir meinen.

--

Kill? Box? Killbox!
Die Intelligenz ist eine Konstante, nur die Bevölkerung wächst.

zum Seitenanfang zum Seitenende Profil || Suche
011
01.10.2003, 23:05
Mazze



Hä?
Ich hab's eigentlich von Anfang an verstanden...
Nur ich verstehe Megges Post nicht.
Ich hab gesagt, dass der Seitenname leichter herauszufinden ist, wenn ich einen clientseitigen pwd-check einbaue, als ohne. Was ist daran falsch?

cu

--

BattleTech-MOD:
http://bthl.unitedgaming.net/

zum Seitenanfang zum Seitenende Profil || Suche
012
01.10.2003, 23:10
Megge



das ist schon richtig, nur das hast du nicht gesagt :)

Zitat:
Nicht sonderlich leicht, aber leichter wie wenn du gar keinen pwd-check einfügst.

--

zum Seitenanfang zum Seitenende Profil || Suche