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ú

Mensajes - ZaPa

#11
Hola.

No te entendí.

¿Que es lo que debo leerme?

Muchas gracias man.
#12
Hola.

Yo para hacer lo que tu comentas lo que hago es hacerme 1 función sencillita, con un for que recorre la cadena y verifica si ahi algun caracter "raro".

Esta función no contiene funciones especificas de php y es como diria yo "estandar" jeje.

Aqui tienes, (esta función la tendrias que llamar antes del procesamiento de datos para verificar si te intentan inyectar sql inyection).

function verificarsql($valor) {
for(int $i=0;$i<=strlen($valor);$i++)
  if($valor[$i]=='-' || $valor[$i]=='=') {
   echo '<script>alert("No se admiten caracteresespeciales");location.href="PAGINA     A REDIRECCIONAR";</script>';
  }

}



Pero realmente esa función no es muy efectiva que digamos (se puede saltar facilmente).

Lo que podrias hacer es que, las contraseñas solo contengan números y verificar con una función si alguna letra escrita es diferente a un número, (con esta función):


function verificarcaracter($valor) {
for(int $i=0;$i<=strlen($valor);$i++)
  if($valor[$i]<0 || $valor[$i]>9)
    echo '<script>alert("No se admiten estos caracteres.");location.href="pagina a redireccionar";</script>';


}




Yo te recomendaria la 2º opción, pero tiene un inconveniente y es que las contraseñas solamente las podrias almacenar númericas (solamente números).
--------------------------------
Explicación código:

1º Función: lo que hace esta función es recorrer todos los caracteres de la cadena que le pasamos como parametro ($valor) y verificar si se encuentra algun caracter (-) o un signo igual (=) devolver un error y redireccionar a la página que queramos.

2º Función: Lo que hace esta función es recorrer todos los carácteres de la cadena que le pasamos como parámetro ($valor) y verificar si se encuenta algun caracter. Ya que las contraseñas solamente contendran números.
---------------------------------------------


Ya se que el código puede mejorarse con funciones como htmlentities() y demás funciónes de php para manejar los caracteres "raros" pero a mi me gusta hacerme funciones "de toda la vida" y no elegir funciones especificas de un lenguaje...


NOTA: Debes de cambiar en el location.href= el texto de REDIRECCIONAR PAGINA, al fichero que quieres redireccionar despues del error.

-----------------------------------------------------------------------------------------
Añado:


La redirección utilizando la función header() de php, como ha dicho el usuario (fede_cp) es muy buena opción, pero tiene un pero, y el pero es el siguiente:

Esta función te dará error si la insertas despues de varias lineas de código de php. ¿Porque? pues porque los "headers" de la página ya se habran enviado al servidor, y la función header() no funcionará, ya que, el script en php, te dará un warning diciendote que los headers ya han sido enviados, que no se pueden modificar ya que han sido enviados.

¿A que se traduce esto? A que no redireccionaria.

Por este caso, utilizo yo location.href de javascript para redireccionar, ya que, el 95% de los navegadores actuales tienen javascript activado por defecto y muy poca gente (por no decir ningúna) no desactiva javascript, asi que, no tendrias problemas.
---------------------------------------------------------------------------------------------


Estas funciónes aún se le puede meter más azucar para que sea más dulce jeje...

Se pueden modificar para que, cuando detecte una inyección de ese tipo, guarde la ip del visitante ($_SERVER['REMOTE_ADDR']), en un fichero de texto o base de datos para ver si la misma persona intenta atacarte varias veces y tomar medidas. Incluso, al detectar
ese tipo de inyección te podria enviar un correo, avisandote de que
tal ip te esta intentando hackear.

Si necesitas la función más "azucarada" jeje, dimelo y te la posteo aqui en 5 minutitos.

Ya me cuentas!
Saludos.
#13
Hola de nuevo y gracias por vuestras respuestas de verdad :D .
El problema es que al insertar la sentencia "HAVING" me da problemas de sintáxis...

Por ej:

variable=38715333 AND HAVING 1=1--

(38715333) Representa la referencia de un producto en la base de datos.

Al insertarle eso que introdujé anteriormente, me suelta esto:


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

[Microsoft][ODBC SQL Server Driver][SQL Server]Sintaxis incorrecta cerca de la palabra clave 'HAVING'.


Tambien he probado cerrando primero la comilla simple, osea quedaria asi:

variable=38715333 AND 'HAVING 1=1--

Pero ahi me suelta lo siguiente (avisandome de que una comilla simple no ha sido cerrada)

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

[Microsoft][ODBC SQL Server Driver][SQL Server]Comilla no cerrada antes de la cadena de caracteres 'HAVING 1=1-- ORDER BY Productos.ref'.

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


Tambien he probado esscribiendo la sentencia having de esta forma:

variable=38715333 AND 'HAVING 1=1--'

Y entonces la base de datos me responde lo siguiente:


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

[Microsoft][ODBC SQL Server Driver][SQL Server]Comilla no cerrada antes de la cadena de caracteres 'HAVING 1=1-- ORDER BY Productos.ref'.

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



Pero bueno....estas 2 segundas opciones son las combinaciones que he hecho yo para probar si la base de datos no se quejaba.

Lo que no entiendo es porque se queja con "Problema de Sintáxis" En la 1º inyección que he posteado.

¿Que falla aquí?


Un saludo y muchisimas gracias por su atención y ayuda.
#14
Hola de nuevo y gracias a todos por vuestro interes y respuestas.

Si ya sé que con esta técnica la información se consigue de los errores pero.....si necesito conseguir algun dato de alguna tabla, primero debo de saber como se llama esa tabla,cierto??

El problema es ese, que no puedo visualizar las tablas o ver que tablas ahi. ¿No podria hacerlo?

¿Tendria que ir probando hasta acertar con el nombre de la tabla donde este el pass de administrador?


Un saludo.
Muchas gracias.
#15
Hola tooRllehS@xelA y muchisimas gracias por tu respuesta...


Entonces.... por donde estoy intentando hacer sql injection no puedo hacer más cosas?

¿No podria solucionar el error que me esta dando y asi conseguir info?


Un saludo.
#16
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.
#17
Redes / Re: Router recibiendo Dos
8 Marzo 2010, 00:33 AM
Hola.

Si aparece la ip de tu portatil como "atacante", daré 2 cosas por afirmadas:

1 - En tú portatil utilizas Windows

2 - En tú portatil tienes algún virus/spyware, que está haciendo peticiones a esos servidores que hemos hablado. ¿Que puede ser? Ni idea sin tenerlo delante, pero, algún gusanito que intente control remoto y tu router (el firewall) lo este cortando, por eso el log..


Un saludo !
#18
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.
#19
bueno les paso todo el sourvce del programa y ya ustedes me dicen como hago para ver la respuesta del servidor:




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

Private Sub Command2_Click()
Winsock1.Close
End Sub

Private Sub Form_Load()

End Sub

Private Sub Winsock1_Connect()
For i = 1 To Text3.Text
Winsock1.SendData ("GET /" & Text2.Text & " HTTP/1.1" & vbCrLf & "Host:" & Text1.Text & vbCrLf & vbCrLf)
Label4.Caption = Label4.Caption + 1
Next
End Sub


Private Sub Winsock1_SendComplete()
Label4.Caption = Label4.Caption + 1
Winsock1.Close
Winsock1.Connect Text1.Text, 80
End Sub
#20
ya hice eso sigue sin aparecer lo que responde el servidor en el text3..salu2.