Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - ZaPa

#1
Hola.

Queria hacerles una pregunta.... ya qué, estoy terminando un pequeño script en asp y me interesa bastante asegurarlo al máximo. Lo único que he hecho para evitar un sql injection es filtrar el carácter (') y la palabra (Select).

Creo haber leido algunos documentos donde decian que se podian saltar estos "filtros" pasando el valor que queremos lograr inyectar en hexadecimal.

Me gustaria saber como es posible hacer esto ya qué estoy probando insertando los códigos hexadecimal a pelo (y como es obvio no funciona).
¿Debo de utilizar alguna función para que él mismo haga la conversión de hex a ascii y se trage la inyección?
Si es asi... ¿Que función puedo utilizar en asp?


Muchas gracias.
Un saludazo.


EDITO:

Debo añadir que tambien he filtrado la palabra clave 'char' para evitar pasar de hex a char, de esta forma con cast():

CAST(0x53656c656374 AS CHAR (4000))

Al detectar la palabra char, el script se detiene.


¿Ahi alguna otra forma con la que puedan vulnerar mi script?

Saludos.

#2
Hola a todos.

¿Que tal?

Aver si me pueden hechar una mano.

Este fin de semana, he estado prácticando en la web de un amigo (que hizó de prueba, una tienda online con asp un poco cutre) el tema de sql injection.

El caso es qué aposté con el una cenita si conseguia encontrar/explotar algún fallo de seguridad en su página web que él recientemente habia hecho.

El caso es que he encontrado un fallo de seguridad con lo que se puede jugar con sql injection, el problema es que, no consigo hacer todo lo que quiero...

La sql injection está aqui:

http://www.paginaweb.com/cgi-bin/datos.asp?user=46&id='Select * from productos.ref--'


Detrás de la variable id= puedo jugar con sql injection, pero no consigo, por ejemplo, hacer un insert....:


http://www.paginaweb.com/cgi-bin/datos.asp?user=46&id='Select * from productos.ref--'

Al hacer esto por ejemplo (y con otras muchas más consultas) el servidor sql me contesta lo siguiente:


Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC SQL Server Driver][SQL Server]Error al convertir el tipo de datos varchar a float.

/cgi-bin/datos.asp, línea 25


Dice que no puede convertir datos de varchar a float... pero... ¿que datos?
Si solamente le estoy diciendo que muestre datos..

El caso es que...con (Select Count(*)...) si pudé adivinar los campos que tenia dicha tabla, ya que jugando con > & < pudé dar con los items disponbiles en la tabla productos, pero poco más..

¿Alguna idea?

Un saludo.
Muchas gracias.
#3
Hola a todos, estoi haciendo una herramienta, que quiero que haga fuerza bruta en un formulario, ya construi todo, pero me falta lo más importante el codigo para conseguir q haga fuerza bruta, tengo el codigo, y podria copiar y pegar inmediatamente, pero no me gusta  hacer eso ,quiero comprender el codigo y despues hacerlo yo...Espero que me puedan explicar el codigo, paso a paso si sois tan amables..Aqui posteo el codigo:


Dim Zahl1 As Integer
Dim Zahl2 As Integer
Dim Zahl3 As Integer
Dim Zahl4 As Integer
Dim Zahl5 As Integer
Dim Zahl6 As Integer
Dim chr1 As String
Dim chr2 As String
Dim chr3 As String
Dim chr4 As String
Dim chr5 As String
Dim chr6 As String

