This repository has been archived on 2024-10-30. You can view files and clone it, but cannot push or open issues or pull requests.
swb6-it-sec/Lab02/documentation/bufferOverflow/bufferOverflow.tex

18 lines
886 B
TeX
Raw Normal View History

2022-04-25 09:21:13 +02:00
\section{Part 1: Buffer Overflow}
\subsection{Kompilieren}
Zum kompilieren des C-Programmes wird GCC verwendet. Folgender Befehl wird ausgeführt:
\begin{lstlisting}[breaklines]
gcc -g --no-pie -z execstack -fno-stack-protector -D_FORTIFY_SOURCE=0 bufferOverflow.c -o bufferOverflow
\end{lstlisting}
Danach kann das Programm mit \verb|.\bufferOverlow| gestartet werden.
\subsection{Analyse}
Das Programm ``bufferOverflow.c'' beginnt mit der Eingabe des Namens mit Hilfe der Funktion ``fgets''\footnote{\href{https://www.tutorialspoint.com/c_standard_library/c_function_fgets.htm}{tutorialspoint - fgets}}. Dabei wird die Länge des eingegebenen Benutzernamens in einem char Array der Länge 16 gespeichert.
Hier wird es schon zum ersten overflow kommen. Wenn ein Nutzer einen Benutzernamen größer als 15 Charakter eingibt, wird in einen nicht reservierten Bereich geschrieben.