Comment analyser un lien pour comprendre le lien réel


13

Parfois, lorsque je télécharge quelque chose, je trouve que les liens ne sont pas les liens directs vers les fichiers.

Par exemple, voici un lien pour télécharger un fichier PDF:

http://ishare.down.sina.com.cn/15181391.PDF?ssig=2jEFaNQs7K&Expires=1312905600&KID=sina,ishare&IP=1312761745,68.50.222.

Je me demandais comment comprendre / pirater le lien réel (c'est-à-dire http: //*.PDF) vers le fichier?

Quels sont les noms de telles techniques et de techniques similaires pour ne pas afficher de liens directs? Quelques références, comme Wikipedia, ...?


1
Correction de votre lien. Cliquez editpour voir la source de démarque pour savoir comment je l'ai fait.
Joel Coehoorn

Réponses:


3

Oui, parfois .

Il y a deux choses qui se produisent couramment. Votre lien ne fonctionne plus, donc je ne suis pas sûr du scénario réel dans ce cas, donc je vais résumer sur un autre lien.

Redirection HTTP

C'est ce que vous voyez avec Bit.lyet d'autres services. Il s'agit alors de fournir une réponse de redirection HTTP. Lorsque vous visitez http://bit.ly/oH3410, il redirige vers l'URL réelle. Parfois, une URL redirige vers une autre. Vous pouvez voir cela se produire si vous branchez l'URL sur http://web-sniffer.net/ ou en utilisant, [curl][1] -I http://bit.ly/oH3410vous verrez un 301 renvoyant vers un nouvel emplacement.

Donc, pour gérer la redirection HTTP, il vous suffit de boucler une demande HTTP HEAD jusqu'à ce que vous ne receviez plus de réponses dans les 300 (espérons-le, 200). Gardez à l'esprit qu'il est possible qu'ils redirigent en boucle, ce qui ne finira jamais. Vous pouvez le faire avec CURL ou tout autre outil HTTP.

Page de téléchargement

C'est ce que la plupart des sites de téléchargement utilisent. Vous cliquez sur le lien de téléchargement et il vous amène à une page avec un tas d'annonces et dit "Votre téléchargement va commencer sous peu" quelque chose de similaire. [ Exemple ]. Avec ceux-ci, vous pouvez essayer d'analyser le lien direct réel à partir de l'URL, mais cela serait spécifique au site, et la plupart des sites ne l'incluront pas pour vous empêcher de le contourner. Cela se fait soit via une meta http-equiv="refresh"balise dans l'en-tête, soit JavaScript (le plus courant). Cependant, le JS a généralement un repli d'en-tête.

Il existe cependant une solution. Si vous regardez la source sur la page de téléchargement, vous verrez généralement une <meta http-equiv="refresh">balise (généralement dans une <noscript>balise) avec un attribut URLqui pointe vers le téléchargement réel. Utilisez donc CURL (ou tout autre outil HTTP) pour télécharger la page, analysez-la et récupérez cette valeur. Un site peut cependant exclure cela s'il veut être vraiment méchant, vous obligeant ainsi à avoir JavaScript pour télécharger des fichiers.

Il existe probablement un bloc JavaScript qui renvoie également au téléchargement. Il peut être obscurci ou lié à partir d'une autre URL. Votre kilométrage peut varier en essayant d'analyser cela. Il peut également y avoir un "lien direct" sur la page. Vous pouvez essayer quelques techniques pour le trouver, mais encore une fois, cela pourrait être obscurci via JavaScript ou même manquer tous ensemble.


11

Ce n'est peut-être pas possible. Les sites pourraient vous alimenter à travers une centaine de redirections avant d'accéder au fichier.

De plus, javascript peut être utilisé pour diffuser des liens basés sur l'URL qui a été donnée au serveur.


Merci! Quels sont les noms de telles techniques et de techniques similaires pour ne pas afficher de liens directs? Quelques références, comme wikipedia, ...?
Tim

1
Juste redirection. je ne connais aucune autre technique. Voir ici
soandos

Lorsque les liens sont vers des fichiers et autres que des pages normales, cela s'appelle généralement anti-sangsue .
Synetech

7

Le site peut être scripté, et lorsqu'il obtient une certaine commande (l'URL peut passer une commande), il peut alors retourner un fichier PDF (ou un autre fichier), sans redirection. Là, c'est une chose côté serveur et dépend de la façon dont le site est codé. Sans réellement demander ce lien au serveur, il est peu probable que vous puissiez trouver comment obtenir le fichier. Et parfois, même si vous connaissiez l'URL directe, vous pourriez ne pas être autorisé à accéder au lien direct. Certains sites sont codés de sorte que les liens directs ne fonctionnent pas.


1
C'est correct. Petit ajout: lorsqu'un client accède à un lien obscur comme celui-ci et que le serveur veut dire au client qu'il s'agit en fait d'un fichier pdf et qu'il doit être enregistré en tant que fichier pdf - le serveur le dit au client via le Content-Type HTTP entête.
vtest

3

