comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[SOLUCIONADO] Javascript no detectado usando python

  • 12 Respuestas
  • 766 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Conectado DtxdF

  • *
  • Underc0der
  • Mensajes: 196
  • Actividad:
    56.67%
  • Reputación 4
  • Fácil manipular + No es fácil manipularse
    • Ver Perfil
    • Mi Repositorio de github para que puedas usar las herramientas que diseño
« en: Noviembre 30, 2018, 03:39:20 am »
Cuando trato de ingresar a ciertas páginas web e incluso a las direcciones de las páginas de mi cuenta de hosting me tira el siguiente mensaje o uno parecido: "This site requires Javascript to work, please enable Javascript in your browser or use a browser with Javascript support", que básicamente me indica que mi navegador no soporta o no tiene instalado Javascript.

Mi pregunta es: Como hago para usar Javascript en python, que haga creer que tenga instalado/habilitado Javascript en la página a la que trato de acceder o algo parecido.
« Última modificación: Diciembre 06, 2018, 12:36:53 pm por Gabriela »
- Gobiernos: Personas desoladas de la inteligencia

Desconectado tr0n

  • *
  • Underc0der
  • Mensajes: 22
  • Actividad:
    8.33%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #1 en: Diciembre 03, 2018, 10:57:17 pm »
Hola DtxdF,

Pues ejecutar Javascript en Python se puede, deben existir muchos transpiladores que ejecuten codigo Javascript a Python. Sin embargo, ese codigo de Javscript esta hecho para que se ejecute dentro de un navegador, con lo cual se perdería todo el contexto.

Por ejemplo, el codigo javascript te lanzara un monton de errores porque no va a encontrar el DOM que provee un navegador, es decir el <html>, el <body>, etc ... Al final de cuentas, tendrías que desarrollar un navegador aparte.

Esto suena un poco desalentador y más si se tiene en cuenta que muchas paginas de internet en la actualidad estan hechas 100% en Javascript. Pero todo lo que hace javascript para autenticar usuario o acceder a un sitio es enviar una petición HTTP al servidor y es el servidor el verdadero encargado de otorgar acceso al sistema.

Así que si uno desea acceder a un sitio web sin un navegador, tiene que averiguar la ruta (también conocido como el endpoint), y enviar la petición HTTP con las credenciales correctas. El servidor generalmente respondera con una cookie para reconocer si cierto usuario esta autenticado o no.

No se si esto halla contestado tu pregunta. Si tienes mas dudas me comentas.

Conectado DtxdF

  • *
  • Underc0der
  • Mensajes: 196
  • Actividad:
    56.67%
  • Reputación 4
  • Fácil manipular + No es fácil manipularse
    • Ver Perfil
    • Mi Repositorio de github para que puedas usar las herramientas que diseño
« Respuesta #2 en: Diciembre 04, 2018, 09:26:06 pm »
@tr0n

Gracias por tu respuesta.

Mi pregunta ahora es, como hacen los navegadores hacen que las páginas web detecten que tienen Javascript instalado?

No me refiero al código JS, Eh visto los encabezados de los navegadores más usados (Chrome, opera, Mozilla, etc) y no encontré nada que le indique a la página web sobre el tema, eh intentado cambiar el agente de usuario a uno de los navegadores antes mencionados pero ya tenía en mente que no funcionaría.

Lo que si note leyendo el código HTML de mi hosting cuando trato de acceder a mi página web con la URL, me tira otro código en vez de el que yo escribí, entre ese código llevaba una etiqueta noscript, además en esa etiqueta esta el mensaje que indique en el comentario anterior.
- Gobiernos: Personas desoladas de la inteligencia

Desconectado tr0n

  • *
  • Underc0der
  • Mensajes: 22
  • Actividad:
    8.33%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #3 en: Diciembre 05, 2018, 01:12:41 am »
@tr0n

Gracias por tu respuesta.

Mi pregunta ahora es, como hacen los navegadores hacen que las páginas web detecten que tienen Javascript instalado?

