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

[HaBo]

 
Webmaster-Security Fragen zur richtigen Serverkonfiguration oder Absicherung dynamischer Scripte gehören hier hinein.

csrf absichern

Diskussion: csrf absichern im Forum Webmaster-Security, in der Kategorie Security Area; Anzeige heyho eins vorweg, das projekt an dme ihc grad arbeite, hat sone absicherung eigentlich gar nicht nötig, ich wills ...

Antwort
Alt 24.06.11, 09:31   #1 (permalink)
Member of Honour
 
Benutzerbild von easteregg
 
Registriert seit: 14.09.07
easteregg Leistung: Pentium Ieasteregg Leistung: Pentium I
easteregg eine Nachricht über ICQ schicken
Likes: 62
Standard csrf absichern

Anzeige

heyho

eins vorweg, das projekt an dme ihc grad arbeite, hat sone absicherung eigentlich gar nicht nötig, ich wills nur machen , damit ich mich damit auskenne kann ja nich schaden.

und zwar, um was es bei csrf geht is ja klar, dass nich jemand mich dazu bringt in nem forum - wo ich per cookie eingeloggt bin - nen beitrag zu schreiben, nur weil der mich auf seine javascript gefüllte seite loggt.

okay soweit so gut.

wie mans macht is ja laut anleitungen im netz recht simpel, einfach ne random id mit ins form rein die dann abgefragt wird.

bleibt bei mir die frage stehen... kann ich nich einfach per javascript mir vorher die id holn?!
also klar, damit brauch man nen request mehr, aber wenn ich einfach mir die seite via javascript hol, die id rausparse und das ganze wieder zurück schick hab ich doch gar keinen schmerz?

oder überseh ich hier was?
danke schonmal

__________________
» Flattr mich! - Wenn dir mein Beitrag geholfen hat! «
<| 2 AMD Opterons 2384@ 8x3,2ghz | Tyan S2915 | 10GB | 2x 8800GT | 8400GS | Dell 3008WFP + 2x2007FP |>
easteregg ist offline   Mit Zitat antworten
Alt 24.06.11, 10:10   #2 (permalink)
Member of Honour
 
Benutzerbild von xrayn
 
Registriert seit: 05.03.08
xrayn Leistung: Opteronxrayn Leistung: Opteronxrayn Leistung: Opteronxrayn Leistung: Opteronxrayn Leistung: Opteron
Likes: 246
Standard

Der Clou ist, dass du für jede Seite immer eine neue Id erzeugst, die auch nur einen begrenzten Zeitraum gültig ist. Das heißt, dass für jeden Request eine andere Id erzeugt wird und sie somit nicht vorher abgefragt werden kann. Problematisch wird dies jedoch, wenn du eine persistente XSS Lücke auf der Seite hast, dann lässt sich das natürlich leicht umgehen.
xrayn ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 24.06.11, 10:46   #3 (permalink)
Member of Honour
Themenstarter
 
Benutzerbild von easteregg
 
Registriert seit: 14.09.07
easteregg Leistung: Pentium Ieasteregg Leistung: Pentium I
easteregg eine Nachricht über ICQ schicken
Likes: 62
Standard

jo das so soweit klar, die id die ich generiere ist ja auch immer anders und wird im backend für die session gespeichert und dann überprüft.

wenn ich jetzt aber zwei requests absetz von meiner seite

* der erste holt die id
* der zweite sendet das form mit entsprechend der id

dann hab ich doch auch genau das geschafft, was ich ohne die id schaffen würde?
überseh ich hier was?
__________________
» Flattr mich! - Wenn dir mein Beitrag geholfen hat! «
<| 2 AMD Opterons 2384@ 8x3,2ghz | Tyan S2915 | 10GB | 2x 8800GT | 8400GS | Dell 3008WFP + 2x2007FP |>
easteregg ist offline   Mit Zitat antworten
Alt 24.06.11, 11:10   #4 (permalink)
 
Benutzerbild von Eydeet
 
Registriert seit: 14.04.06
Eydeet Leistung: Facit NTK
Likes: 4
Standard

Es gibt an sich zwei Fälle, die es zu unterscheiden gilt.

Fall 1 ist, dass das Javascript nicht von deinem Server kommt. Das könnte passieren, wenn du auf irgendeiner Webseite surfst, und diese versucht, per JavaScript über deine Facebook-Session Aktionen auszuführen. In diesem Fall hilft dir die zufällige ID, denn das Javascript auf der fremden Seite hat keine Chance, diese zu erhalten.

Fall 2 ist der, dass dein Server im Kontext deiner Session das bösartige Javascript ausliefert. Ein Beispiel ist, dass du das Verschicken von Nachrichten oder das Erstellen von Kommentaren erlaubst, und diese nicht korrekt validierst. In diesem Fall kann das Script natürlich die ID aus der Seite auslesen und damit Aktionen tätigen. Das einzige, was die ID jetzt noch (vielleicht) verhindert ist, dass das ganze unbemerkt geschieht. Der Server erstellt schließlich für jeden Seitenaufruf neue IDs, sodass du beim Weitersurfen die falsche ID verwendest. Wenn sich der Autor des Scripts etwas mehr Mühe gibt, kann er natürlich die neue ID überall eintragen, sodass du trotzdem nichts merkst.

Die Konsequenz ist, dass diese ID nur zusätzliche, aber keine totale Sicherheit bietet. Fall 1 ist allerdings der, der für einen Angreifer sehr viel leichter durchzuführen ist, schließlich benötigt er keinen Bug auf deinem Server.
Um diesen Fall zu verhindern könntest du natürlich auch den Referer checken, was normalerweise einfacher umzusetzen ist. Außerdem verhinderst du dann (afaik) nicht das Benutzen des Zurück-Buttons.
Eydeet ist offline   Mit Zitat antworten
Alt 24.06.11, 11:13   #5 (permalink)
Member of Honour
 
Benutzerbild von xrayn
 
Registriert seit: 05.03.08
xrayn Leistung: Opteronxrayn Leistung: Opteronxrayn Leistung: Opteronxrayn Leistung: Opteronxrayn Leistung: Opteron
Likes: 246
Standard

Eine solche Id (aka Pagetoken) macht jede URL der Seite "einzigartig". Das heißt, wenn du einen Request stellen willst, um die Id, die nötig ist um einen Post abzuschicken, abzufragen, brauchst du die gültige Id zu der Seite, auf der du deinen Post erstellen kannst. Um diese gültige Id zu bekommen, brauchst du die Id, die benötigt wird um auf diese Seite zu kommen usw. Da jede Id nur für eine Abfrage gültig ist, hat der Angreifer keine Chance eine gültige Id zu bekommen.
xrayn ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Security Area » Webmaster-Security » csrf absichern
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



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