C'est à peu près la "vraie" URL car pour ces sites Web bien protégés, vous devez soumettre l'URL complète du serveur pour authentifier votre demande. Vous pouvez être redirigé vers une autre URL par la suite, mais ce sera normalement une seule fois. En d'autres termes, ces sites Web de téléchargement de fichiers ne vous donneront jamais un lien direct capable de sangsue.

Dans cette URL particulière, les paramètres, qui sont protégés par une signature numérique, indiquent clairement les restrictions de temps et IP du téléchargeur. Pour un site Web avec ce niveau de compétence, il est peu probable qu'il y ait une fuite de liens directs.


3

Ces liens de redirection sont également souvent associés à l'état de session. Ils feront une vérification privée, en fonction de votre connexion à la session, avant de vous fournir le lien - pas d'accès à la ressource = pas d'accès à la ressource. Il peut être utilisé pour fournir un accès à des fichiers / ressources qui sont en dehors de la racine Web et renvoyés au demandeur par l'application, plutôt que d'être disponibles via une URL directe. Mais seulement si vos privilèges le permettent.

Un exemple des deux est ici. Il vous redirigera vers une autre URL, basée sur la chaîne 'mkoenig' qui ajoute des paramètres d'URL supplémentaires. La redirection est effectuée dans le codage côté serveur, que vous ne pourriez pas (ou du moins ne devriez pas) voir. Si vous allez ensuite dans «Fichiers Web», les fichiers répertoriés ne sont que les fichiers que l'enseignant a rendus publics. Elle peut avoir d'autres fichiers que vous ne pouvez pas accéder et qui ne seront pas répertoriés. Cela est également géré sur le codage côté serveur, en ce qui concerne ce qu'il retournera / ne retournera pas.

Sans pirater le serveur ou avoir accès au code source côté serveur, je ne pense pas que vous puissiez obtenir le lien réel, et même si vous le pouvez, cela peut ne pas être utile à moins que vos privilèges de session ne disent au serveur de vous y donner accès. .

Greg


2

Comme ci-dessus, c'est impossible. Je vous recommande de lancer une machine virtuelle ou de récupérer une copie de Sandboxie pour contenir votre navigateur pour des liens comme celui-ci.

Éditer

Ne sachant pas quel système d'exploitation vous utilisez, je vais donner une réponse générale ici.

Une machine virtuelle est l'abréviation d'une machine virtuelle. Il s'agit essentiellement d'un ordinateur créé par logiciel et exécuté à l'intérieur de votre ordinateur. Une machine virtuelle aura son propre système d'exploitation et navigateur. Bien qu'il utilise toujours Internet et la disque dur de votre machine, il s'agit d'une machine distincte du point de vue du système d'exploitation. Cela le rend donc pratique comme un morceau de papier à gratter. Tout ce qui se passe à l'intérieur de la machine virtuelle n'affecte pas votre machine réelle.

Virtualbox est le logiciel que je vous recommande d'obtenir pour une machine virtuelle, sauf si vous utilisez Windows, alors je recommanderais Virtual PC.

Sandboxie est un peu comme une machine virtuelle, mais il isole simplement des applications spécifiques. Vous pouvez lui dire d'exécuter une copie de votre navigateur et tous les fichiers ou actions du navigateur sont redirigés vers un dossier temporaire essentiellement. Donc, s'il essaie de télécharger un virus, il est redirigé vers un dossier temporaire mis en quarantaine du reste de votre ordinateur. Ce n'est pas aussi robuste qu'une machine virtuelle, mais il utilise moins de CPU / mémoire et est plus rapide et plus pratique.

J'essaierais d'abord Sandboxie. C'est une courbe d'apprentissage plus petite.


1
Merci! Qu'entendez-vous par «allumer une machine virtuelle ou récupérer une copie de Sandboxie pour contenir votre navigateur pour des liens comme ceux-ci»? Quelques références pour expliquer comment faire les deux choses?
Tim

Désolé, je vais développer ma réponse.
surfasb

Merci! Mon système d'exploitation est Ubuntu. Mais je ne comprends pas comment l'utilisation de VM peut identifier les liens directs?
Tim

1
Il n'identifie pas vraiment le lien pour vous. Mais cela crée un environnement sûr qui vous aidera à identifier le lien. Vous ne pouvez pas identifier les redirections sans compiler la page.
surfasb

1
Je ne pense pas que sa question concerne la sécurité. Il cherche juste un moyen d'obtenir le lien de fichier direct.
2011

2

Il n'est jamais possible de comprendre le lien réel.

Le serveur gère les demandes de fichiers, en utilisant une réécriture WWW (pour les serveurs Apache, par exemple), donc par exemple, vous pouvez aller sur une page www.example.com/13-this-site-has-nice-page-name.html, mais en réalité, vous pouvez accéder à un fichier php, avec un paramètre, tel que:www.example.com/site_handler.php?UID=13

même si vous accédez à un fichier pdf, il peut y avoir une redirection côté serveur lui-même.