Private Sub Command1_Click()


    Do
        Zahl1 = Zahl1 + 1 '1.) character
        chr1 = Chr(Zahl1)


        If Zahl1 > 123 Then '2.) character
            Zahl1 = 48'Set Zahl1(Chr) = 48 (chr(48)=0)
            Zahl2 = Zahl2 + 1
            chr2 = Chr(Zahl2) 'Convert
        End If


        If Zahl2 > 123 Then '3.) character
            Zahl1 = 48
            Zahl2 = 48
            Zahl2 = Zahl2 + 1
            chr2 = Chr(Zahl2)
            Zahl3 = Zahl3 + 1
            chr3 = Chr(Zahl3)
        End If


        If Zahl3 > 123 Then '4.) character
            Zahl1 = 48
            Zahl2 = 48
            Zahl3 = 48
            Zahl2 = Zahl2 + 1
            chr2 = Chr(Zahl2)
            Zahl3 = Zahl3 + 1
            chr3 = Chr(Zahl3)
            Zahl4 = Zahl4 + 1
            chr4 = Chr(Zahl4)
        End If


        If Zahl4 > 123 Then '5.) character
            Zahl1 = 48
            Zahl2 = 48
            Zahl3 = 48
            Zahl4 = 48
            Zahl2 = Zahl2 + 1
            chr2 = Chr(Zahl2)
            Zahl3 = Zahl3 + 1
            chr3 = Chr(Zahl3)
            Zahl4 = Zahl4 + 1
            chr4 = Chr(Zahl4)
            Zahl5 = Zahl5 + 1
            chr6 = Chr(Zahl6)
        End If


        If Zahl5 > 123 Then '6.) character
            Zahl1 = 48
            Zahl2 = 48
            Zahl3 = 48
            Zahl4 = 48
            Zahl5 = 48
            Zahl2 = Zahl2 + 1
            chr2 = Chr(Zahl2)
            Zahl3 = Zahl3 + 1
            chr3 = Chr(Zahl3)
            Zahl4 = Zahl4 + 1
            chr4 = Chr(Zahl4)
            Zahl5 = Zahl5 + 1
            chr5 = Chr(Zahl5)
            Zahl6 = Zahl6 + 1
            chr6 = Chr(Zahl6)
        End If


        If Zahl6 > 123 Then '7.) character
            MsgBox "Uncracked"
            End
        End If


        DoEvents
            Cls
            Print Zahl1, Zahl2, Zahl3, Zahl4, Zahl5, Zahl6
            Me.Label1 = chr1 & chr2 & chr3 & chr4 & chr5 & chr6
        Loop

    End Sub


Private Sub Form_Load()

    Zahl1 = 48
    Zahl2 = 48
    Zahl3 = 48
    Zahl4 = 48
    Zahl5 = 48
    Zahl6 = 48
End Sub



Espero respuestas,Saludos.
#4
Hola, quisiera saber como recibir la respuesta del servidor al TExt3... el codigo del programa es este:


Winsock1.SendData ("GET /" & Text2.Text & " HTTP/1.1" & vbCrLf & "Host:" & Text1.Text & vbCrLf & vbCrLf)


Lo que hace es hacer peticiones al servidor, quisiera saber si esta bien echa esa etiketa GET, y también quisiera saber con que codigo puedo ver lo que responde el servidor..salu2.
#5
HOla a todos, estaba intentando hacer un escaneador de puertos es bastante sencillo o eso creia hasta que tipee todo el codigo y despues veo que cuando le doi Winsock1.Close y Winsock1.Connect en un command, no llega al evento Winsock1.Connect, y queria saber si tengo algun error de escritura de codigo, aqui os lo dejo:



Private Sub Command1_Click()
Winsock1.Close
Winsock1.Connect Text1.Text, Port
End Sub

Private Sub Form_Load()
Port = Text2.Text
Text1.Text = Winsock1.LocalIP
End Sub

Private Sub Winsock1_Close()
Winsock1.Connect Text1.Text, Port
End Sub

Private Sub Winsock1_Connect()
Winsock1.Close
End Sub



Espero sus respuestas salu2 y sigan con este foro que nos sirve de ayuda para todos.
#6
Queria saber como se coencta mediante winsock a un ftp indicando user y pass.
#7
Hola a todos, bueno les explico, yo tengo una web, y tengo un tag, pero quisiera saber como puedo escribir datos desde vb  y que los datos se introdujeran en ese tag......


Espero sus respuestas.
#8
eso quisiera, un manual bueno y extenso de el control winsock en visual basic y si es posible q tenga ejercicios para practicar, todo slos q encontre no me gustan nada...Muchas gracias.