"Have you ever been shot?" is semantically different since it implied the person was actually hit.
"Have you ever been under fire?" is better but is also ambiguous since "under fire" has the alternate meaning of "heavily criticized". Even if the firearm attack meaning is understood, it has the connotation that the subject is also armed (soldier, police) or at least in a situation where an attack is expected to some degree, whereas "shot at" does not have this nuance.
So what I'm going for is a grammatically correct re-phrase of the question which maintains the clarity of the grammatically incorrect form.