31 lines
1.3 KiB
TeX
31 lines
1.3 KiB
TeX
\section{Part 3: Format String Exploitation}
|
|
|
|
\subsection{Exploit}
|
|
|
|
Der erste Versuch ist, viele Format-Strings als Vorname und Nachname einzugeben und das Ergebnis zu beobachten. Mit einem Debugger kann die Speicheraddresse der 3 Wichtigen Variablen ausgelesen werden.
|
|
|
|
\begin{figure}[H]
|
|
\begin{center}
|
|
\includegraphics[width=0.9\textwidth]{format-string/stack}
|
|
\caption{Vorname, Nachname und Key im Stack}
|
|
\label{fig:Vorname, Nachname und Key im Stack}
|
|
\end{center}
|
|
\end{figure}
|
|
|
|
Der Key ist im Speicher unter der Adresse 0xbffff2ec abgespeichert und kann mit dem Format String \verb|%19$i| erreicht und dezimal ausgegeben werden.
|
|
|
|
\begin{figure}[H]
|
|
\begin{center}
|
|
\includegraphics[width=0.8\textwidth]{format-string/done}
|
|
\caption{Zahl richtig geraten}
|
|
\label{fig:Zahl richtig geraten}
|
|
\end{center}
|
|
\end{figure}
|
|
|
|
\subsection{Warum so gefährlich \& was getan werden muss}
|
|
|
|
Durch einen Format String Exploit kann jede Stelle im Speicher ausgelesen werden. Damit ist die Vertraulichkeit, ein Teil der ``CIA'', gebrochen.
|
|
|
|
Gegenmaßnahmen:
|
|
|
|
Format Strings sollten immer als Teil des Programms angegeben werden, nicht als Teil der Eingabe. Außerdem könnten die Formatzeichenfolgen als konstanten deklariert werden.
|