Foro de elhacker.net

Seguridad Informática => Nivel Web => Mensaje iniciado por: tragantras en 12 Junio 2010, 17:57 pm



Título: Inyeccion via post
Publicado por: tragantras en 12 Junio 2010, 17:57 pm
Hola, mi duda es sencilla y clara.

[CONTEXTO]
Existe cierto formulario vulnerable a una inyección sql en un parametro de tipo string, de manera que la web te muestra el error devolviendo la cadena problematica.

Es decir, tenemos un flanco para explotar un XSS. El problema viene porque para que la cadena se muestre se debe insetar una comilla simple, no puede ir urlencodeada, tiene que ser una comilla, pq obviamente, al estar url-encodeada el error SQL no salta... He aquí mi pregunta

[PREGUNTA]

  • como puedo hacer un formulario de manera que la petición no se codifique?
  • Existe alguna manera de explotar este flanco que no sea de manera local (por ejemplo con live http headers)?

Un saludo y gracias :]


Título: Re: Inyeccion via post
Publicado por: WHK en 16 Junio 2010, 20:47 pm
Cuando mandas una comilla se envía via POST urlencodeada pero apache lo decodifica procesando solamente los carácteres legitimos, o sea.. eso es parte del protocolo HTTP (vease su RFC) donde el explorador envía el contenido de dos formas... multi part data, o sea en múltiples partes o si no urlencodeada, esto se hace para evitar que cuando ingreses el carácter "&" no se tome como una variable extra sino como parte del contenido a enviar.

por lo tanto ese no es el problema, el problema es que el sistema web debe estar urlencodeando el string una ves recibido o simplemente no tiene inyección, eso pasa muchas veces para resolver algunos problemas de seguridad aunque es una muy mala práctica.

intenta con internet explorer 6, ese explorador envía las comillas simples sin urlencodear xDDDD gracias a que no sigue el standard de HTTP.

en caso contrario prueba con netcat y le mandas la comilla sin urlencodear, igual te la va a aceptar.


Título: Re: Inyeccion via post
Publicado por: tragantras en 16 Junio 2010, 23:36 pm
antes que nada gracias por responder, ya que parece que aqui solo se contesta a las preguntas tipo sqli...

Quiero aclarar que si tu insertas la comilla directamente en el formulario de la WEB el error SI salta. El problema viene cuando la envio desde mi SERVIDOR web montando yo mismo el formulario, pq la codifica. Mi pregunta es si puedo en mi servidor desactivar esta funcionalidad d codificación, dado que el servidor atacado no implementa ningun tipo de codificacion ni proteccion frente a html injections.

Un saludo!



Título: Re: Inyeccion via post
Publicado por: WHK en 21 Junio 2010, 05:07 am
si php procesa algo en urlencode entonces es el script y no el servidor ya que se envía bajo el standard de http 1.x, o sea, es un protocolo, no puedes evitarlo a menos que recompiles un servidor web modificando el código fuente, pero de todas formas no es necesario, el servidor al procesar la query en php te la va a tomar sin filtrar.