include missing text
This commit is contained in:
parent
05c37b62a1
commit
0ab7b33d9c
3 changed files with 15 additions and 3 deletions
|
@ -118,7 +118,7 @@ Damit werden 28x'A' und die Adresse der Win-Funktion als argument der Software m
|
||||||
\end{center}
|
\end{center}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
Die erneute Ausgabe der wichtigen Adressen zeigt uns nun, dass der EIP mit \verb|\x41\x41\x41\x41| überschrieben wurde (Abbildung \ref{fig:Zweiter Stackpointer}) und deshalt korrekt gesetzt werden sollte. Deswegen endet das weitere Ausführen, nach einer erfolgreichen Runde in einem segmentation fault (Abbildung \ref{fig:Segmentation Fault}).
|
Die erneute Ausgabe der wichtigen Adressen zeigt uns nun, dass der EIP mit \verb|\x41\x41\x41\x41| überschrieben wurde (Abbildung \ref{fig:Zweiter Stackpointer}) und deshalb korrekt gesetzt werden sollte. Deswegen endet das weitere Ausführen, nach einer erfolgreichen Runde in einem segmentation fault (Abbildung \ref{fig:Segmentation Fault}).
|
||||||
|
|
||||||
\begin{figure}[H]
|
\begin{figure}[H]
|
||||||
\begin{center}
|
\begin{center}
|
||||||
|
@ -154,7 +154,7 @@ Und es wird 5 mal in Folge gewonnen:
|
||||||
|
|
||||||
\subsection{Stack}
|
\subsection{Stack}
|
||||||
|
|
||||||
\textcolor{codegray}{Startaddresse} \textcolor{codegreen}{Eingefügte ``A''} \textcolor{codepurple}{Alte EBP Adresse} \textcolor{weborange}{Win-Funktion}
|
\textcolor{codegray}{Startaddresse} \textcolor{codegreen}{Eingefügte ``A''s} \textcolor{codepurple}{EBP} \textcolor{weborange}{Win-Funktion}
|
||||||
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\begin{tabular}{|l|l||r|}
|
\begin{tabular}{|l|l||r|}
|
||||||
|
@ -193,3 +193,10 @@ Und es wird 5 mal in Folge gewonnen:
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
\end{center}
|
\end{center}
|
||||||
|
|
||||||
|
\subsection{Warum so gefährlich \& was getan werden muss}
|
||||||
|
|
||||||
|
Veränderung des Ablaufs der Software kann ewaige Authentifizierung und Validierung ausschalten und somit Zugriff auf Informationen erlangt werden.
|
||||||
|
|
||||||
|
Gegenmaßnahmen:
|
||||||
|
|
||||||
|
Um den Buffer Overflow zu verhindern, sollten Funktionen wie strcpy vermieden werden. Im Beispielprogramm wurde die Eingabe des Nutzers direkt an die Funktion als Pointer weitergegeben anstatt davor eine Validierung durchzuführen.
|
||||||
|
|
|
@ -26,4 +26,6 @@ Der Key ist im Speicher unter der Adresse 0xbffff2ec abgespeichert und kann mit
|
||||||
|
|
||||||
Durch einen Format String Exploit kann jede Stelle im Speicher ausgelesen werden. Damit ist die Vertraulichkeit, ein Teil der ``CIA'', gebrochen.
|
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.
|
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.
|
||||||
|
|
|
@ -67,8 +67,11 @@ Zusätzlich muss damit auch der EBP getroffen werden. Der shell-code ist 106 byt
|
||||||
\lstinputlisting[language=python]
|
\lstinputlisting[language=python]
|
||||||
{images/shell/exploit.py}
|
{images/shell/exploit.py}
|
||||||
|
|
||||||
\subsection{Verhindern des Buffer Overflows}
|
\subsection{Warum so gefährlich \& was getan werden muss}
|
||||||
|
|
||||||
|
Es können eigene Skripte ausgeführt werden. Damit gibt es kein Limit für den Angreifer. Somit auf jeden Fall zu vermeiden!
|
||||||
|
|
||||||
|
Gegenmaßnahmen:
|
||||||
\begin{list}{-}{}
|
\begin{list}{-}{}
|
||||||
\item ASLR (Address space layout randomization) - das Programm landet an unterschiedlichen Speicherstellen
|
\item ASLR (Address space layout randomization) - das Programm landet an unterschiedlichen Speicherstellen
|
||||||
\item Never Execute Bit (NX-BIT) - Stellen als ``nicht ausführbar'' markieren
|
\item Never Execute Bit (NX-BIT) - Stellen als ``nicht ausführbar'' markieren
|
||||||
|
|
Reference in a new issue