Formatstring-Angriff
Der Begriff Formatstring-Angriff beschreibt das Ausnutzen einer Sicherheitslücke, welche im Jahr 1999 von Przemysław Frasunek und tf8 entdeckt wurde.
Der erste Exploit, der diese Technik ausnutzte, erlaubte es einem Angreifer, die Kontrolle über wu-ftpd 2.6.0 zu übernehmen. Formatstring-Attacken können genutzt werden, um ein Programm zum Absturz zu bringen oder fremden Code auszuführen.
Das Problem rührt von der Benutzung ungefilterter Benutzereingaben in bestimmten C-Funktionen her, wie printf(), welche für die Ausgabe formatierten Textes zuständig sind.
Ein bösartiger Benutzer könnte zum Beispiel die Formatierungstoken %s und %x benutzen, um sich Daten vom Stack ausgeben zu lassen.
Mit dem %n-Token lässt sich die Anzahl der ausgegebenen Zeichen (als Integer) an eine beliebige Stelle im Speicher schreiben.
Diese Schwachstelle ist weit verbreitet, da man Formatierungsfehler früher für harmlos gehalten hat.
Am häufigsten tritt sie auf, wenn ein Programm Eingaben des Benutzers wieder ausgeben soll und der Programmierer printf(buffer) anstelle von printf("%s", buffer) schreibt. Bei der ersten Version wird buffer als ein String mit Formatierungstoken interpretiert. Bei der zweiten Version hingegen wird einfach der Eingabestring ausgegeben.
Diese Art von Fehlern kann nur auftreten, da Unterprogrammaufrufe in C nicht typsicher sind und eine variable Anzahl von Parametern zugelassen wird, ohne dass eine Überprüfung erfolgt, ob Anzahl und Typ der gelesenen Parameter denen der übergebenen Parameter entsprechen.
Weblinks
- Scut, Team Teso, 2001: Exploiting Format String Vulnerabilities (englisch; PDF; 234 kB)
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.