Autor
|
Tema: ASP.net + Injeccion SQL (Leído 5,315 veces)
|
acid0ikario
Desconectado
Mensajes: 6
|
en primer lugar tengan buenas tardes la duda es la siguiente: tengo el siguiente codigo de un login en asp.net: Imports System.Data Imports System.Data.SqlClient Partial Class Login : Inherits System.Web.UI.Page Dim Link As New Sql Dim Sql As SqlCommand Dim Ler As SqlDataReader Dim i As Boolean Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Me.TextBox1.Focus() End Sub Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Dim tipo As String = "" Dim Nom As String = "" Dim ie As String = "" Sql = New SqlCommand("select * from usuario", Link.Con) Dim ide As New HH84.HH84 ' se ocupa el algorito MD5 para cifrar el password ' y asi esta guardado en la base de datos algo parecido a esto: e99008846853ff3b725c27315e469fbc dim pass = ide.GenerarHash(Me.TextBox2.Text) Try Link.Con.Open() Catch ex As Exception Me.Label3.Text = "Error: " & ex.Message Me.Label3.Visible = True End Try Try Ler = Sql.ExecuteReader While Ler.Read 'texbox1 es el usuario 'texbox2 es la contraseña If Ler(1).Equals(Me.TextBox1.Text) And Ler(2).Equals(pass) Then Nom = Ler(3) ie = Ler(0) tipo = Ler(7) i = True Else Me.Label1.Visible = True Me.Label1.Text = "Su Usuario o password es Invalida" End If End While Catch ex As Exception Me.Label3.Text = "Error: " & ex.Message Me.Label3.Visible = True End Try Try Link.Con.Close() Catch ex As Exception Me.Label3.Text = "Error: " & ex.Message Me.Label3.Visible = True End Try If i = True Then Session("ie") = ie If tipo = "Administrador" Then Session("tipo") = "Administrador" Session("Login") = True Session("Nom") = Nom Session("estado") = "OnLine" Response.Redirect("Principal.aspx") ElseIf tipo = "Gestor" Then Session("tipo") = "Gestor" Session("Login") = True Session("Nom") = Nom Session("estado") = "OnLine" Response.Redirect("Gestor.aspx") ElseIf tipo = "Comite" Then Session("tipo") = "Comite" Session("Nom") = Nom Session("estado") = "OnLine" Session("Login") = True Response.Redirect("Comite.aspx") ElseIf tipo = "Entrevistador" Then Session("tipo") = "Entrevistador" Session("Nom") = Nom Session("estado") = "OnLine" Session("Login") = True Response.Redirect("Entrevistas.aspx") Else Me.Label1.Visible = True Me.Label1.Text = "Su Usuario o password es Invalida" End If End If End Sub End Class
y estos son los campos de la tabla usuario: id_usuario usuario contraseña nombre apellido telefono correo tipo estado ahora sabiendo como esta estructurado el codigo del login y como esta estructurada la tabla usuario. ¿ se puede atacar este login con Injeccion SQL?
¿ Cual seria la sentencia para realizar el ataque?
¿ si no es posible realizar Injeccion SQL a este codigo que otro metodo podria utlizar?esperando su ayuda muchas gracias.
|
|
|
En línea
|
|
|
|
.mokk.
Desconectado
Mensajes: 177
|
Ami parecer no no se puede hacer nada en el ya que lo que hace es solo hacer una consulta que llama a todo lo que haya en la tabla usuarios, pero jamas hace algun tipo de Select * From usuarios WHERE Usuario='text1' and Contraseña='text2' , jamas se hace algo asi ahi si se pudiese hacer talvez una sql injeccion pero con el codigo que muestras al parecer no se puede hacer nada.
Y tambien la forma de loguearse se me hace medio tonta hehe, ya que llama a toda la tabla usuarios lo cual si son bastantes tardara bastante en avanzar a la siguiente fase y solo seria perdida, ahi seria mejor usar una consulta con where, claro colocandole un antisql ahi o am para que no acepte palabras como where,update o esas en los textbox.
|
|
|
En línea
|
|
|
|
acid0ikario
Desconectado
Mensajes: 6
|
ummm bueno gracias por tu respuesta.
bueno la verdad este es un sistema codificado por mi y un amigo no nos pusimos a pensar lo que tardaria un usuario en iniciar sesion, pero dado el sistema no creo que tenga mas de 20 usuarios en la base de datos, pero lo tomaremos muy encuenta para futuros sistemas.
aparte de eso abria otro metedo para atacar este login??
|
|
|
En línea
|
|
|
|
.mokk.
Desconectado
Mensajes: 177
|
Ami parecer seria todo ahi, faltaria tambien revisar el de registro.
|
|
|
En línea
|
|
|
|
acid0ikario
Desconectado
Mensajes: 6
|
pero y el codigo del registro para que?? pero este es el codigo del registro If nom.Equals("") Or ape.Equals("") Or tel.Equals("") Or mail.Equals("") Or user.Equals("") Or pass.Equals("") Or tipo.Equals("Seleccione uno") Then Me.Label5.Visible = True Me.Label5.Text = " Campos Obligatorios" Else Sql = New SqlCommand("SELECT * FROM usuario WHERE usuario = '" & user & "'", Link.Con) Link.Con.Open() Cad = Sql.ExecuteReader While Cad.Read Me.Label6.Text = Cad(1) End While Link.Con.Close() If Me.Label6.Text <> "" Then Me.Label5.Visible = True Me.Label5.Text = " El Usuario ya Existe " Me.Label6.Text = "" Else Try pass = add.GenerarHash(Me.TextBox6.Text) Catch ex As Exception Me.Label2.Text = "error al generar pass" End Try Try Link.Con.Open() Catch ex As Exception Me.Label2.Text = "error al abrir la conexion" End Try Sql = New SqlCommand("insert into usuario values('" & user & "','" & pass & "','" & nom & "','" & ape & "','" & tel & "','" & mail & "','" & tipo & "')", Link.Con) Try Sql.ExecuteNonQuery() Catch ex As Exception End Try
|
|
|
En línea
|
|
|
|
|
acid0ikario
Desconectado
Mensajes: 6
|
leyendo gracias!!
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
SQL Injeccion- Pregunta
Nivel Web
|
VCore
|
6
|
4,981
|
29 Junio 2005, 01:39 am
por VCore
|
|
|
Injeccion SQL
Nivel Web
|
Distorsion
|
4
|
4,550
|
24 Agosto 2007, 02:02 am
por sirdarckcat
|
|
|
[Duda] Sql Injeccion
Nivel Web
|
Dacan
|
9
|
5,111
|
24 Enero 2009, 02:01 am
por Dacan
|
|
|
Injeccion HTML
« 1 2 »
Programación Visual Basic
|
SigmaSystem32
|
17
|
6,213
|
17 Diciembre 2008, 16:20 pm
por byway
|
|
|
Duda con SQL injección
Nivel Web
|
.:UND3R:.
|
0
|
2,936
|
18 Abril 2011, 19:18 pm
por .:UND3R:.
|
|