Layoutprobleme? - Styleswitcher!
![]() |
| | Themen-Optionen |
| | Nach oben #1 | |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 3.812
| Hallo, ich habe kürzlich ein Interview mit Stefan Esser gelesen und habe eine Frage zu einer Aussage von ihm. Zitat:
Kann mir das eventuell jemand erklären? Danke im Voraus. Grüße, Ben. | |
| | |
| | Nach oben #2 | |
| Corvin Gröning Registriert seit: 19.03.2005 Ort: S-H | Flensburg
Beiträge: 397
| Zitat:
| |
| | |
| | Nach oben #3 |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 3.812
| Heißt also, dass "input" erst "escaped" und danach dekodiert wird, so dass der eigentliche "input" dann ungehindert "zuschlagen" kann? |
| | |
| | Nach oben #4 |
| Corvin Gröning Registriert seit: 19.03.2005 Ort: S-H | Flensburg
Beiträge: 397
| Ja, ich denke, so ist das gemeint.. aber habe davon auch keine Ahnung |
| | |
| | Nach oben #5 |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 3.812
| Ich muss mir mal etwas genauer anschauen, was UTF-7 eigentlich ist und warum gerade dieser Zeichensatz dort erwähnt wurde. Wenn mir da noch jemand auf die Sprünge helfen kann, dann immer her mit den Informationen. |
| | |
| | Nach oben #6 |
| Martin Eisengardt Registriert seit: 30.03.2006 Ort: Pfinztal
Beiträge: 353
| UTF-7 ist kein regulärer Zeichensatz, wie man das von anderen her kennt. Vielmehr ist es eine Art Kodierung für Unicode, bei der nur 7 Bit verwendet und berücksichtigt werden. Entsprechend gibt es einen Overhead. Das Problem ist hier wohl, dass das Gänsefüßchen, also der Ursprung aller SQL-Injection, so kodiert werden muss, dass es verfälscht bzw. maskiert ist. Wenn man nun beim Auslesen davon ausgeht, dass "a" == "a" ist, hat man verloren. Denn wenn das erste a als UTF-7 ankommt, das zweite aber in der Datei als UTF-8 kodiertes reguläres Zeichen steht, stimmen sie nicht überein und voila, man hat was durchgeschleust. Ich finde es aber höchst seltsam, dass man erst maskiert und dann noch die Strings rummanipuliert, bevor man sie endgültig in ein Query einsetzt. Das ist wirklich farlässig, so einem Entwickler gehört der Denne übern Scheitel gezogen (Denne ist bei uns auffer Arbeit ein DB/2-Handbuch ind zwei Bänden, je 5 Kilo schwer *g*).
__________________ Open Sourcing the Online Gaming Universe PHP/SQL/Java/C++/Assembler. Seit Jahren Mitglied und Entwickler in einem der wohl größten Java-Projekte der Welt: http://weblogs.java.net/blog/hansmul...e_desktop.html |
| | |
| | Nach oben #7 | |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 3.812
| Hallo, so ganz habe ich deine Erläuterung Zitat:
Könntest du mir eventuell ein "konkretes" Beispiel geben, wie so etwas letztlich aussehen würde? Ich verstehe nicht, wie man so etwas "durchschleusen" könnte. Klar ist mir bislang, dass das "a" in UTF-7 ungleich der entsprechenden UTF-8-kodierten "Zeichenkette" ist. Wie dort nun etwas durchgeschleust werden könnte .. da steh ich auf dem Schlauch. Danke. | |
| | |
| | Nach oben #8 |
| Benjamin Steininger Registriert seit: 02.06.2005 Ort: weiher im tiefsten Odenwald
Beiträge: 1.048
| vielleicht kein konkretes Beispiel, aber mal eins um zu verdeutlichen wie ich denke dass sowas funktioniert, als beispiel die abfrage eines Logins, die die UserId abruft und username + passwort überprüft Query: SELECT id WHERE username='$var1' AND password='$var2'; code: PHP-Code: [das ' gehört dazu!] in UTF-7 kommt da jetzt z.b. sowas raus: &§ OR id &/ 0 OR password &( &§ nichts davon wird von mysql_escape_string verändert, weil ja keine ' oder ähnliche vorkommen. Dann kommt transform_utf7_to_utf8() und wandelt das "&§ OR id &/ 0 OR password &( &§" wieder in "' OR id > 0 OR password = '" um und das ' am Anfang des Strings ist wieder da. Nur zur verdeutlichung, mir ist klar, dass die UTF-7-Variante des Strings wohl kaum so aussieht wie oben, aber es sollte das Schema wie das ganze abläuft verdeutlichen, auch eine Funktion transform_utf7_to_utf8() ist einfach gerade beim tippen meiner Phantasie entsprungen. mfg robo47 Geändert von robo47 (01.07.2007 um 16:07 Uhr). |
| | |
![]() |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
| |
Alle Zeitangaben in WEZ +2. Es ist jetzt 06:42 Uhr.
Nach oben






