Morning greetings, Guest
Sunday, 24 Nov 2024
1
On 28 Nov 2013 at 13:42:32 CET
Sicherheit: GUID's anstelle von Laufnummern verwenden
Ich habe gerade aus reiner Neugier die POST Requests angeschaut, die bei AJAX Befehlen beim Erfassen eines Flugbefehles (Sublicht-Flug) abgesetzt werden.
Ein Flugbefehl wird zum Beispiel so abgespeichert:
Code:
Wenn ich mir dort so die einzelnen ID's anschau, dann wird schnell klar dass es Laufnummern sind die bei 0 anfangen und hochzählen.
So könnte ich zum Beispiel die Anfrage einfach manipulieren und einen Sublicht-Flug Befehl erstellen zu einem Ziel, das ich noch nie gesehen habe.
Zum Beispiel müsste ich targetType=Base setzen und irgendeine ID auswählen die irgendwo zwischen 0 und der bereits bekannten neuesten Basis liegt.
Würden GUID's verwendet werden (was durchaus sehr üblich ist), dann hätte ich keine Chance solche Abfragen zu manipulieren und anzupassen.
Beispiel GUID:
Code:
Mir ist schon bewusst dass eine solche Umstellung viel Zeit in Anspruch nimmt, da die ganze Datenbankstruktur geändert werden müsste.
So ist SGR jedoch viel einfacher Hackbar und ich könnte mit sehr wenig Aufwand gefakte Anfragen an den SGR-Webserver schicken die mir zum Beispiel die Position sämtlicher Schiffe in der Gala verraten könnten...
Addendum (28 Nov 2013, 13:49:07 CET):
Ich sehe gerade dass die Zitate nicht an die Breite der Beiträge angepasst werden. Dies könnte man ebenfalls durch folgendes CSS fixen:
Code:
Zudem scheinen die BB-Code Buttons nicht zu prüfen welche Textbox aktiv ist. Wenn ich in der Nachtrags-Textbox etwas schreibe und einen BB-Code Button drücke, so fügt er dieses in der Haupt-Textbox ein anstatt in der Nachtrags-Textbox
Ist immer lustig wenn ich Fehler in meinem eigenen Code finde xD
Die BB-Codes wurden ja von mir programmiert :P
Aber naja, damals war ich ja noch einiges jünger und viel unerfahrener...
Edited on 28 Nov 2013, 13:59:02 CET
Ein Flugbefehl wird zum Beispiel so abgespeichert:
Code:
xajax:saveNewCommand xajaxr:1385641991441 xajaxargs[]:SublightFlight xajaxargs[]:false xajaxargs[]:<xjxquery><q>targetID=467&targetType=Ship&targetX=&targetY=&folkID=38&posCommandID=4815&errorMode=2¬ifySuccess=1¬ifyError=1&duration=finish&maxRounds=0&keep=1&submitbutton=Befehl%20speichern&backbutton=Abbrechen</q></xjxquery>
Wenn ich mir dort so die einzelnen ID's anschau, dann wird schnell klar dass es Laufnummern sind die bei 0 anfangen und hochzählen.
So könnte ich zum Beispiel die Anfrage einfach manipulieren und einen Sublicht-Flug Befehl erstellen zu einem Ziel, das ich noch nie gesehen habe.
Zum Beispiel müsste ich targetType=Base setzen und irgendeine ID auswählen die irgendwo zwischen 0 und der bereits bekannten neuesten Basis liegt.
Würden GUID's verwendet werden (was durchaus sehr üblich ist), dann hätte ich keine Chance solche Abfragen zu manipulieren und anzupassen.
Beispiel GUID:
Code:
a19ab6ec-f1f6-4a12-8135-fcd82713415b
Mir ist schon bewusst dass eine solche Umstellung viel Zeit in Anspruch nimmt, da die ganze Datenbankstruktur geändert werden müsste.
So ist SGR jedoch viel einfacher Hackbar und ich könnte mit sehr wenig Aufwand gefakte Anfragen an den SGR-Webserver schicken die mir zum Beispiel die Position sämtlicher Schiffe in der Gala verraten könnten...
Addendum (28 Nov 2013, 13:49:07 CET):
Ich sehe gerade dass die Zitate nicht an die Breite der Beiträge angepasst werden. Dies könnte man ebenfalls durch folgendes CSS fixen:
Code:
.entryCode { white-space: pre-wrap; }
Zudem scheinen die BB-Code Buttons nicht zu prüfen welche Textbox aktiv ist. Wenn ich in der Nachtrags-Textbox etwas schreibe und einen BB-Code Button drücke, so fügt er dieses in der Haupt-Textbox ein anstatt in der Nachtrags-Textbox
Ist immer lustig wenn ich Fehler in meinem eigenen Code finde xD
Die BB-Codes wurden ja von mir programmiert :P
Aber naja, damals war ich ja noch einiges jünger und viel unerfahrener...
Edited on 28 Nov 2013, 13:59:02 CET
2
On 28 Nov 2013 at 19:23:50 CET
-
Ich bin mir relativ sicher, dass serverseitig alle gesendeten Angaben auf Zulässigkeit geprüft werden.
Also ob man ein Ziel kennt usw.
Aber ich werd's überprüfen. Etwas ähnliches wie GUIDs verwende ich beim DirektTransfer - aber eher aus einer Not heraus...
Also ob man ein Ziel kennt usw.
Aber ich werd's überprüfen. Etwas ähnliches wie GUIDs verwende ich beim DirektTransfer - aber eher aus einer Not heraus...
Was nicht passt, wird passend gemacht,
Wo ein Bug ist, werden Fallen aufgestellt,
Und was nicht geht, bekommt Beine...
Wo ein Bug ist, werden Fallen aufgestellt,
Und was nicht geht, bekommt Beine...
3
On 29 Nov 2013 at 09:19:37 CET
-
Ich hatte es jetzt nicht getestet, ob ich so wirklich Zugriff bekomme.
Wenn du einverstanden bist, kann ich mal versuchen Sicherheitslücken zu finden und sehen wie weit man diese ausnützen könnte und diese dann dokumentieren.
Wenn du einverstanden bist, kann ich mal versuchen Sicherheitslücken zu finden und sehen wie weit man diese ausnützen könnte und diese dann dokumentieren.
4
On 29 Nov 2013 at 14:04:07 CET
-
Das wäre super.
Bin für die Auffindung von Sicherheitslücken immer dankbar :-)
(Nur solltest du dann eventuell Gefundenes nicht hier öffentlich im Forum posten^^)
Bin für die Auffindung von Sicherheitslücken immer dankbar :-)
(Nur solltest du dann eventuell Gefundenes nicht hier öffentlich im Forum posten^^)
Was nicht passt, wird passend gemacht,
Wo ein Bug ist, werden Fallen aufgestellt,
Und was nicht geht, bekommt Beine...
Wo ein Bug ist, werden Fallen aufgestellt,
Und was nicht geht, bekommt Beine...
5
On 30 Nov 2013 at 11:36:16 CET
-
Ähm, ich werde mal nur rein lesenede "Angriffe" starten, also keine die irgendwelche Mutationen hervorufen könnten. Sonst wird es bei einer Galaxie die zählt noch Aufschreie geben :P