No me refiero al código JS, Eh visto los encabezados de los navegadores más usados (Chrome, opera, Mozilla, etc) y no encontré nada que le indique a la página web sobre el tema, eh intentado cambiar el agente de usuario a uno de los navegadores antes mencionados pero ya tenía en mente que no funcionaría.

Lo que si note leyendo el código HTML de mi hosting cuando trato de acceder a mi página web con la URL, me tira otro código en vez de el que yo escribí, entre ese código llevaba una etiqueta noscript, además en esa etiqueta esta el mensaje que indique en el comentario anterior.
Las paginas web no tienen nada instalado, por si solas no hacen nada, estas solo estan compuestas de arhivos planos: archivos html, css, javascript, imagenes, etc. Es el navegador el encargado de interpretar estos archivos y transformarlos en botones, menus y la manera con la que se comunica con el servidor. El navegador ya tiene "instalado" un interprete de javascript, es una pieza fundamental de todo navegador de la actualidad, este interprete se le conoce como un motor de javascript. Chrome tiene al famoso V8 (usado también en mongo y en nodejs) y Firefox tiene a SpiderMonkey.

Cuando el navegador recibe cualquier javascript de una pagina, este lo intentara ejecutarlo a menos que el usuario tenga deshabilitado javascript en el navegador (es una opción de configuración y es muy poco común que se encuentre deshabilitado).
El mensaje dentro del tag <noscript>  se muestra sí esta deshabilitado javascript en el navegador. Es muy probable que el hosting agregara eso.

Aún sigo sin entender cual es tu objetivo de obtener una pagina web usando python, podrias explicar eso un poco más

Conectado DtxdF

  • *
  • Underc0der
  • Mensajes: 196
  • Actividad:
    56.67%
  • Reputación 4
  • Fácil manipular + No es fácil manipularse
    • Ver Perfil
    • Mi Repositorio de github para que puedas usar las herramientas que diseño
« Respuesta #4 en: Diciembre 05, 2018, 02:17:06 am »
@tr0n

Citar
Las paginas web no tienen nada instalado, por si solas no hacen nada, estas solo estan compuestas de arhivos planos: archivos html, css, javascript, imagenes, etc. Es el navegador el encargado de interpretar estos archivos y transformarlos en botones, menus y la manera con la que se comunica con el servidor.

Lo se amigo se como funciona esto, pero es por eso que se generó mi duda: Si yo utilizo python, creo mi script de python usando por ejemplo el módulo urllib y intento acceder a mi página web http://soyunapagina.com, se supone que me tendría que mostrar el código Index de esa página, en este caso (por ejemplo) index.html, siendo este archivo el que yo mismo escribí, porque me aparece otro código que yo estoy seguro que es del administrador del hosting, detectando que no tengo instalado/habilitado Javascript y no me quejo de que lo haya puesto porque así no tendría de esta duda y no estaría preguntando.

Citar
El mensaje dentro del tag <noscript>  se muestra sí esta deshabilitado javascript en el navegador. Es muy probable que el hosting agregara eso

Se que el administrador del hosting lo agregará, pero yo comparo mi código ingresando con el navegador (Chrome, Mozilla, etc) y con python, siendo el primero no mostrándome ningún mensaje interpretado por el navegador o en el código HTML, a cambio que con python me muestra la etiqueta y el mensaje, es completamente ilógico o por lo menos en mi caso sin explicación todavía.

Citar
Aún sigo sin entender cual es tu objetivo de obtener una pagina web usando python, podrias explicar eso un poco más

Yo no trato de acceder/hackear si es que se piensa eso (OJO: no se a que te referiste con acceder) solo trato de hacer una simple petición a la página para ver el código HTML.
- Gobiernos: Personas desoladas de la inteligencia

Desconectado tr0n

  • *
  • Underc0der
  • Mensajes: 22
  • Actividad:
    8.33%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #5 en: Diciembre 05, 2018, 10:54:27 am »
