Was ist eine Format-String-Sicherheitslücke?

Um zu verstehen, was für ein Format-String-Lücke ist, müssen Sie zunächst wissen, was eine Format-String ist. Eine Format-String ist ein Weg, sagt der C-Compiler, wie sie sollte Format-Nummern, wenn sie gedruckt werden.

Format-Strings in C

In der Programmiersprache C gibt es eine Reihe von Funktionen, die ein Format-String als Argument. Zu diesen Funktionen gehören fprintf, printf, sprintf, snprintf, vfprintf, vprintf, vsprintf, vsnprintf, setproctitle, syslog und anderen.

Die häufigste von ihnen ist printf. Die Verwendung von printf ist:

printf Format [Argumente ...]

printf gibt den Wert von [Argumente ...] in dem Format von Format.

Ein Beispiel zu nennen printf ist:

printf ( "Der Bereich ist:% d \ n", 303);

Unterstützte Format Spezifikation unterscheiden sich von einem C-Compiler, um zur nächsten. Das Format Spezifikation unterstützt unter FreeBSD sind:

% d Ganzzahl zu konvertieren unterzeichnet decimal String.
% u Ganzzahl zu konvertieren unsigned decimal String.
% i Ganzzahl zu konvertieren unterzeichnet decimal string; die Ganzzahl kann entweder in dezimal, in oktal (mit führender 0) oder hexadezimal (mit einem führenden 0x).
% o Wandeln Sie auf unsigned Integer oktal String.
% x oder% X Wandeln Sie auf unsigned integer hexadezimale Zeichenfolge, mit Ziffern 0123456789abcdef ``''für x und `` 0123456789ABCDEF''für X).
% c Ganzzahl zu konvertieren, die Unicode-Zeichen es ist.
% s Keine Konvertierung; einfach String.
% f Wandeln Sie Fließkomma-Zahl um unterzeichnet decimal String der Form xx.yyy, wo die Zahl der Y's wird durch die Präzision (Standard: 6). Wenn die Genauigkeit ist 0, dann kein Dezimalpunkt ausgegeben.
% e oder% E Wandeln Sie Fließkomma-Zahl an den wissenschaftlichen Notation in Form x.yyye +-zz, wo die Zahl der Y's wird durch die Präzision (Standard: 6). Wenn die Genauigkeit ist 0, dann kein Dezimalpunkt ausgegeben. Wenn die E-Form verwendet wird, dann ist E gedruckt statt e.
% g oder% G Wenn der Exponent kleiner als -4 oder größer als oder gleich der Präzision, dann konvertieren Fließkomma-Zahl für% e oder% E. Andernfalls konvertieren für% f. Nachfolgende Nullen und einem abschließenden Dezimalpunkt weggelassen.
%% Keine Konvertierung: einfach%.

Für weitere Informationen über Format Spezifikation, auf die man-Seite für "Format" auf Ihrem nächsten Unix-System.

Format-String-Schwachstelle Attacken

Format-String-Schwachstelle Angriffe lassen sich in drei Kategorien: Denial-of-Service, Lesen und Schreiben.

Zusätzliche Quellen von Informationen über Format-String-Schwachstellen

Für weitere Informationen über die Nutzung der Format-String-Schwachstellen finden Sie unter Nutzung der Format-String-Schwachstellen von SCUT und Format-String Angriffe von Tim Newsham.

Writing Secure Code Building Secure Software Secure Coding Secure Programming Cookbook
Erfahren Sie, wie Sie verhindern, dass Format-String-Schwachstellen in Ihrem Source-Code mit diesen ausgezeichneten Bücher über sicheres Programmieren von Amazon.com


Top 5 Free Networking Tools

Vulnerability Management für Dummies

Unsere Freunde von Qualys bietet kostenlose Kopien der elektronischen Version der Vulnerability Management für Dummies zu Tech-FAQ Leser.

Vulnerability Management für Dummies:

  • Erklärt, die kritische Notwendigkeit für Schwachstellen-Management
  • Details der grundlegenden Best-Practice-Schritte für eine erfolgreiche Schwachstellen-Management-Programm
  • Gibt einen Überblick über die verschiedenen Schwachstellen-Management-Lösungen - einschließlich der Vor-und Nachteile der einzelnen
  • Highlights der preisgekrönten QualysGuard Schwachstellen-Management-Lösung
  • Bietet eine Zehn-Punkte-Checkliste für die Beseitigung von Schwachstellen aus Ihrer wichtigsten Ressourcen
Bookmark Was ist eine Format-String-Sicherheitslücke?

Neueste Blog-Posts


Englisch Englisch Deutsch Deutsch Spanisch Spanisch Französisch Französisch Italienisch Italienisch Portugiesisch Portugiesisch Russisch Russisch Niederländisch Niederländisch
Griechisch Griechisch Hindi Hindi Japanisch Japanisch Koreanisch Koreanisch Chinesisch Chinesisch Chinesisch (Taiwan) Chinesisch (Taiwan) Arabisch Arabisch

Copyright 2009 Tech-FAQ. Alle Rechte vorbehalten. Datenschutz.