Jack Shantry took six wickets as Worcestershire forced Surrey to follow-on and closed in on victory at the Kia Oval.