Se que el administrador del hosting lo agregará, pero yo comparo mi código ingresando con el navegador (Chrome, Mozilla, etc) y con python, siendo el primero no mostrándome ningún mensaje interpretado por el navegador o en el código HTML, a cambio que con python me muestra la etiqueta y el mensaje, es completamente ilógico o por lo menos en mi caso sin explicación todavía.

Ok ya veo, es muy probable que esto ocurra a un redirección, habría dos situaciones que se me ocurren en este momento:

  • Un redirect por HTTP, el servidor responde con un codigo 3XX, move temporally, y la verdadera dirección se encuentre en el header location de la respuesta
  • Que la redirección sea hecha por javascript, la misma pagina con el noscript la obtiene el navegador, pero el ejecuta el script que te redirige a tu pagina por medio de las funciones window.location.href o window.location.replace. Si es así, pueda que te sirva las implementaciones de los motores de javascript para python https://stackoverflow.com/questions/6826627/how-can-python-work-with-javascript, lo veo muy complicado ya que hay que simular el DOM.

Conectado DtxdF

  • *
  • Underc0der
  • Mensajes: 196
  • Actividad:
    56.67%
  • Reputación 4
  • Fácil manipular + No es fácil manipularse
    • Ver Perfil
    • Mi Repositorio de github para que puedas usar las herramientas que diseño
« Respuesta #6 en: Diciembre 05, 2018, 09:43:25 pm »
@tr0n

Claro amigo, eso si es posible que puedan reedirigirme a otra página, pero en este caso porque ocurre?, Se supone que la forma de reedirigir con HTML será usar <meta http-equiv="refresh" contento="tiempo;url=pagina_a_reedirigir" />, pero esto tiene que ser interpretado por el Dom (por supuesto), eso si yo uso un navegador que lo interprete o con mi aplicación emular el Dom, cosa que no estoy haciendo y por eso no debería pasar.

En PHP con header("Location: página"); pero se supone que yo uso el mismo agente de usuario que usa un navegador como los que ya mencioné (para no redundar, no los nombró), porque lo mencionó?, Ya que la mayoría de scripts en cualquier lenguaje, detectan el agente de usuario y si es uno que usen los bots por ejemplo el de python "Python-urllib/2.6" o también usando el módulo mechanize que emula un navegador por líneas de comandos, este respeta el archivo robots.txt.

Mi pregunta es, si yo usando el módulo urllib, cambiando mi agente de usuario y este no emula ser un navegador o algo por el estilo, porque me reedirige a una página en vez de ingresar en la que yo estoy accediendo?.

Por cierto eh probado con más modulos, usando los mismos parámetros por defecto que me brindan estos, etc y me da la misma respuesta.

Los módulos son: requests, urllib/2, mechanize, requestsocks.

Gracias por ser tan colaborativo
- Gobiernos: Personas desoladas de la inteligencia

Desconectado tr0n

  • *
  • Underc0der
  • Mensajes: 22
  • Actividad:
    8.33%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #7 en: Diciembre 05, 2018, 10:35:41 pm »
Hola DtxdF,

Es dificil saber, detras de ese servidor, pueden existir infinidad de proxies, firewall y balanceadores que pueden redireccionar basicamente con cualquier header o cualquier regla. Mi apuesta es que el redireccionamiento se hace por javascript y que el header User Agent no es tan importante. ¿Podria conocer la url a la cual estas realizando la petición?.

Conectado DtxdF

  • *
  • Underc0der
  • Mensajes: 196
  • Actividad:
    56.67%
  • Reputación 4
  • Fácil manipular + No es fácil manipularse
    • Ver Perfil
    • Mi Repositorio de github para que puedas usar las herramientas que diseño
« Respuesta #8 en: Diciembre 05, 2018, 10:51:45 pm »
Oye gracias @tr0n, El agente de usuario, va dependiendo como ya dije, hay paginas web que detectan el agente de usuario que este registrado (En su base de datos por ejemplo), con el fin de saber si es un script de fuerza bruta o algo por el estilo.

Citar
Es dificil saber, detras de ese servidor, pueden existir infinidad de proxies, firewall y balanceadores que pueden redireccionar basicamente con cualquier header o cualquier regla.

