¿Desinfección insegura? ¿Es este código SQLi vulnerable?

2
Function RemoveSuspeitos(ByVal strTXT)
               Dim txtAux As String
               txtAux = strTXT
               txtAux = Replace(txtAux, chr(34), "")
               txtAux = Replace(txtAux, "'", "")
               RemoveSuspeitos = txtAux
End Function

DB: MSSQL

1) Olvide los errores de sintaxis en el código anterior, no soy experto en VB.

2) Digamos que siempre uso comillas simples o dobles, incluso para los valores int (por ejemplo: '"+ $ int_id +"').

¿Este saneamiento no es seguro? ¿Si es así por qué? Por favor, muéstrame un escenario real de explotación.

    
pregunta Lucas NN 17.04.2014 - 07:13
fuente

1 respuesta

3

Sí, es vulnerable. Dependiendo del mecanismo de entrada y la implementación, simplemente puedo agregar un UNION y continuar la consulta para seleccionar datos adicionales. No puedo darle un escenario exacto sin ver la implementación y la consulta con la que se concatena esta cadena. El hecho es que permite la entrada más allá del alcance que necesitará o deseará.

Solo use SQL parametrizado, estoy seguro de que VB admite la adición de parámetros a sus consultas.

Consulte this

    
respondido por el ilikebeets 17.04.2014 - 08:01
fuente

Lea otras preguntas en las etiquetas