Foros del Web » Programando para Internet » ASP Clásico »

problemas para la función de sql injection

Estas en el tema de problemas para la función de sql injection en el foro de ASP Clásico en Foros del Web. Hola! Estoy utilizando sin éxito una funcion de la biblioteca para que no te metan sentencias sql al logearse y puedo entrar en mi página ...
  #1 (permalink)  
Antiguo 20/05/2005, 00:56
 
Fecha de Ingreso: marzo-2005
Ubicación: Vitoria
Mensajes: 49
Antigüedad: 19 años, 2 meses
Puntos: 0
problemas para la función de sql injection

Hola! Estoy utilizando sin éxito una funcion de la biblioteca para que no te metan sentencias sql al logearse y puedo entrar en mi página tranquilamente con 'or' '='. Por que no hace los replaces?. Bueno aqui va el código.Soy muy zoquete y seguro que es una chorrada.

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<style type="text/css">
<!--
body,td,th {
color: #FFFFFF;
}
body {
background-color: #404040;
}
-->
</style>
<% Session.TimeOut = 360 %>
<%

'Para los redireccionamientos
Response.Buffer=True

Dim oConn, rs, SQL, nombre, password

'Recogemos el formulario
nombre=Trim( Request.Form("Nombre") )
password=Trim ( Request.Form("Password"))

nombre = trim(nombre)
nombre = lcase(nombre)
nombre = replace(nombre,"=","")
nombre = replace(nombre,"'","")
nombre = replace(nombre,"""""","")
nombre = replace(nombre," or ","")
nombre = replace(nombre," and ","")
nombre = replace(nombre,"(","")
nombre = replace(nombre,")","")
nombre = replace(nombre,"<","[")
nombre = replace(nombre,">","]")
nombre=replace(nombre,"--","")
nombre=replace(nombre,"select","")
nombre=replace(nombre,"insert","")
nombre=replace(nombre,"update","")
nombre=replace(nombre,"delete","")
nombre=replace(nombre,"drop","")
nombre=replace(nombre,"-shutdown","")
nombre=replace(nombre,"--","")
%>
<%
password = trim(password)
password= lcase(password)
password= replace(password,"=","")
password = replace(password,"'","")
password = replace(password,"""""","")
password = replace(password," or ","")
password = replace(password," and ","")
password = replace(password,"(","")
password= replace(password,")","")
password= replace(password,"<","[")
password= replace(password,">","]")
password=replace(password,"--","")
password=replace(password,"select","")
password=replace(password,"insert","")
password=replace(password,"update","")
password=replace(password,"delete","")
password=replace(password,"drop","")
password=replace(password,"-shutdown","")
password=replace(password,"--","")
%>
<%

if nombre="" then
MostrarFormulario
else


set oConn=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.Recordset")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.MapPath("ing.mdb")&";"
SQL="SELECT Id_USU, Log, PassFROM usu WHERE
Login='"&nombre&"' AND Password='"&password&"'"

'Ejecutamos consulta
set rs=oConn.Execute(SQL)

if rs.EOF then


Session("ID")=Cint(0)
Response.Write("Lo siento, no existe ese usuario/contraseña.")
else

SESION
Session("ID")=CInt(rs.Fields("ID_Usuario"))
Response.Redirect("principal.asp")
end if

end if





Sub MostrarFormulario

Response.Write("<FORM METHOD=""post"" ACTION=""login.asp"">")
Response.Write("<INPUT TYPE=""text"" NAME=""Nombre""><BR>")
Response.Write("<INPUT TYPE=""password"" NAME=""Password""><BR>")
Response.Write("Entre su nombre de usuario y contraseña <BR>")
Response.Write("<INPUT TYPE=""submit""><BR>")
End Sub 'MostrarFormulario

%>


<html>
<head>
<title>NOVATIS</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

</body>
</html>

Antes he intentado utilizarla con una función para no tener que escribir dos veces pero como no funcionaba lo he puesto así.
Un saludo máquinas.
__________________
En la oficina todo son mujers menos yo y me estan dando por el culo... algo falla :golpeado:
  #2 (permalink)  
Antiguo 20/05/2005, 01:04
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
Egunon Paharillo!!
pon un response.write sql despues de que armas la consulta a ver que sale, porque eso debería hacerte los replaces
  #3 (permalink)  
Antiguo 20/05/2005, 01:06
 
Fecha de Ingreso: marzo-2005
Ubicación: Vitoria
Mensajes: 49
Antigüedad: 19 años, 2 meses
Puntos: 0
Ya está solucionado!! Si ya lo decía yo soy un zoquete el problema era que cunado hice está página la llamé login.asp y luego pasó a ser default.asp y se me olvidó cambiar el nombre de la página que recibe los datos del formularioen el formulario.

Sub MostrarFormulario

Response.Write("<FORM METHOD=""post"" ACTION=""login.asp"">")
Response.Write("<INPUT TYPE=""text"" NAME=""Nombre""><BR>")
Response.Write("<INPUT TYPE=""password"" NAME=""Password""><BR>")
Response.Write("Entre su nombre de usuario y contraseña <BR>")
Response.Write("<INPUT TYPE=""submit""><BR>")
End Sub 'MostrarFormulario

y tenía que haber puesto

Response.Write("<FORM METHOD=""post"" ACTION=""default.asp"">")

Bueno chavales hasta otra!

P.D.: aupa trasgu, Tu como siempre en primera línea desde la mañana. A por los mil mensajes!Un saludo!
__________________
En la oficina todo son mujers menos yo y me estan dando por el culo... algo falla :golpeado:

Última edición por Paharillo; 20/05/2005 a las 01:27 Razón: Saludar a trasgukabi
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:31.