So analysieren Sie einen Link, um den tatsächlichen Link zu ermitteln

13

Manchmal, wenn ich etwas herunterlade, stelle ich fest, dass die Links nicht zu den Dateien führen.

Zum Beispiel dies ist ein Link , um eine PDF - Datei zum Download:

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

Ich habe mich gefragt, wie ich den tatsächlichen Link (dh http: //*.PDF) zu der Datei finden / hacken soll.

Wie heißen solche und ähnliche Techniken, um keine direkten Verknüpfungen anzuzeigen? Einige Referenzen wie Wikipedia, ...?

StackExchange für alle
quelle
1
Dein Link wurde repariert. Klicken Sie hier edit, um die Abschriftenquelle für meine Vorgehensweise anzuzeigen.
Joel Coehoorn

Antworten:

3

Ja, manchmal .

Es gibt zwei Dinge, die häufig vorkommen. Ihr Link funktioniert nicht mehr, daher bin ich mir in diesem Fall nicht sicher, ob es sich um ein aktuelles Szenario handelt. Daher fasse ich ihn auf einem anderen Link zusammen.

HTTP-Umleitung

Dies ist, was Sie mit Bit.lyund anderen Diensten sehen. Sie müssen dann eine HTTP-Umleitungsantwort bereitstellen. Wenn Sie http://bit.ly/oH3410 besuchen , wird zur tatsächlichen URL weitergeleitet. Manchmal leitet eine URL zu einer anderen weiter. Sie können dies beobachten, wenn Sie die URL in http://web-sniffer.net/ eingeben oder wenn Sie verwenden [curl][1] -I http://bit.ly/oH3410, wird ein 301 zurückgegeben, der auf einen neuen Speicherort verweist.

Um mit der HTTP-Umleitung fertig zu werden, müssen Sie nur eine HTTP-HEAD-Anforderung in einer Schleife ausführen, bis Sie in den 300er-Jahren keine Antworten mehr erhalten (hoffentlich 200). Beachten Sie, dass sie möglicherweise in einer Schleife umgeleitet werden, die niemals endet. Sie können dies mit CURL oder einem beliebigen HTTP-Tool tun.

Downloader-Seite

Dies ist, was die meisten Download-Sites verwenden. Sie klicken auf den Download-Link und gelangen auf eine Seite mit einer Reihe von Anzeigen. In ähnlicher Weise wird "Ihr Download wird in Kürze beginnen" angezeigt. [ Beispiel ]. Mit diesen können Sie versuchen, den tatsächlichen direkten Link von der URL aus zu analysieren. Dies ist jedoch site-spezifisch und wird von den meisten Sites nicht berücksichtigt, um zu verhindern, dass Sie ihn umgehen. Dies erfolgt entweder über ein meta http-equiv="refresh"Tag in der Kopfzeile oder über JavaScript (am häufigsten). Der JS hat normalerweise einen Header-Fallback.

Es gibt jedoch eine Lösung. Wenn Sie sich die Quelle auf der Download-Seite ansehen, sehen Sie normalerweise ein <meta http-equiv="refresh">Tag (normalerweise in einem <noscript>Tag) mit einem Attribut URL, das auf den tatsächlichen Download verweist. Verwenden Sie also CURL (oder ein anderes HTTP-Tool), um die Seite herunterzuladen, zu analysieren und diesen Wert zu ermitteln. Eine Site kann dies jedoch ausschließen, wenn sie wirklich unangenehm sein soll, sodass Sie JavaScript zum Herunterladen von Dateien benötigen.

Es gibt wahrscheinlich einen JavaScript-Block, der auch auf den Download verweist. Es kann verschleiert oder über eine andere URL verlinkt sein. Ihre Laufleistung kann variieren, wenn Sie versuchen, dies herauszufinden. Es kann auch einen "direkten Link" auf der Seite geben. Sie könnten ein paar Techniken ausprobieren, um das herauszufinden, aber auch dies könnte über JavaScript verschleiert werden oder sogar alles zusammen fehlen.

Jim McKeeth
quelle
11

Möglicherweise ist das nicht möglich. Die Sites könnten Sie durch hundert Weiterleitungen führen, bevor Sie zur Datei gelangen.

Darüber hinaus kann Javascript verwendet werden, um Links basierend auf der dem Server übergebenen URL auszugeben.

soandos
quelle
Vielen Dank! Wie heißen solche und ähnliche Techniken, um keine direkten Verknüpfungen anzuzeigen? Einige Referenzen, wie Wikipedia, ...?
StackExchange for All
1
Nur Umleitung. kenne keine anderen Techniken. Siehe hier
soandos
Wenn die Links auf Dateien verweisen und nicht auf normale Seiten, spricht man normalerweise von Anti-Leech .
Synetech
7

Die Site könnte skriptgesteuert sein, und wenn sie einen bestimmten Befehl erhält (die URL kann einen Befehl übergeben), wird möglicherweise eine PDF-Datei (oder eine andere Datei) ohne Umleitung zurückgegeben. Dort ist es eine serverseitige Sache und hängt davon ab, wie die Site codiert ist. Ohne diesen Link tatsächlich vom Server anzufordern, ist es unwahrscheinlich, dass Sie herausfinden können, wie Sie die Datei erhalten. Und manchmal, selbst wenn Sie die direkte URL kennen, haben Sie möglicherweise keine Berechtigung, auf den direkten Link zuzugreifen. Einige Websites sind so codiert, dass direkte Links nicht funktionieren.

Ben Richards
quelle
1
Das ist richtig. Kleiner Zusatz: Wenn ein Client auf einen solchen undurchsichtigen Link zugreift und der Server dem Client mitteilen möchte, dass es sich tatsächlich um eine PDF-Datei handelt und diese als PDF-Datei gespeichert werden soll, teilt der Server dies dem Client über den Inhaltstyp HTTP mit Header.
vtest
3

Dies ist so ziemlich die "wahre" URL, da Sie für diese gut geschützten Websites die vollständige URL übermitteln müssen, damit der Server Ihre Anfrage authentifiziert. Anschließend werden Sie möglicherweise zu einer anderen URL weitergeleitet, in der Regel handelt es sich jedoch um eine einmalige URL. Mit anderen Worten, diese Dateidownload-Websites geben Ihnen niemals einen direkten Link, über den Sie Blutegel abrufen können.

In dieser speziellen URL werden in den durch eine digitale Signatur geschützten Parametern die Zeit- und IP-Einschränkungen des Downloaders klar aufgelistet. Für eine Website mit diesem Kompetenzniveau ist es unwahrscheinlich, dass direkte Links durchgesickert sind.

billc.cn
quelle
3

Diese Weiterleitungslinks sind häufig auch mit dem Sitzungsstatus verbunden. Sie prüfen einige Privilegien, basierend auf Ihrem Sitzungs-Login, bevor Sie den Link erhalten - kein Zugriff auf die Ressource = kein Link-Zugriff auf die Ressource. Es kann verwendet werden, um Zugriff auf Dateien / Ressourcen zu gewähren, die sich außerhalb des Webstamms befinden und von der App an den Anforderer zurückgestreamt werden, anstatt über eine direkte URL verfügbar zu sein. Aber nur, wenn Ihre Privilegien dies zulassen.

Ein Beispiel für beides finden Sie hier. Sie werden zu einer anderen URL weitergeleitet, die auf der Zeichenfolge 'mkoenig' basiert, die zusätzliche URL-Parameter hinzufügt. Die Umleitung erfolgt in serverseitiger Codierung, die Sie nicht sehen können (oder zumindest nicht sollten). Wenn Sie dann zu "Webdateien" gehen, sind die aufgelisteten Dateien nur die Dateien, die der Lehrer veröffentlicht hat. Möglicherweise hat sie andere Dateien, auf die Sie nicht zugreifen können und die nicht aufgelistet werden. Dies wird auch bei der serverseitigen Codierung in Bezug auf das behandelt, was zurückgegeben wird / nicht zurückgegeben wird.

Ohne den Server zu hacken oder Zugriff auf den serverseitigen Quellcode zu haben, glaube ich nicht, dass Sie den tatsächlichen Link erhalten können, und selbst wenn Sie dies können, kann es nicht hilfreich sein, es sei denn, Ihre Sitzungsprivilegien weisen den Server an, Ihnen Zugriff darauf zu gewähren .

Greg

gthomson
quelle
2

Wie oben ist es unmöglich. Ich empfehle Ihnen, eine VM hochzufahren oder sich eine Kopie von Sandboxie zu besorgen, um Ihren Browser für Links wie diesen zu enthalten.

Bearbeiten

Da ich nicht weiß, welches Betriebssystem Sie verwenden, werde ich hier eine allgemeine Antwort geben.

Eine VM ist eine Abkürzung für eine virtuelle Maschine. Grundsätzlich handelt es sich um einen durch Software erstellten Computer, der in Ihrem Computer ausgeführt wird. Eine virtuelle Maschine verfügt über ein eigenes Betriebssystem und einen eigenen Browser. Während das Internet und die Festplatte Ihres Computers weiterhin verwendet werden, handelt es sich aus Sicht des Betriebssystems um einen separaten Computer. Das macht es praktisch wie ein Stück Papier. Alles, was in der VM passiert, wirkt sich nicht auf Ihre reale Maschine aus.

Virtualbox ist die Software, die ich für eine VM empfehle, es sei denn, Sie verwenden Windows, dann würde ich Virtual PC empfehlen.

Sandboxie ähnelt einer VM, isoliert jedoch nur bestimmte Anwendungen. Sie können ihn anweisen, eine Kopie Ihres Browsers auszuführen, und alle Dateien oder Aktionen, die der Browser ausführt, werden im Wesentlichen in einen temporären Ordner umgeleitet. Wenn also versucht wird, einen Virus herunterzuladen, wird er in einen temporären Ordner umgeleitet, der vom Rest Ihres Computers in Quarantäne gestellt wird. Es ist nicht so robust wie eine VM, benötigt jedoch weniger CPU / Speicher und ist schneller und bequemer.

Ich würde zuerst Sandboxie versuchen. Es ist eine kleinere Lernkurve.

surfasb
quelle
1
Vielen Dank! Was meinen Sie mit "Starten einer VM oder Holen einer Kopie von Sandboxie, um Ihren Browser für solche Links zu enthalten"? Einige Verweise, um zu erklären, wie man die beiden Dinge macht?
StackExchange for All
Entschuldigung, ich werde meine Antwort erweitern.
Surfasb
Vielen Dank! Mein Betriebssystem ist Ubuntu. Aber ich verstehe nicht, wie die Verwendung von VM die direkten Links identifizieren kann?
StackExchange for All
1
Es identifiziert den Link nicht wirklich für Sie. Es wird jedoch eine sichere Umgebung geschaffen, mit der Sie den Link leichter identifizieren können. Sie können die Weiterleitungen nicht identifizieren, ohne die Seite zu kompilieren.
Surfasb
1
Ich glaube nicht, dass seine Frage die Sicherheit betrifft. Er sucht nur nach einer Möglichkeit, den direkten Dateilink zu erhalten.
Magnattic
2

Es ist niemals möglich, den tatsächlichen Zusammenhang herauszufinden.

Der Server verarbeitet die Dateianforderungen mit einem WWW-Rewrite (z. B. für Apache-Server), sodass Sie beispielsweise zu einer Seite gehen www.example.com/13-this-site-has-nice-page-name.htmlkönnen. In Wirklichkeit können Sie jedoch auf eine PHP-Datei mit einem Parameter zugreifen, z.www.example.com/site_handler.php?UID=13

Selbst wenn Sie auf eine PDF-Datei zugreifen, befindet sich möglicherweise eine Umleitung auf der Serverseite.

Das Herunterladen von Dateien mit Handlern ist möglicherweise etwas komplizierter, da Sie zu einer Seite gehen können, die nur ein Download-Handler ist. Beispiel: www.example.com?file_downloader.php?param1=7683&param2=jld8ijn, etc... In diesem Fall wird das Skript, auf das Sie zugreifen, möglicherweise mit einer Überschrift (wie z pdf-Datei), aber in Wirklichkeit ist es eine PHP-Datei.

Fazit: Sie können nie wissen, wie der Server und die Skripte konfiguriert sind, so dass Sie nie die tatsächliche Adresse kennen, auch wenn es so aussieht, als ob Sie es wissen.

Itai Sagi
quelle
1

Wenn Sie eine Anfrage an einen Webserver senden (klicken Sie auf einen Link), kann der Server eine Reihe verschiedener Antworten senden. Häufige Beispiele sind 404 (Seite nicht gefunden), 403 (verboten) oder 500 (Serverfehler). Wahrscheinlich ist der häufigste Antwortcode 200 (Ok), aber Sie werden ihn nie sehen, da er im Allgemeinen von der Seite begleitet wird, die Sie sich erhofft hatten.

Hier sind noch ein paar andere Codes im Spiel: 301 und 302. Die Codes 301 und 302 sind Weiterleitungscodes und teilen Ihrem Browser mit, dass die gewünschte Antwort an einen anderen Ort verschoben wurde. Der Hauptunterschied zwischen ihnen ist, wie der Browser Dinge zwischenspeichert. Ein 301-Code bedeutet "dauerhaft verschoben". Wenn Sie das nächste Mal versuchen, den ursprünglichen Link aufzurufen, merkt sich der Browser möglicherweise, dass die Seite verschoben wurde, und wechselt direkt zum neuen Speicherort. 302 bedeutet "Woanders gefunden" und enthält einen Link, den Ihr Browser nur vorübergehend verwenden sollte.

Es sollte möglich sein, ein Programm zu schreiben, das einen Link überprüft, und solange Sie 30x Antworten erhalten, folgen Sie der Antwort, bis es schließlich 200 erreicht. An dieser Stelle sollte der Link angezeigt werden, anstatt den Inhalt herunterzuladen.

Leider ist es auch komplizierter. Eine HTML - Seite kann auch an einen neuen Standort mit einem Meta - Tag im Kopfbereich der Seite umleiten , dass in etwa so aussieht: <meta http-equiv="refresh" content="0;url=NEW PAGE URL" />. Ein solches Programm müsste HTML also bereits vollständig analysieren, um sicherzustellen, dass wir die letzte Weiterleitung erreichen.

Außerdem kann eine Seite Sie mithilfe von JavaScript weiterleiten, und das JavaScript ist möglicherweise verschleiert. Deshalb muss unser hypothetisches Programm jetzt auch Javascript verstehen. Zu diesem Zeitpunkt haben wir einen voll funktionsfähigen Webbrowser. Wir vermissen das kleine Detail, eine Seite auf dem Bildschirm zu rendern, aber unser Programm enthält fast alles, was Sie für einen vollständigen Webbrowser benötigen, einschließlich aller damit verbundenen Sicherheitsprobleme. Sie sind nicht länger besser dran, als wenn Sie den Link normalerweise angeklickt hätten.

Joel Coehoorn
quelle
1

Unter Windows: Installieren Sie den Fiddler Web Debugging Proxy und aktivieren Sie ihn. Navigieren Sie dann zu Ihrer Start-URL und sehen Sie sich alle Weiterleitungen im linken Bereich von Fiddler an. Ändern Sie im rechten Bereich die Registerkarten, um "Anforderungsheader" und "Antwortheader" anzuzeigen. Ich habe es erfolgreich für genau diesen Zweck verwendet.

Andererseits funktioniert die "endgültige" URL allein möglicherweise nicht auf die gleiche Weise, wenn Sie direkt zu ihr navigieren, da die Anfrage möglicherweise nicht den richtigen Verweis enthält oder einige andere Einschränkungen übersieht.

Sie können in Fiddler jedoch auch benutzerdefinierte Anforderungen mit benutzerdefinierten Headern senden. Siehe dazu den Reiter "Request Builder".

oleschri
quelle
0

Dies ist weitgehend ortsabhängig.

Dazu müssen Sie jede Site einzeln untersuchen und für jede Site einen eigenen Mechanismus (oder Code) haben, um den direkten URI zurückzugeben.

Sie können auch einige Open-Source-Browser-Add-Ons untersuchen, die ähnliche Funktionen bieten.

Bhagyas
quelle
0

Um zu überprüfen, wohin ein Link Sie weiterleitet, können Sie http://longurl.org/ verwenden . Dies ist besonders nützlich für verkürzte URLs. Für skriptbasierte Downloads usw. ist dies nicht sinnvoll.

Omar Kohl
quelle
0

Wenn Sie Firefox verwenden, können Sie ein Addon namens verwenden, RequestPolicydas Sie unter anderem anhält und um Erlaubnis bittet, wenn Sie auf eine andere Domain umgeleitet werden. Es funktioniert nicht, wenn Sie eine Weiterleitung suchen möchten, die nicht zu einer anderen Domain wechselt, aber ich bin sicher, dass es ein anderes Firefox-Addon für das gibt, von dem ich nichts weiß =)

https://www.requestpolicy.com/

Beachten Sie, dass viele Sites, die ein CDN (Content Distribution Network) verwenden , beschädigt werden, da standardmäßig alle domänenübergreifenden Images, Skripts, CSS und Weiterleitungen blockiert werden . Es ist also nicht die erste Wahl, wenn Sie immer wissen möchten, wohin eine Umleitung führt, es sei denn, Sie müssen bei jedem Besuch einer neuen Website einige zusätzliche Schritte ausführen.

William Lawn Stewart
quelle
0

Ich bin mir nicht sicher, aber wenn Sie CUrl verwenden, können Sie nicht einfach den URL-Inhalt (get_file_contents (url) in PHP) abrufen und dann den MIME-Typ überprüfen?

Sterex
quelle