An undercover police officer opened fire four times and was run over by a van after dramatically intervening to try and foil a street theft in the early hours of this morning.