Pour les téléchargements de fichiers avec des gestionnaires, cela peut être un peu plus compliqué, car vous pouvez accéder à une page qui n'est qu'un gestionnaire de téléchargement, par exemple: www.example.com?file_downloader.php?param1=7683&param2=jld8ijn, etc... dans ce cas, le script auquel vous accédez peut être envoyé avec un en-tête (comme fichier pdf), mais en réalité c'est un fichier php.

en conclusion: vous ne pouvez jamais savoir comment le serveur et les scripts sont configurés, vous ne pouvez donc jamais connaître l'adresse réelle et réelle, même si vous semblez le savoir.


1

Lorsque vous envoyez une demande à un serveur Web (cliquez sur un lien), le serveur peut envoyer un certain nombre de réponses différentes. Les exemples courants sont 404 (page introuvable), 403 (interdit) ou 500 (erreur de serveur). Le code de réponse le plus courant est probablement 200 (Ok), mais vous ne le verrez jamais car il est généralement accompagné de la page que vous espériez voir.

Il y a quelques autres codes en jeu ici: 301 et 302. Les codes 301 et 302 sont des codes de redirection, et ils indiquent à votre navigateur que la réponse que vous vouliez a été déplacée vers un autre emplacement. La principale différence entre eux est la façon dont le navigateur met les choses en cache. Un code 301 signifie "déplacé de façon permanente", et la prochaine fois que vous essayez de visiter le lien d'origine, le navigateur peut se rappeler que la page a été déplacée et aller directement au nouvel emplacement. 302 signifie "Trouvé ailleurs" et fournira un lien que votre navigateur ne doit utiliser que temporairement.

Il devrait être possible d'écrire un programme qui vérifiera un lien, et tant que vous obtenez des réponses 30x, suivez la réponse, jusqu'à ce qu'il obtienne finalement 200. À ce stade, plutôt que de télécharger le contenu, il devrait vous montrer le lien.

Malheureusement, c'est aussi plus compliqué que ça. Page Un Html peut également rediriger vers un nouvel emplacement en utilisant une balise meta dans la section de tête de la page qui ressemble à quelque chose comme ceci: <meta http-equiv="refresh" content="0;url=NEW PAGE URL" />. Un tel programme devrait donc déjà analyser complètement le HTML pour être sûr d'atteindre la dernière redirection.

De plus, une page pourrait vous rediriger davantage en utilisant javascript, et le javascript pourrait être obscurci. Alors maintenant, notre programme hypothétique doit également comprendre le javascript. À ce stade, nous avons un navigateur Web entièrement fonctionnel. Il nous manque le petit détail du rendu d'une page à l'écran, mais notre programme a presque tout le reste dont vous avez besoin pour un navigateur Web complet, y compris tous les problèmes de sécurité qui l'accompagnent. Vous n'êtes plus mieux que si vous veniez de cliquer sur le lien normalement en premier lieu.


1

En supposant que Windows: installez Fiddler Web Debugging Proxy , activez-le. Ensuite, accédez à votre URL de départ et regardez toutes les redirections dans le volet gauche de Fiddler. Dans le volet droit, modifiez les onglets pour afficher "En-têtes de demande" et "En-têtes de réponse". Je l'ai utilisé avec succès dans ce but précis.

D'un autre côté, l'URL "finale" seule peut ne pas fonctionner de la même manière si vous y accédez directement car la demande peut ne pas avoir le bon référent ou manquer d'autres restrictions.

Mais vous pouvez même envoyer des demandes personnalisées avec des en-têtes personnalisés dans Fiddler. Voir l'onglet "Request Builder" pour cela.


0

Cela dépend en grande partie du site.

Pour ce faire, vous devez étudier chaque site individuellement et disposer d'un mécanisme (ou code) distinct pour que chaque site renvoie l'URI direct.

Vous pouvez également étudier certains modules complémentaires de navigateur open source qui offrent des fonctionnalités similaires.


0

Pour vérifier où un lien vous redirige, vous pouvez utiliser http://longurl.org/ . Il est particulièrement utile pour les URL raccourcies. Il ne sert à rien pour les téléchargements par script, etc.


0

Si vous utilisez Firefox, vous pouvez utiliser un addon appelé RequestPolicyqui, entre autres, mettra en pause et vous demandera la permission chaque fois que vous êtes redirigé vers un autre domaine. Cela ne fonctionnera pas si vous voulez trouver une redirection qui ne va pas vers un autre domaine, mais je suis sûr qu'il existe un addon Firefox différent pour celui que je ne connais pas =)

https://www.requestpolicy.com/

Notez qu'il cassera de nombreux sites qui utilisent un CDN (Content Distribution Network) car par défaut, il bloque toutes les images, scripts, css et redirections interdomaines. Ce n'est donc pas le premier choix si vous voulez toujours savoir où va une redirection, à moins que vous ne soyez prêt à devoir suivre quelques étapes supplémentaires chaque fois que vous visitez un nouveau site Web.


0

Je ne suis pas vraiment sûr, mais si vous utilisez CUrl, ne pouvez-vous pas simplement obtenir le contenu de l'URL (get_file_contents (url) en PHP), puis vérifier le type MIME?


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.