Foro de elhacker.net

Seguridad Informática => Hacking Wireless => Mensaje iniciado por: Trollwer en 7 Abril 2021, 11:15 am



Título: Como saber si un recurso de una pagina web está disponible?
Publicado por: Trollwer en 7 Abril 2021, 11:15 am
Buenas tardes :rolleyes:
Como puedo saber mediante algún comando caso del CMD, como puedo saber si un recurso de una pagina web está disponible, por ejemplo, mediante un ping, ejemplo:
ping www.elpais.com <----- envía y recibe paquetes.
ping www.elpais.com/economia/ <--- Error (La solicitud de ping no pudo encontrar el host www.elpais.com/economia. Compruebe el nombre y
vuelva a intentarlo.)

¿De que forma puedo saber que está disponible ese apartado con un CMD?

Es por hacerme un script y analizar ciertas cosillas :rolleyes: :rolleyes: :rolleyes:


Título: Re: Como saber si un recurso de una pagina web está disponible?
Publicado por: Machacador en 7 Abril 2021, 13:15 pm
Interesante lo que quieres hacer... como yo no soy programador uso un producto ya hecho como este: https://www.soyyooestacaido.com/

 :rolleyes: :o :rolleyes:


Título: Re: Como saber si un recurso de una pagina web está disponible?
Publicado por: Trollwer en 7 Abril 2021, 13:46 pm
Desconocía esa página jajaja
pero no busco eso...  :rolleyes:


Título: Re: Como saber si un recurso de una pagina web está disponible?
Publicado por: Danielㅤ en 7 Abril 2021, 16:16 pm
Hola, lo más fácil, rápido y efectivo es hacer un simple código o incluso un .exe, que haga una petición HEAD y que devuelva un código de estado y dependiendo de ese código de estado, podrías saber si esa sección de esa x web existe o no.

Aquí un ejemplo:

Código de estado 200 (la URL existe y está disponible)
Código de estado 301 (la URL devuelve Moved Permanently eso quiere decir que o esa dirección no existe o no está disponible o incluso se haya movido a otro directorio)
Código de estado 404 (no existe esa URL y no está disponible)

De todas maneras aquí te dejo una web que hace eso mismo:

https://websniffer.cc/

