I think you missed the quantization step.
The jpeg header must include a 8x8 quantization table. Simply multiply each coefficient of your 8x8 block by the corresponding coefficient from the quantization table before applying the inverse DCT, and you should get the right results!