elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  ASP.net + Injeccion SQL
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ASP.net + Injeccion SQL  (Leído 4,810 veces)
acid0ikario

Desconectado Desconectado

Mensajes: 6


Ver Perfil
ASP.net + Injeccion SQL
« en: 19 Febrero 2011, 23:03 pm »

en primer lugar tengan buenas tardes la duda es la siguiente:

tengo el siguiente codigo de un login en asp.net:

Código
  1. Imports System.Data
  2. Imports System.Data.SqlClient
  3. Partial Class Login : Inherits System.Web.UI.Page
  4.    Dim Link As New Sql
  5.    Dim Sql As SqlCommand
  6.    Dim Ler As SqlDataReader
  7.    Dim i As Boolean
  8.    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  9.        Me.TextBox1.Focus()
  10.    End Sub
  11.    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
  12.        Dim tipo As String = ""
  13.        Dim Nom As String = ""
  14.        Dim ie As String = ""
  15.        Sql = New SqlCommand("select * from usuario", Link.Con)
  16.        Dim ide As New HH84.HH84
  17.        ' se ocupa el algorito MD5 para cifrar el password
  18.        ' y asi esta guardado en la base de datos algo parecido a esto: e99008846853ff3b725c27315e469fbc
  19.  
  20.        dim pass = ide.GenerarHash(Me.TextBox2.Text)
  21.  
  22.        Try
  23.            Link.Con.Open()
  24.        Catch ex As Exception
  25.            Me.Label3.Text = "Error: " & ex.Message
  26.            Me.Label3.Visible = True
  27.        End Try
  28.        Try
  29.            Ler = Sql.ExecuteReader
  30.            While Ler.Read
  31. 'texbox1 es el usuario
  32. 'texbox2 es la contraseña
  33.                If Ler(1).Equals(Me.TextBox1.Text) And Ler(2).Equals(pass) Then
  34.                    Nom = Ler(3)
  35.                    ie = Ler(0)
  36.                    tipo = Ler(7)
  37.                    i = True
  38.                Else
  39.                    Me.Label1.Visible = True
  40.                    Me.Label1.Text = "Su Usuario o password es Invalida"
  41.                End If
  42.            End While
  43.        Catch ex As Exception
  44.            Me.Label3.Text = "Error: " & ex.Message
  45.            Me.Label3.Visible = True
  46.        End Try
  47.  
  48.        Try
  49.            Link.Con.Close()
  50.        Catch ex As Exception
  51.            Me.Label3.Text = "Error: " & ex.Message
  52.            Me.Label3.Visible = True
  53.        End Try
  54.  
  55.        If i = True Then
  56.            Session("ie") = ie
  57.            If tipo = "Administrador" Then
  58.                Session("tipo") = "Administrador"
  59.                Session("Login") = True
  60.                Session("Nom") = Nom
  61.                Session("estado") = "OnLine"
  62.                Response.Redirect("Principal.aspx")
  63.            ElseIf tipo = "Gestor" Then
  64.                Session("tipo") = "Gestor"
  65.                Session("Login") = True
  66.                Session("Nom") = Nom
  67.                Session("estado") = "OnLine"
  68.                Response.Redirect("Gestor.aspx")
  69.            ElseIf tipo = "Comite" Then
  70.                Session("tipo") = "Comite"
  71.                Session("Nom") = Nom
  72.                Session("estado") = "OnLine"
  73.                Session("Login") = True
  74.                Response.Redirect("Comite.aspx")
  75.            ElseIf tipo = "Entrevistador" Then
  76.                Session("tipo") = "Entrevistador"
  77.                Session("Nom") = Nom
  78.                Session("estado") = "OnLine"
  79.                Session("Login") = True
  80.                Response.Redirect("Entrevistas.aspx")
  81.            Else
  82.                Me.Label1.Visible = True
  83.                Me.Label1.Text = "Su Usuario o password es Invalida"
  84.            End If
  85.        End If
  86.    End Sub
  87. 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 Desconectado

