Inicio de sesion usando cookies con cURL

captura.png
Imagen 1. cURL

Esta semana me he estado peleando con algo que al principio me parecía lo más básico del mundo, pero al final me ha hecho echarme un par de horas intentando sacarlo. Esto era el inicio de sesión en una pagina web con almacenado y reutilización de cookies de Inicio de sesión.

Básicamente lo que buscaba era que, un script que estoy haciendo para automatizar una tarea, se conectase a una pagina web con un usuario y contraseña, almacenase la cookie de inicio de sesión y la reutilizase en otra pagina de la web donde era obligatorio el inicio. La búsqueda de estos pasos básicos, me devolvía un poco de todo menos lo que quería, así que aquí os dejo las opciones que utilicé en mi script:

$curl --cookie-jar cookiejar \
 --data-urlencode 'user=nombredeusuario' \
 --data-urlencode 'password=mipassword' \
 --location \
 --output '/home/david/nombrefichero.html' \
 http://paginaweb.com/login

Los campos en negrita pueden/deben ser modificados.

Lo que no voy a decir aqui es que campos se deben utilizar en vuestros casos, pero estos varian para cada pagina web, de hecho no tienen por que ser solo los campos User y Password, se debe analizar la pagina web, insepeccionando el codigo HTML en busqueda de los campos a utilizar en el formulario de inicio de sesión. Esto se puede realizar de varias formas, yo lo hice con el software ZAP (Zed Attack Proxy) de OWASP. Este funciona como un proxy recibiendo todos los mensajes que envie el navegador web, y estos pueden ser analizados/modificados en tiempo real. Hay otra forma más facil que explicaré al final de esta entrada y que he descubierto hoy mismo.

Una vez tenemos el fichero llamado cookiejar debe ser reutilizarlo en el sitio web donde solo podemos acceder con usuario y contraseña.

$curl --cookie cookiejar \
 --cookie-jar cookiejar \
 --location \
 --output '/home/david/nombrefichero2.html'
   http://paginaweb.com/solousuariosregistrados

La otra forma más fácil de realizar estos pasos y que de hecho es mucho más sencillo, es hacerlo con la herramienta de desarrolladores de, por ejemplo Mozilla Firefox, así que si abrimos el menú en la parte superior derecha, nos vamos a Desarrollador Web y abrimos el apartado de red, veremos una lista con las solicitudes enviadas y si hacemos clic derecho sobre una de ellas podremos copiarla como cURL.

Sin título
Imagen 2. Copiar como cURL en Mozilla Firefox

 

Esto nos daría un resultado parecido al siguiente:

Sin títul2
Imagen 3. Resultado de ‘Copiar como cURL’

Con esta opción del navegador se puede realizar un inicio de sesión normal en la web, y luego copiarlo como cURL y pasarlo directamente a nuestro script, de esta forma podremos automatizar todo lo que querramos y no tenemos que volvernos locos indagando en el codigo de la pagina web. Así que aprovechadla y automatizad todos esos trabajos repetitivos que haceis cada día.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s