• Publicidad

Ayuda con descarga de página

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Ayuda con descarga de página

Notapor BigBear » 2014-05-08 10:56 @497

Tengo el siguiente código :

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!usr/bin/perl
  2.  
  3. use LWP::UserAgent;
  4.  
  5. my $nave = LWP::UserAgent->new();
  6. $nave->agent(
  7. "Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.12) Gecko/20080201Firefox/2.0.0.12"
  8. );
  9. $nave->timeout(5);
  10.  
  11. my $code = toma( "http://thepiratebay.se/search/" . "batman". "/0/99/0" );
  12.  
  13. print $code;
  14.  
  15. sub toma {
  16.    return $nave->get( $_[0] )->content;
  17. }
  18.  
  19. #The End ?
  20.  
  21.  
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Lo que pasa es que me devuelve código como esto :

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
j⌂ì▬╩■║å°Ì·Î̓→þ♠3mB╠l0r─◄┴↕☻J↓è(W┴9iµ  OXÑ.╣çEnðz%╔▬ê█Üõ÷ÇÿÝCæ¢É8F;SôDKÍzÀ-#ÅÇ↑
)*ù┼└[▀Û]O¶Ë¡ÌÁ«½ƒ░H♀ÀL☻┬×IOyB®pûzµ└+¤♀x╬☺1╗p½7mÀzÀ░¹j░Kgd→♦b╝3¹l◄yÖa┬¡÷éÈ↑│¥8┌2
µr▲~n↨ÿø§F¶Å♠ôƒ²?åôtt­Ón8Ð}c£M®¾å┘└Á←¸»¦H☼ã±õaÊ$¨É)êR♣Q¬ ÛFS♣▼2♣ƒ>d
┌├<3iÅ∟åÒa1ªÝãØÖa-♫?oú§µwv\HyÝåÙù´úi×Ū]£g?0ýúb┬∟æÿÕNß»♠N┴}♂╚±@┘‼ƒP╝±K»8¬Ý◄┌8╝«O
‗A▓í0_M╠-Jºð3ïÊd4á­♫Feô ¿¶§l¾ya[[P|╗│Þ;¶úcQãÞPõ¿↓Ô▒\â­ÒÖ·Áù`‗▬Ùâ´ç­â↕,è♦I|▲▼Ú´·Í
F├ÏÛq|5r▀├ƒ¤n<¥▼]╗8 ♂ÄSãï8c╝╚╣ÌÄj2Ün¬ñÀ®ä·§C♠♠∟&─q╩↕ø↑Pî←®▒öÌbM↓½       ¬ ¶·FÁ└³
╝A¹v¯­©É¶┌ü¹¾LJ╬FqÇ´│ó§C─♣┼Sô÷¯├┴õ°Û)ÁHv:<─Ë┐u☺¢%pjîþ┤ÒC7↔HI[╬µnÛÒ½╦‗ã¯×\♫>wÅ┐∟£
v☼.╬Å♫N ╝©<iéþÙ+Úm*í■ä;qéZ      ▄↕├اD←/©ðÿxK┤♂17Ƕ╩W­|múZ<▀fá²☻pGU     wÞÁßnI°è
┌°u1ÌQÂ┬╗çO+↨;§Úú¹À¥█B³ZC╔è°uÁä)̲☼    ý=iwÒ6ƃ'┐BݦmÆ-Ü↕eÀ☼╔┤_║;ÖõÑÅl║w2│ÆÍ☼$!ë
▬EÊ♦i[◄§▀À
 /ë▓öL&│¹v;y↕☺¶
uí¬pP>Þ´îƒø↨õ▓k_LNOÚdbøþ¦¯Y¤u^ƒ█þÄIë¾·┬ªÂ{¥?⌂¦OÈ ¹╗⌂x■·;X©æc·?É┐×µ[┼ºãk¾⌂n■Z⌂⌂∟µ
uBlƒû‼∟¦áý!<%t◄▄öv├(ëØYõÍÐ1;ùùØnçºãõ·yÏ^♫{▓▼÷$ç=¦☼{Ü├¥Ì☼¹:ç=█☼{û├×´ç=¤a/÷├^õ░ù¹
a/sX│╗▼Ïý▬ðµ☺ðà¯╠♥ög▬┌3☼PƒYÞ¤<@üfíA¾ §Üà♫═♥öh▬Z4☼PúYÞÐ<@æfíI¾ UÜà.{Þ▓WÞ▓wÇ.{Õ<<d
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Lo malo es que en todos los lenguajes de programación en que lo he hecho me devuelven este tipo de código.

¿ Por qué devuelve esto ? ¿ Hay alguna forma de ver el código fuente normal ?
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818

Publicidad

Re: Ayuda con descarga de página

Notapor explorer » 2014-05-08 11:21 @515

Lo que estás viendo es el contenido de la página comprimida con el método gzip.

Prueba:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
$ perl code_37144.pl |zcat |head -10
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
        <title>The Pirate Bay - The galaxy's most resilient bittorrent site</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <meta name="google-site-verification" content="bERYeomIC5eBWlPLupPPYPYGA9GvAUKzFHh3WIw24Xs" />
        <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="Search The Pirate Bay" />
        <link rel="stylesheet" type="text/css" href="/static/css-new/pirate6.css"/>
        <link rel="canonical" href="http://thepiratebay.se/search/batman/0/99/0" />
        <style type="text/css">
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

Esto es algo que se hace en la mayor parte de los servidores web, de forma automática: el usuario pide una página, el servidor lee la página desde su disco duro y la comprime en gzip y la envía. El navegador del usuario descomprime el archivo y la muestra en pantalla.

El objetivo es reducir el peso de la página (algo que es sencillo porque es básicamente texto) para que se transmita lo más rápidamente posible. Ya que tanto el emisor como el receptor tienen (hoy en día) procesadores potentes, el tiempo que se pierde en comprimir/descomprimir es menor que lo que se perdería si se transmitiese la página sin comprimir. Aunque actualmente hay líneas muy rápidas, el tráfico total crece mucho más rápido, y además, hay zonas del planeta con accesos mucho más lentos, así que este tipo de medidas siguen siendo necesarias.

Para que esto funcione, el cliente debe enviar en la cabecera HTTP una línea de este estilo:

Accept-Encoding: gzip,deflate,sdch

Cuando llega la petición al servidor, éste sabe que puede mandarle información comprimida, con esos métodos indicados.

Lo que tienes que hacer es mandar una petición al servidor que NO contenga esa cabecera. Por ejemplo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
  1. $ perl -MLWP::Simple -E 'say get("http://thepiratebay.se/search/" . "batman". "/0/99/0")'
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Más información
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14475
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Algo raro en ExploitDB

Notapor BigBear » 2014-10-27 18:48 @825

Hola. Estoy haciendo un script para exploit db y normalmente me devuelve esto cuando lo cargo con LWP::UserAgent:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
▼      ♥Ý=kw┌╚ƃÖsµ?tõLÇÖÞ♣~bÒ\Ãv&ÖÁc»ÝõÌ╗↓▼N#5áDH→=♀L&¹█À¬▼B╝∟;cn╝þ@éæ║½½Ù]ı-!÷
×∟Ø↔^²¹³ÿ¶Ê¥O╬▀¢<ysH4¦4 Y?4═ú½#‗»ÎWº'─6,r§Ë ±R/♀¿oÜÃo5ó§Ê4jÿµ`00♠u#î╗µıà9D\6♫ûçz
S‼◄´↕ºGÒäÑ═wW»¶m═¶xR/§┘■Ùs‗←KÅ╝ÿ9)9 Ýä³wãÔ◄9▲2'CF÷L☺7×:á}ÍÈ\û8▒↨!HaNìÿ3ɃÏh►ãn2☼
LÓ )P.  ■Ho¿hıH↕;‼"c├╚☼¢Tw█å‼÷═AñKîf┌c}ûÿ↕└LFAJç=»█¾ßØ▓©n
Ez─:4¾Ë´@Ö cÊ   °$▀â♀y:& ébnÎÕ±TeÔ╣pÌ╦RÉÑ♫ðe"&/øë´╣,6U▼♀♀®╦\D¨Ôå┼M┤Y½,x)+^╩Ê^╦┬^
╦‼s▀æÝ[©s¢«7µIñ▼∟?ìÜO┌│╔g³ý .=±■dìZ-→Æ'^?
Òö♠Ú.÷~┴?Føãçí▼ãbäÙ%æOGìöÂ}ãí∟ƒÐ©Ð♫Ë▲?mC³Þãa▬©@)♀k¼╣←¯ûÙ‗╬üþª¢å]█ÂóíÇå,╬ÔF↕éD╔→Ñ
│)╔Á²ð¨┤@TØNgBN[jÆ(¶5`♥♀♥³þFêÌgØ4º#ó«♂Äı■│¡Iã-┴Á¥>┴¨¾ñ☻\ÎÕTèà▒♀Ýu┘─▒¡íó
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Cuando lo muestro con Perl hace el clásico efecto de \a\a\a varias veces y no veo el fuente.

¿ Alguien sabe qué es y cómo lo evito ?
Última edición por explorer el 2014-10-27 20:26 @893, editado 1 vez en total
Razón: clasico => clásico; que => qué; como => cómo;
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818

Re: Ayuda con descarga de página

Notapor explorer » 2014-10-27 20:29 @895

¿No es el mismo problema que el comentado más arriba?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14475
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Ayuda con descarga de página

Notapor BigBear » 2014-10-28 10:27 @477

¡Uf!, ni me acordaba de ese mensaje, debes tener memoria de troll :D explorer, una pregunta: ¿cómo hago eso mismo que hiciste con LWP::Simple pero con LWP::UserAgent en mi script¿ ¿Lo hago sin el agent?
Última edición por explorer el 2014-10-28 13:07 @588, editado 1 vez en total
Razón: post => mensaje; como => cómo;
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818

Re: Ayuda con descarga de página

Notapor explorer » 2014-10-28 13:22 @598

Puedes usar LWP::Simple porque está incluido junto con LWP::UserAgent en los módulos que acompañan a Perl.

Si miras el código fuente de LWP::Simple, verás que se puede importar la variable $ua que guarda el objeto LWP::UserAgent, así que sería algo así:

use LWP::Simple '$ua';

y ahora puedes hacer un

$ua->default_header('Accept-Encoding' => '');

y luego definir la cadena de agente, y ya tienes creado el objeto UserAgent. Ahora puedes hacer el get() del LWP::Simple.

Y si quieres hacerlo todo con LWP::UserAgent, solo necesitas agregar la línea anterior del Accept-Encoding (no probado).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14475
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Ayuda con descarga de página

Notapor BigBear » 2014-10-29 15:24 @683

Funciona a la perfección, explorer, gracias por la ayuda, el código raro que me estaba diciendo es que CloudFlare me bloqueó por cargarlos varias veces. Lo raro es que entro lo más bien desde cualquier navegador. Solo es con el script, probé cambiando el user agent pero el problema persiste. ¿ Alguna idea ?
Última edición por explorer el 2014-10-29 16:07 @713, editado 2 veces en total
Razón: perfeccion => perfección; codigo => código; baneo => bloqueó; mas => más; probe => probé; insiste => persiste;
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818

Re: Ayuda con descarga de página

Notapor explorer » 2014-10-29 16:06 @713

Yo usaría CloudFlare::Client o Mojo::Cloudflare, o WebService::CloudFlare::Host ;)

En la página de la API de CloudFlare se comenta que se puede interactuar con ellos por medio de POST usando LWP, en el caso de Perl. Los módulos indicados antes seguro que encapsulan la API en métodos, que luego hacen POST con LWP.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14475
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Ayuda con descarga de página

Notapor BigBear » 2014-10-29 16:27 @727

¿No habría una forma más sencilla como cambiando el referer o la IP o algo así ?

Lo que me devuelve es esto:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Sucuri WebSite Firewall - CloudProxy - Access Denied
What is going on?
You are not allowed to access the requested page. If you are the site owner, please open a ticket in our support page if you think it was caused by an error: https://support.sucuri.net. If you are not the owner of the web site, you can contact us at [email protected]. Also make sure to include the block details (displayed below), so we can better troubleshoot the error.
Block details

    Your IP: Loading...
    URL: Loading...
    Your Browser: Loading...
    Block ID: BNP002
    Block reason: Scanning tool blocked.
    Time: Loading...
    Server ID: cp71

Sucuri CloudProxy

CloudProxy is a WebSite Firewall from Sucuri. It stands between your site and the rest of the world and protects against attacks, malware infections, DDOS, brute force attempts and mostly anything that can harm it.

Not only that, but your sites get cached, speeding it up quite a bit. Interested? Visit http://cloudproxy.sucuri.net
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Lo bien raro es solo en esa parte de la página. Con el script mismo leo otras partes de la página sin problema alguno.
Última edición por explorer el 2014-10-29 16:45 @739, editado 1 vez en total
Razón: Interrogantes; habria => habría; mas => más; ip => IP; asi => así; pagina => página;
BigBear
Perlero frecuente
Perlero frecuente
 
Mensajes: 981
Registrado: 2009-03-01 18:39 @818

Re: Ayuda con descarga de página

Notapor explorer » 2014-10-29 16:48 @741

¿No era CloudFlare? Vaya lío.

Pues no, no sé cómo resolverlo (tampoco me he puesto a mirarlo, ahora estoy muy ocupado).

¿Has probado con Google? Seguro que alguien ya lo ha intentado antes. Otra cosa es que lo haya contado.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14475
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Siguiente

Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 5 invitados

cron