Virtual-Box+ −
+ −
Start "Linux Hacking" + −
login is cu+ −
password is "test"+ −
+ −
The programs are under + −
+ −
cu$> app-material/progs+ −
+ −
+ −
Programs can be updated using+ −
+ −
hg pull+ −
hg update+ −
hg revert --all+ −
+ −
Emacs can be used to edit files+ −
+ −
emacs -nw ...file.... (is also an alias)+ −
+ −
Compiler+ −
+ −
gcc -O0 -o file file.c+ −
+ −
Backtick is key §/±.+ −
+ −
C0.c+ −
====+ −
+ −
Add the bigger string and the long is printed out differently.+ −
+ −
foo("my string is too long !!!!! \x15\xcd\x5b\x07");+ −
+ −
C1.c+ −
====+ −
+ −
needs to be called using+ −
+ −
./C1 `./args1-good`+ −
./C1 `./args1-bad`+ −
+ −
or in gdb using+ −
+ −
gdb --args ./C1 `args1-bad`+ −
+ −
+ −
C2.c+ −
====+ −
+ −
called with+ −
+ −
./args2-good | ./C2+ −
./args2-bad | ./C2+ −
+ −
C3.c+ −
====+ −
(shell injection)+ −
+ −
called with + −
+ −
./C3+ −
+ −
opens a new shell+ −
+ −
+ −
C4.c+ −
====+ −
Format string attack+ −
+ −
./C4 "%s"+ −
./C4 `./args4`+ −
+ −
This vulnerability does not need the defences, but prints out+ −
the string only correctly with `./args4`. The %s option needs+ −
+ −
-mpreferred-stack-boundary=2+ −
+ −
+ −
C6.c+ −
====+ −
Enter the password :+ −
hhhhhhhhhhhhhhhhhhhh+ −
+ −
Wrong Password + −
Root privileges given to the user+ −
+ −
------------------------------------+ −
+ −
to switch off address randomization+ −
+ −
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space+ −
+ −
+ −
+ −
C0.c+ −
+ −
add to string + −
+ −
" \x15\xcd\x5b\x07"+ −
+ −
to get+ −
+ −
foo("my string is too long !!!!! \x15\xcd\x5b\x07");+ −