This works on marble, granite, limestone, travertine, slate, sandstone, grout (for ceramic and porcelain tile), masonry, and concrete – no need to worry about discoloration, because it’s not gonna happen.
Promising review: “Had an oil stain on my untreated West Elm marble top buffet from a kids toy. I purchased the oil stain remover and crossed my fingers that it would work. Followed the directions, waited 72 hrs to let it dry completely, and then scraped it off with a credit card. It worked perfectly! I couldn’t be happier with the results. I highly recommend this product!” —marv
Get it from Amazon for $9.99.