tried the hints, no success
This commit is contained in:
parent
03eb300db4
commit
de446b3243
1 changed files with 24 additions and 2 deletions
|
@ -8,10 +8,32 @@ Zum kompilieren des C-Programmes wird GCC verwendet. Folgender Befehl wird ausge
|
|||
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.
|
||||
Danach kann das Programm mit \verb|./bufferOverlow| gestartet werden.
|
||||
|
||||
\subsection{Hints}
|
||||
|
||||
Es wurden verschlüsselte Tipps beigesteuert. Zum verschlüsseln wurde folgender Befehl ausgeführt:
|
||||
|
||||
\begin{lstlisting}[breaklines]
|
||||
echo "This is your first hint" | openssl des -nosalt -e -k 12345678 -a
|
||||
\end{lstlisting}
|
||||
|
||||
Zum entschlüsseln muss lediglich der verschlüsselte String mit dem angegebenen secret an openssl übergeben werden.
|
||||
|
||||
\begin{lstlisting}[breaklines]
|
||||
echo "ilEbsYAeS8Prp7xXI5MPqSEyOOKoyXbCotRFSskidgs=" | openssl des -nosalt -d -k 12345678 -a
|
||||
\end{lstlisting}
|
||||
|
||||
Leider konnten die angegebenen Tipps nicht entschlüsselt werden. Das obige Beispiel funktioniert ohne Probleme, kann aber nicht auf die in der PDF angegebenen Tipps angewandt werden.
|
||||
|
||||
Fehlermeldung:
|
||||
\begin{lstlisting}[breaklines]
|
||||
bad decrypt
|
||||
\end{lstlisting}
|
||||
|
||||
\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.
|
||||
Ein Buffer Overflow wird hier abgefangen, da nur so viele Zeichen eingegeben werden können, wie \verb|sizeof()| zurück gibt.
|
||||
|
||||
|
|
Reference in a new issue