I have successfully used those "oil stain removers" (funnily enough).
Another very good option would be to simply take it to a dry cleaners, but remember to
point out the stain and staining substance to them.
They can most likely clean it up, for a small fee. But how much is your favourite white shirt worth to you?
Mr Mephisto