Voy a decir que depende de lo que haga luego con la variable ID. Si su código convierte posteriormente el hex en una cadena y luego crea consultas con él, entonces la respuesta se convierte en "sí".
Ejemplo:
Construyo un sitio web de comercio electrónico que busca su historial de compras basado en su ID de cliente ... Siendo un noob, se me ocurrió una idea inteligente de usar su dirección de correo electrónico para generar su ID simplemente convirtiéndola en hexadecimal.
- mi correo electrónico =
[email protected]
- mi ID sería entonces =
637573746f6d6572406578616d706c652e636f6d
Parece una identificación "bastante segura" y única, así que me siento muy bien por lo que he hecho.
Ahora la inyección:
Alguien se da cuenta de que el ID de usuario es simplemente el equivalente hexadecimal de la dirección de correo electrónico y adivina que es posible que lo esté convirtiendo de nuevo en texto y utilizando ese resultado en una consulta
enlace
Si yo, el desarrollador, verifico que la ID sea numérica ... luego la ID de hexadecimal a texto ... luego la uso en una consulta ... Acabo de permitir una inyección de sql
Referencias:
Aquí hay una pregunta similar con respecto a las inyecciones de SQL que usan solo caracteres alfanuméricos: enlace
Aquí hay otro hilo que trata sobre la inyección de sql a través de hex: enlace
... Por supuesto, la solución correcta es utilizar mecanismos de prevención "reales", como consultas parametrizadas, pero esta es ciertamente una pregunta interesante.