Mensajes: 177



Ver Perfil
Re: ASP.net + Injeccion SQL
« Respuesta #1 en: 19 Febrero 2011, 23:20 pm »

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 Desconectado

Mensajes: 6


Ver Perfil
Re: ASP.net + Injeccion SQL
« Respuesta #2 en: 19 Febrero 2011, 23:56 pm »

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 Desconectado

Mensajes: 177



Ver Perfil
Re: ASP.net + Injeccion SQL
« Respuesta #3 en: 20 Febrero 2011, 00:23 am »

Ami parecer seria todo ahi, faltaria tambien revisar el de registro.
En línea

acid0ikario

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: ASP.net + Injeccion SQL
« Respuesta #4 en: 20 Febrero 2011, 00:39 am »

pero y el codigo del registro para que??

pero este es el codigo del registro

Código
  1. If nom.Equals("") Or ape.Equals("") Or tel.Equals("") Or mail.Equals("") Or user.Equals("") Or pass.Equals("") Or tipo.Equals("Seleccione uno") Then
  2.            Me.Label5.Visible = True
  3.            Me.Label5.Text = " Campos  Obligatorios"
  4.        Else
  5.            Sql = New SqlCommand("SELECT * FROM usuario WHERE usuario = '" & user & "'", Link.Con)
  6.            Link.Con.Open()
  7.            Cad = Sql.ExecuteReader
  8.            While Cad.Read
  9.                Me.Label6.Text = Cad(1)
  10.            End While
  11.            Link.Con.Close()
  12.            If Me.Label6.Text <> "" Then
  13.                Me.Label5.Visible = True
  14.                Me.Label5.Text = " El Usuario ya Existe "
  15.                Me.Label6.Text = ""
  16.            Else
  17.                Try
  18.                    pass = add.GenerarHash(Me.TextBox6.Text)
  19.                Catch ex As Exception
  20.                    Me.Label2.Text = "error al generar pass"
  21.                End Try
  22.                Try
  23.                    Link.Con.Open()
  24.                Catch ex As Exception
  25.                    Me.Label2.Text = "error al abrir la conexion"
  26.                End Try
  27.                Sql = New SqlCommand("insert into usuario values('" & user & "','" & pass & "','" & nom & "','" & ape & "','" & tel & "','" & mail & "','" & tipo & "')", Link.Con)
  28.  
  29.                Try
  30.                    Sql.ExecuteNonQuery()
  31.                Catch ex As Exception
  32.  
  33.                End Try
En línea

[D4N93R]
Wiki

Desconectado Desconectado

Mensajes: 1.646


My software never has bugs. Its just features!


Ver Perfil WWW
Re: ASP.net + Injeccion SQL
« Respuesta #5 en: 20 Febrero 2011, 13:30 pm »

Hola! ,

Leete todos los topics que salen acá :) Bien bien leidos.

http://msdn.microsoft.com/es-es/library/ecb3hak0.aspx

Un saludo!
En línea

acid0ikario

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: ASP.net + Injeccion SQL
« Respuesta #6 en: 20 Febrero 2011, 16:44 pm »

leyendo gracias!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
SQL Injeccion- Pregunta
Nivel Web
VCore 6 4,585 Último mensaje 29 Junio 2005, 01:39 am
por VCore
Injeccion SQL
Nivel Web
Distorsion 4 4,247 Último mensaje 24 Agosto 2007, 02:02 am
por sirdarckcat
[Duda] Sql Injeccion
Nivel Web
Dacan 9 4,693 Último mensaje 24 Enero 2009, 02:01 am
por Dacan
Injeccion HTML « 1 2 »
Programación Visual Basic
SigmaSystem32 17 5,347 Último mensaje 17 Diciembre 2008, 16:20 pm
por byway
Duda con SQL injección
Nivel Web
.:UND3R:. 0 2,767 Último mensaje 18 Abril 2011, 19:18 pm
por .:UND3R:.
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines