Como mencionas si la entrada no está validada, agregar lo que quieras como ID sería trivial.
Con respecto a 'seleccionar * de' antes de la consulta principal, entonces sí, esto podría ser posible.
Diga, por ejemplo, que tiene
http://domain.com?column=foo&id=6
Y que estabas usando $ _GET ['columna'] (asumimos PHP aquí pero similar para otros idiomas) para determinar qué columna requieres, entonces todo lo que la persona debería hacer es adaptar la url para que sea algo como:
http://domain.com?column=*%20from%20select%20foo&id=6
Si usaste lo siguiente para crear el SQL:
$sql = 'select ' . $_GET['column'] . ' from bar where id = ' . $_GET['id'];
SQL equivaldría a la siguiente cadena:
select * from select foo from bar where id = 6
Por supuesto, esto sería un gran error por parte del programador, pero he visto mucho peor en el pasado. Para mitigar esto, el programador debe verificar si el nombre de la columna está dentro de una lista blanca. Si es bueno, si no, no respetas la solicitud ni devuelves la columna estándar.
Con respecto a cualquier clase de aplicación que sea susceptible a tal ataque. Su mejor opción sería examinar algunos de los sitios de tipo de divulgación de vulnerabilidades. Sin embargo, espero que los principales culpables sean las páginas de búsqueda dentro de las aplicaciones.