(https://fotos.subefotos.com/9bf2fbe4bef4d8ea19db1251ce2801e3o.jpg)

Aunque yo personalmente preferiría hacer un código que haga ese trabajo.


Saludos


Título: Re: Como saber si un recurso de una pagina web está disponible?
Publicado por: EdePC en 7 Abril 2021, 19:06 pm
Para implementar la solución de [D]aniel en CMD sería llamando a otra herramienta, por ejemplo lo más fácil sería llamar a PowerShell:

Compatible con Windows 8.0, 8.1 y 10
Código
  1. PowerShell [Net.ServicePointManager]::SecurityProtocol='Tls12'; (iwr -Method 'HEAD' 'www.elpais.com').StatusCode

Eso debería devolver 200 en caso de éxito u otro código o error en caso de fallar.

(https://i.ibb.co/M5HhFTV/cmd-powershell-iwr.png)


Título: Re: Como saber si un recurso de una pagina web está disponible?
Publicado por: Trollwer en 8 Abril 2021, 09:06 am
Me sale esto:
iwr : No se puede analizar el contenido de la respuesta porque el motor de Internet Explorer no está disponible o la configuración del primer inicio de
Internet Explorer no está completa. Especifique el parámetro UseBasicParsing e inténtelo de nuevo.
En línea: 1 Carácter: 55

Que parámetro puedo usar para que lo analice mediante Google Chrome en lugar de Internet Explorer?
Saludos :rolleyes:


Título: Re: Como saber si un recurso de una pagina web está disponible?
Publicado por: Xyzed en 8 Abril 2021, 10:56 am
Hola @Trollwer.

Si no entendí mal lo que quieres hacer es personalizar lo que mostrará el comando "ping" en caso de que ocurra x situación (en este caso, si los paquetes enviados no son recibidos).

Es decir, ¿quieres modificar lo que vendrían a ser las excepciones que arroja el ms-dos?

Actualizo:

Considerando que así es, te dejo la siguiente idea que se me ocurrió y podría ayudarte.

Código
  1. @setlocal enableextensions enabledelayedexpansion
  2. @echo off
  3. SET /P ipreal=Ingresa la ip/dominio a comprobar:
  4. set ipaddr=!ipreal!
  5. set oldstate=neither
  6. set state=funcionando correctamente.
  7. ping -n 1 !ipaddr! >nul: 2>nul:
  8. if not !errorlevel!==0 set state=presentando errores, intenta nuevamente.
  9. if not !state!==!oldstate! (
  10.    echo.El sitio esta !state!
  11.    set oldstate=!state!
  12. )
  13.  
validar.|bat/cmd/exe|

Recién dí con un post (https://stackoverflow.com/questions/3050898/how-to-check-if-ping-responded-or-not-in-a-batch-file) externo al foro, donde se mostraba una función bastante similar a la que estas buscando.

Edite un poco dicha función simplemente porque vi que había algunas cosas de más xD.

Lo que tendrías que hacer es guardar el código de arriba, con la extensión "bat/cmd/exe" (para que pueda detectar que se trata de una sentencia batch), en la carpeta "C:\Windows\System32", que es donde se almacenan todos los comandos ms-dos, y listo.

La próxima vez que ejecutes cmd, podrás utilizar el comando "validar" para hacer tu prueba.

(https://imgur.com/q4JYPxU.png)

Como podrás ver, lo encuadrado en color azul, es un test del comando, lo encuadrado en rojo es una demostración ejecutando el código de arriba pero de la forma "clásica" sin las "excepciones" que querías a tu gusto.

Saludos.


Título: Re: Como saber si un recurso de una pagina web está disponible?
Publicado por: #!drvy en 8 Abril 2021, 11:18 am
Ping solo soporta hosts, ende siempre te va a tirar error cuando solicitas un recurso. Además una maquina puede no responder a PING pero si responder a otros protocolos.

Yo lo más sencillo que veo es usar cURL. Haces una peticion con --head y si te devuelve HTTP 200 es que bien, si te devuelve 404 es que no existe y si no puede resolver el host, te lo dice..

Código:
» curl --head https://elpais.com/economia/                                    drvy@vault-01
HTTP/2 200

Código:
» curl --head https://elpais.com/economiaksdjaklsdja/                         drvy@vault-01
HTTP/2 404

Código:
» curl --head dasdkasjdas.com                                                 drvy@vault-01
curl: (6) Could not resolve host: dasdkasjdas.com


Ya no me acuerdo si venia integrado en PowerShell, pero en todo caso lo puedes descargar desde aquí:
https://curl.se/windows/

Es una herramienta universal y casi obligatoria de tener.

Saludos


Título: Re: Como saber si un recurso de una pagina web está disponible?
Publicado por: Trollwer en 8 Abril 2021, 12:20 pm
Hola @Trollwer.

Si no entendí mal lo que quieres hacer es personalizar lo que mostrará el comando "ping" en caso de que ocurra x situación (en este caso, si los paquetes enviados no son recibidos).

Es decir, ¿quieres modificar lo que vendrían a ser las excepciones que arroja el ms-dos?

Actualizo:

Considerando que así es, te dejo la siguiente idea que se me ocurrió y podría ayudarte.

Código
  1. @setlocal enableextensions enabledelayedexpansion
  2. @echo off
  3. SET /P ipreal=Ingresa la ip/dominio a comprobar:
  4. set ipaddr=!ipreal!
  5. set oldstate=neither
  6. set state=funcionando correctamente.
  7. ping -n 1 !ipaddr! >nul: 2>nul:
  8. if not !errorlevel!==0 set state=presentando errores, intenta nuevamente.
  9. if not !state!==!oldstate! (
  10.    echo.El sitio esta !state!
  11.    set oldstate=!state!
  12. )
  13.  
validar.|bat/cmd/exe|

Recién dí con un post (https://stackoverflow.com/questions/3050898/how-to-check-if-ping-responded-or-not-in-a-batch-file) externo al foro, donde se mostraba una función bastante similar a la que estas buscando.

Edite un poco dicha función simplemente porque vi que había algunas cosas de más xD.

Lo que tendrías que hacer es guardar el código de arriba, con la extensión "bat/cmd/exe" (para que pueda detectar que se trata de una sentencia batch), en la carpeta "C:\Windows\System32", que es donde se almacenan todos los comandos ms-dos, y listo.

La próxima vez que ejecutes cmd, podrás utilizar el comando "validar" para hacer tu prueba.

(https://imgur.com/q4JYPxU.png)

Como podrás ver, lo encuadrado en color azul, es un test del comando, lo encuadrado en rojo es una demostración ejecutando el código de arriba pero de la forma "clásica" sin las "excepciones" que querías a tu gusto.

Saludos.


Muchas gracias y gran aporte, voy a intentar realizar ahora un script que tengo pensado hacer :silbar:



Título: Re: Como saber si un recurso de una pagina web está disponible?
Publicado por: Trollwer en 8 Abril 2021, 12:22 pm
Ping solo soporta hosts, ende siempre te va a tirar error cuando solicitas un recurso. Además una maquina puede no responder a PING pero si responder a otros protocolos.

Yo lo más sencillo que veo es usar cURL. Haces una peticion con --head y si te devuelve HTTP 200 es que bien, si te devuelve 404 es que no existe y si no puede resolver el host, te lo dice..

Código:
» curl --head https://elpais.com/economia/                                    drvy@vault-01
HTTP/2 200

Código:
» curl --head https://elpais.com/economiaksdjaklsdja/                         drvy@vault-01
HTTP/2 404

Código:
» curl --head dasdkasjdas.com                                                 drvy@vault-01
curl: (6) Could not resolve host: dasdkasjdas.com


Ya no me acuerdo si venia integrado en PowerShell, pero en todo caso lo puedes descargar desde aquí:
https://curl.se/windows/

Es una herramienta universal y casi obligatoria de tener.

Saludos

Muchas gracias, desconocía esta función, lo acabo de probar en el cmd y funciona perfectamente ;-)


Título: Re: Como saber si un recurso de una pagina web está disponible?
Publicado por: EdePC en 8 Abril 2021, 15:49 pm
Descargando el cURL real si es mucho más sencillo, el que trae Windows 10 es un alias de iwr, Invoke-WebRequest, wget

He estado haciendo testeos para compatibilidad en Win7 (sin cURL):

(https://i.ibb.co/Jctwr00/cmd-powershell-wr.png)

Código
  1. PowerShell $wr=[System.Net.WebRequest]::Create('https://www.example.com');$wr.method='HEAD';[int]$wr.GetResponse().StatusCode