Error 403 ¿Posible SQli?

Iniciado por dimitrix, 2 Julio 2011, 17:14 PM

0 Miembros y 1 Visitante están viendo este tema.

dimitrix

Vamos a ver, estoy desarollando una aplicación y hay una variable GET que la uso para usa consulta SQL.

http://www.todojuegos.com/pcontrol/?accion=changever&idcli=1

Siempre limpio las variables antes de meterlas en las sentencias, pero me pasa una cosa muy rara.

Si pongo por ejemplo:
&idcli=1 // Y existe me dice que todo ok
&idcli=1211 // Error: No existe o no pertenece

Ataques:
&idcli="> // Error: No existe o no pertenece
&idcli='OR // Error: No existe o no pertenece
&idcli=% // AQUÍ LO RARO

Al poner % me sale:

Citar
Error 403
Forbidden
You don't have permission to access /pcontrol/ on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Apache/1.3.41 Server at www.todojuegos.com Port 80

Y no me mola no poder controlar ese error.

Para limpiar la variable en una sentencia SQL uso este:
mysql_real_escape_string($idcli)

Gracias :-)




Spider-Net

Podrías usar una función como esta, que limpiaría de la cadena cualquier caracter que no sea alfanumérico, evitando ese problema:

Código (php) [Seleccionar]
function alfanumeric($string){
$string=ereg_replace("[^A-Za-z0-9]", "", $string);
return $string;
}

dimitrix

El problema de eso es que haber si va a eliminar algo que no 'deba'.

Aunque muchos son numéricos (y en ocasiones fueron con un INT para que no me pase nada), quizás necesite poner por ejemplo un email y ya no funcionaría.

También me gustaría entender el error ¿Por qué sucede?.




madpitbull_99

Si tienes el mod_security para Apache es muy probable que sea eso.



«Si quieres la paz prepárate para la guerra» Flavius Vegetius


[Taller]Instalación/Configuración y Teoría de Servicios en Red

dimitrix

Cita de: madpitbull_99 en  2 Julio 2011, 18:04 PM
Si tienes el mod_security para Apache es muy probable que sea eso.


Estoy haciendo las pruebas en un hosting 'del palo' ¿Hay alguna forma de saberlo? Tiene cPanel.

PD: Gracias.




madpitbull_99

En la información de phpinfo() creo que debería salir.



«Si quieres la paz prepárate para la guerra» Flavius Vegetius


[Taller]Instalación/Configuración y Teoría de Servicios en Red

Spider-Net

Cita de: dimitrix en  2 Julio 2011, 17:29 PM
El problema de eso es que haber si va a eliminar algo que no 'deba'.

Aunque muchos son numéricos (y en ocasiones fueron con un INT para que no me pase nada), quizás necesite poner por ejemplo un email y ya no funcionaría.

También me gustaría entender el error ¿Por qué sucede?.

Si quieres que acepte emails es tan fácil como hacer la función así:
Código (php) [Seleccionar]
function alfanumeric($string){
$string=ereg_replace("[^A-Za-z0-9@._]", "", $string);
return $string;
}


Me parece que te estás complicando más de la cuenta, para un error que puede tener una solución extremadamente fácil.