include missing text

This commit is contained in:
Florian Hoss 2022-05-12 12:16:24 +02:00
parent 05c37b62a1
commit 0ab7b33d9c
3 changed files with 15 additions and 3 deletions

View file

@ -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.

View file

@ -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.

View file

@ -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