Back to our demonstration. You recall that the name of the file is test. This means that test is the actual data, and thus the 512-bit input to the compression function was made up of secret, test, and padding. All we need to tell hash extender is the current hash, the original data, the range of byte length guesses for the secret, and the data we want to inject – it will do the rest by spitting out a hash for each guess. We would then construct a URL with our attacker data as the filename, and our new hash – if we get the length of the secret right, then our hash will pass validation. Let's check out the command:
# ./hash_extender --data=test --signature=dd03bd22af3a4a0253a66621bcb80631556b100e ...