Seminario de heramientas básicas (2/2)
Bueno seguimos con este seminario del infierno y ahora viene el wget
Vamos a ver un ejemplo de wget:
wget -O archivo.html http://www.marca.es
wget lo que hace es descargarse la página que le hemos puesto (http://www.marca.es) en el archivo (archivo.html)
Si no utilizamos el -O se guarda en un archivo que viene indicado por el url y llega hasta el primer & de la url
http://www.marca.com/futbol.html?cid=MENUDES3601&s_kw=futbol
se guarda en el archivo:
futbol.html?cid=MENUDES3601
Esto te permite varias posibilidades por ejemplo este problema:
Descarga las imágenes de la página http://sim.nisu.org/arch/planoCS/. Observa que contiene imágenes cuyas URL son relativas a la página y los nombres son del tipo ij.jpg para i en [ a .. m ] y j en [ 1 .. 7 ].
Con un simple bucle podemos descargar todas estas imágenes:
for (( i=1 ; i<8 ; i++ )); do
for j in a b c d e f g h i j k l m; do
wget -O $j$i.jpg http://sim.nisu.org/arch/planoCS/$j$i.jpg;
done;
done
Dada la siguiente página, supón que la abres con un navegador y piensa en lo que el navegador hace si envías el formulario.
Vamos a ver un ejemplo de wget:
wget -O archivo.html http://www.marca.es
wget lo que hace es descargarse la página que le hemos puesto (http://www.marca.es) en el archivo (archivo.html)
Si no utilizamos el -O se guarda en un archivo que viene indicado por el url y llega hasta el primer & de la url
http://www.marca.com/futbol.html?cid=MENUDES3601&s_kw=futbol
se guarda en el archivo:
futbol.html?cid=MENUDES3601
Esto te permite varias posibilidades por ejemplo este problema:
Descarga las imágenes de la página http://sim.nisu.org/arch/planoCS/. Observa que contiene imágenes cuyas URL son relativas a la página y los nombres son del tipo ij.jpg para i en [ a .. m ] y j en [ 1 .. 7 ].
Con un simple bucle podemos descargar todas estas imágenes:
for (( i=1 ; i<8 ; i++ )); do
for j in a b c d e f g h i j k l m; do
wget -O $j$i.jpg http://sim.nisu.org/arch/planoCS/$j$i.jpg;
done;
done
Dada la siguiente página, supón que la abres con un navegador y piensa en lo que el navegador hace si envías el formulario.
<form action=arch/elphp.php method=get> Dame el código: <input name=codig><br> Dame el valor: <input name=valor><br> <input type=submit value=mandar> </form>
SOLUCIÓN:
i=1;while [ $i -lt 501 ];do wget -O -'https://sim.nisu.org/arch/elphp.php?codig=codigo&valor=random(1,500)' i=$(($i+1)) done
Ahora viene la joya de la corona
Ejercicio para hackers: Observa la página siguiente. Consigue introducir los códigos de 1 a 50 con un valor numérico aleatorio mediante un script.
Solución:
wget -o- --keep-session-cookies --save-cookies=/home/david/.moziefault/cookies.txt http://sim.nisu.org/arch/gyp.php
i=1; while [ $i -lt 2 ];do
k=$(awk -F ":" '{print $4}' gyp.php | awk '{print $1}')
wget --load-cookies=/home/david/.mozilla/firefox/ow75glpi.default/cookies.txt -q -O - "http://sim.nisu.org/arch/gyp.php?codig=random(1,50)&valor=111&chal=$k"
i=$(($i+1))
rm gyp.php
done
Que textaco ehhh.
Vamos a explicarlo paso a paso. Donde se almacena la información donde nos dice que nosotros somos los que accedemos a la pagina y el numero que nos corresponde. Lo guardamos en las cookies de sesión así que tenemos que bajarnos el código html y guardas las cookies. Todo eso lo podemos hacer en una orden
wget -o- --keep-session-cookies --save-cookies=/home/david/.moziefault/cookies.txt http://sim.nisu.org/arch/gyp.php
perfecto ahora tenemos el codigo html guardado en gyp.php y las cookies guardadas en /home/david/.moziefault/cookies.txt
Ahora necesitamos descubrir el numero que hemos de poner a partir del código html así que dividimos el código por : y seleccionamos el que guarda el numero. Después seleccionamos solo el primer numero y lo guardamos en la variable k
k=$(awk -F ":" '{print $4}' gyp.php | awk '{print $1}')
Ahora solo hemos de subir el resultado cargando las cookies
wget --load-cookies=/home/david/.mozilla/firefox/ow75glpi.default/cookies.txt -q -O - "http://sim.nisu.org/arch/gyp.php?codig=random(1,50)&valor=111&chal=$k"
Muy bien esto es lo básico ahora nos lo complican algo más y es que tenemos que poner un código aleatoria entre o y 50 por lo que necesitamos hacer un bucle y utilizar un numero aleatorio.
De ahi el while y el random.
Y así de sencillo es verlo ahora pero a mi me costó sobre 3 horas pensar este ejercicio entero y que saliese bien
Comentarios
Publicar un comentario