Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

Nickles-Artikel "Sichere ASP Programmierung"

Synthetic_codes / 10 Antworten / Baumansicht Nickles

Seruvs allseits... Ich las mir grade den Artikel Sichere ASP-Programmierung hier( http://www.nickles.de/c/s/kategorien-von-angriffen-357-2.htm ) durch. Mike gibt dabei ein Beispiel in C, mal abgesehen davon dass er seinen String nicht initialisiert hat, wie kommt Mike darauf, dass ein char* > 9 Byte einen Pufferüberlauf verursacht Das char[] ist mit 16 byte definiert, und ich komme da auf 15 Zeichen maximale länge(+\0 zur stringterminierung wären dann 16)

Einfach nur ein Fehler?

'); DROP TABLE users;--
bei Antwort benachrichtigen
ChrE Synthetic_codes „Nickles-Artikel "Sichere ASP Programmierung"“
Optionen

Hallo!

Frag ihn doch...

Gruss

ChrE

bei Antwort benachrichtigen
Synthetic_codes ChrE „Hallo! Frag ihn doch... Gruss ChrE“
Optionen

darum dieser fred hier

'); DROP TABLE users;--
bei Antwort benachrichtigen
PaoloP Synthetic_codes „Nickles-Artikel "Sichere ASP Programmierung"“
Optionen

Naja ich bin mir fast sicher das er das einfach irgendwoher übernommen hat.
Da gab es ja einige MSDN Webcasts mit quasi identischem Wortlaut.
Wie gross char[] ist hängt prinzipiell erstmal vom Zielsystem ab und ist nicht
konstant auf jedem Rechner gleich.

Jedes mal wenn jemand "Cloud" sagt, verliert ein Engel seine Flügel.
bei Antwort benachrichtigen
Synthetic_codes PaoloP „Naja ich bin mir fast sicher das er das einfach irgendwoher übernommen hat. Da...“
Optionen

irrtum.
Im gegensatz zu int und anderen datentypebn ist char immer 256 bit gross. Zumindest hat er im ANSI-C eine feste Länge

'); DROP TABLE users;--
bei Antwort benachrichtigen
PaoloP Synthetic_codes „irrtum. Im gegensatz zu int und anderen datentypebn ist char immer 256 bit...“
Optionen

Okay bei echtem C weiss ich es nicht aber ich habe verschiedene VM-Ware Systeme wo mir sizeof(char) in VC++6 definitv unterschiedliche Werte liefert.

Jedes mal wenn jemand "Cloud" sagt, verliert ein Engel seine Flügel.
bei Antwort benachrichtigen
Synthetic_codes PaoloP „Okay bei echtem C weiss ich es nicht aber ich habe verschiedene VM-Ware Systeme...“
Optionen

mmh... tatsächlich ist ein char nicht 256 Bit breit, habs grade nachgeschlagen, dafür aber exakt 1 byte:

»Alle Speicherobjekte in C müssen durch eine gleichmäßige Sequenz von Bytes mit mindestens 8 Bits Breite darstellbar sein. Ein char, egal ob jetzt signed oder unsigned, belegt exakt ein Byte.«

will heissen ein char ist immer min 256bit breit, aber auch immer nur genau ein byte. Dementsprechned variiert die grösse eines Char mit der Definition des Byte der jeweiligen Architektur.

'); DROP TABLE users;--
bei Antwort benachrichtigen
PaoloP Synthetic_codes „mmh... tatsächlich ist ein char nicht 256 Bit breit, habs grade nachgeschlagen,...“
Optionen

> will heissen ein char ist immer min 256bit breit, aber auch immer nur genau ein byte. Dementsprechned variiert die grösse eines Char mit der Definition des Byte der jeweiligen Architektur.

joa würde ich so unterschreiben.

Jedes mal wenn jemand "Cloud" sagt, verliert ein Engel seine Flügel.
bei Antwort benachrichtigen
Synthetic_codes PaoloP „ will heissen ein char ist immer min 256bit breit, aber auch immer nur genau ein...“
Optionen

trotzdem sollte folgende ausgabe immer 1 sein:

char irgendwas;
int x = sizeof(irgendwas);
printf("%c\n",x);

'); DROP TABLE users;--
bei Antwort benachrichtigen
Borlander Synthetic_codes „Nickles-Artikel "Sichere ASP Programmierung"“
Optionen

Der Artikel ist nicht von mike sondern von TW (Thomas Wölfer) und ist in ähnlicher Form auch noch anderweitig erschienen.

Ich habe ihn mal per Mail auf diesen Thread aufmerksam gemacht ;-)


Gruß
Borlander

bei Antwort benachrichtigen
thomas woelfer Synthetic_codes „Nickles-Artikel "Sichere ASP Programmierung"“
Optionen

Die Angabe von 9 Byte ist Blödsinn. Vermute mal das da beim Druck/Konvertieren oder sonstwo was kaputt gegangen ist. Platz ist logischerweise für 16 byte. Der buffer overflow tritt also erst bei strings größer 16 byte auf.

Ein deutlich besserer Beitrag von mir zum Thema Buffer Overflow gibts hier: (http://www.microsoft.com/austria/technet/articles/basiswissen_buffer_overflow.mspx).

WM_FYI
-thomas woelfer

this posting contains no tpyos.
bei Antwort benachrichtigen