Si esto fuera posible con los navegadores Chrome, Mozilla, IExplorer, etc, igualmente me redirigiera a él html con el mensaje ya mencionado.

Citar
¿Podria conocer la url a la cual estas realizando la petición?

No porque es de un compañero y el no desea compartirlo con nadie (En excepción mía, xD), pero lo que si te puedo decir es el hosting donde esta alojada: bytehost
- Gobiernos: Personas desoladas de la inteligencia

Conectado hielasangre

  • *
  • Underc0der
  • Mensajes: 148
  • Actividad:
    23.33%
  • Reputación 3
    • Ver Perfil
« Respuesta #9 en: Diciembre 06, 2018, 04:00:52 am »
si usas requests en vez de urllib tambien te da ese mismo mensaje?


Conectado DtxdF

  • *
  • Underc0der
  • Mensajes: 196
  • Actividad:
    56.67%
  • Reputación 4
  • Fácil manipular + No es fácil manipularse
    • Ver Perfil
    • Mi Repositorio de github para que puedas usar las herramientas que diseño
« Respuesta #10 en: Diciembre 06, 2018, 09:40:51 am »
Efectivamente compañero @hielasangre, como ya mencioné:

Citar
Los módulos son: requests, urllib/2, mechanize, requestsocks.
- Gobiernos: Personas desoladas de la inteligencia

Conectado hielasangre

  • *
  • Underc0der
  • Mensajes: 148
  • Actividad:
    23.33%
  • Reputación 3
    • Ver Perfil
« Respuesta #11 en: Diciembre 06, 2018, 11:44:16 am »
Efectivamente compañero @hielasangre, como ya mencioné:

Citar
Los módulos son: requests, urllib/2, mechanize, requestsocks.
chanfles! Perdón, se me paso esa linea :/

https://stackoverflow.com/questions/26393231/using-python-requests-with-javascript-pages/26393257#26393257

Conectado DtxdF

  • *
  • Underc0der
  • Mensajes: 196
  • Actividad:
    56.67%
  • Reputación 4
  • Fácil manipular + No es fácil manipularse
    • Ver Perfil
    • Mi Repositorio de github para que puedas usar las herramientas que diseño
« Respuesta #12 en: Diciembre 06, 2018, 11:59:43 am »
Gracias @hielasangre por la ayuda, escuche y use solo una vez de prueba selenium (Muy buen módulo por cierto), Claro estarías conduciendo el navegador con operaciones que tu le indiques usando selenium no estarías realizando una solicitud desde cero por decirlo así como se hace con los módulos que anteriormente mencióne. Igualmente aprenderé selenium porque se ve muy interesante.

Gracias a todos por aportar la ayuda necesaria, puedo dar este tema solucionado  ;D
- Gobiernos: Personas desoladas de la inteligencia

 

¿Te gustó el post? COMPARTILO!



[SOLUCIONADO] ¿Kali Linux o Kali Linux Ligth ?

Iniciado por worq

Respuestas: 2
Vistas: 8553
Último mensaje Noviembre 21, 2017, 12:28:54 pm
por Codig0Bit
[SOLUCIONADO] Multiuploader de imagenes con mysql, hosting de imagenes con mysql

Iniciado por graphixx

Respuestas: 4
Vistas: 2313
Último mensaje Marzo 26, 2013, 05:42:58 pm
por Xt3mP
[SOLUCIONADO] ¿Como publicar un software como software libre?

Iniciado por FuriosoJack

Respuestas: 2
Vistas: 1726
Último mensaje Mayo 23, 2017, 07:24:22 am
por HATI
[SOLUCIONADO] Linux Mint, errores, errores y mas errores...

Iniciado por n1sendev

Respuestas: 12
Vistas: 3246
Último mensaje Noviembre 22, 2017, 06:50:55 am
por RuidosoBSD
[SOLUCIONADO] Ayuda urgente con Virus "Virus.Win32Sality"

Iniciado por Napsters

Respuestas: 6
Vistas: 3595
Último mensaje Junio 11, 2012, 03:38:18 am
por Satyricon