¿Es posible una inyección de SQL aquí? [cerrado]

-4

Soy un estudiante de seguridad informática y estoy entrenando para obtener una certificación.

Tengo esta URL que quiero atacar (en un laboratorio de capacitación):

http://URL/search/blabla/1

Reemplace "1" con letras, como las siguientes:

http://URL/search/blabla/aaa

Lo que crea este mensaje de error (eliminé algunas partes para aclararlo):

  

Error fatal: .... en la consulta - SELECCIONAR * DE LOS Libros DONDE 1 Y   (INFERIOR (título) ME GUSTA '% blabla%' O INFERIOR (publicitario) ME GUSTA '% blabla%') Y   (publish_date IS NULL OR publish_date < = '2016-08-23') ORDEN POR fecha   LÍMITE DE DESC-5,5 '

Entonces, primero intenté salir de la cotización con %') , agregar una nueva solicitud y cancelar con # :

%'); SELECT * FROM Books;#
  

= > Solicitud incorrecta, su navegador envió una solicitud que este servidor no pudo   entender.

Segundo intento, esta vez copio el resto de la solicitud que aparece en el mensaje de error y la cancelo con un # :

%') AND (publish_date IS NULL OR publish_date <= '2016-08-23') ORDER BY date DESC LIMIT -5,5'#
  

= > ¡Mala solicitud de nuevo!

¿Cree que es posible una inyección de SQL aquí?

    
pregunta mric750 23.08.2016 - 16:49
fuente

1 respuesta

1

La solicitud incorrecta no indica nada sobre la aplicación. En su lugar, indica que Apache no pudo analizar la solicitud antes de pasarla a la aplicación web. Considere, por ejemplo, el siguiente enlace, que da el mismo error:

http://www.apache.org/icons/%');%20SELECT%20*%20FROM%20Books;#

EstosedebeaqueelsignodeporcentajetieneunsignificadoespecialenunaURL.SipasaparámetrosenlaURL,debecodificarlosconurl:

%25%27)%3B%2520SELECT%2520*%2520FROM%2520Books%3B%23

Unacosaqueobservoesque,sibienapareceunerrordeSQL,elvalorinyectado"aaa" no está presente en la consulta SQL que se muestra. Esto hace que sea difícil decir si es vulnerable a la inyección de SQL.

Una herramienta que puede ayudarte con esto es sqlmap . Es bastante bueno para encontrar automáticamente la inyección de SQL en un parámetro dado.

    
respondido por el Sjoerd 24.08.2016 - 09:33
fuente

Lea otras preguntas en las etiquetas