Иногда, когда я загружаю что-то, я нахожу ссылки не прямые на файлы.
Например, это ссылка для загрузки файла PDF:
Мне было интересно, как выяснить / взломать фактическую ссылку (т.е. http: //*.PDF) на файл?
Как называются такие и похожие методы не показывать прямые ссылки? Некоторые ссылки, такие как Википедия, ...?
edit
чтобы увидеть источник уценки, как я это сделал.Ответы:
Да, иногда .
Есть две вещи, которые обычно случаются. Ваша ссылка больше не работает, поэтому я не уверен в реальном сценарии в этом случае, поэтому я подведу итоги по другой ссылке.
HTTP перенаправление
Это то, что вы видите с
Bit.ly
другими услугами. Что тогда сделать, это предоставить ответ перенаправления HTTP. Когда вы посещаете http://bit.ly/oH3410, он перенаправляет на фактический URL. Иногда один URL перенаправляет на другой. Это может произойти, если вы подключите URL-адрес к http://web-sniffer.net/ или, используя[curl][1] -I http://bit.ly/oH3410
его, увидите 301, указывающий на новое местоположение.Таким образом, чтобы справиться с перенаправлением HTTP, вам просто нужно зациклить запрос HTTP HEAD, пока вы не перестанете получать ответы в 300-х (надеюсь, получая 200). Имейте в виду, что они могут перенаправляться в цикле, который никогда не закончится. Вы можете сделать это с помощью CURL или любого другого инструмента HTTP.
Страница загрузчика
Это то, что используют большинство сайтов загрузки. Вы нажимаете на ссылку для скачивания, и вы переходите на страницу с кучей рекламы и сообщаете: «Ваша загрузка начнется в ближайшее время», что-то аналогично. [ Пример ]. С их помощью вы можете попытаться проанализировать фактическую прямую ссылку из URL, но это будет зависеть от конкретного сайта, и большинство сайтов не будут включать ее, чтобы вы не смогли ее обойти. Это делается либо с помощью
meta http-equiv="refresh"
тега в заголовке, либо с помощью JavaScript (чаще всего). У JS обычно есть запасной вариант заголовка.Хотя есть решение. Если вы посмотрите на источник на странице загрузки, вы обычно увидите
<meta http-equiv="refresh">
тег (обычно в<noscript>
теге) с атрибутом,URL
который указывает на фактическую загрузку. Поэтому используйте CURL (или любой другой инструмент HTTP), чтобы загрузить страницу, разобрать ее и получить это значение. Сайт может исключить это, хотя, если они хотят быть очень противными, что требует наличия JavaScript для загрузки файлов.Вероятно, есть блок JavaScript, который также ссылается на загрузку. Это может быть запутано или связано с другого URL. Ваш пробег может варьироваться, пытаясь разобрать это. На странице также может быть «прямая ссылка». Вы можете попробовать несколько методов, чтобы найти это, но опять же это может быть запутано с помощью JavaScript или даже пропущено все вместе.
источник
Это может быть невозможно. Сайты могут пропустить вас через сотню перенаправлений, прежде чем вы попадете в файл.
Кроме того, javascript может использоваться для выдачи ссылок на основе URL-адреса, предоставленного серверу.
источник
Сайт может быть сценарием, и когда он получает определенную команду (URL-адрес может передать команду), он может затем вернуть файл PDF (или другой файл), без перенаправления. Там это вещь на стороне сервера и зависит от того, как сайт кодируется. Без фактического запроса этой ссылки с сервера вряд ли вы сможете выяснить, как получить файл. И иногда, даже если вы знали прямой URL, у вас может не быть разрешения на доступ к прямой ссылке. Некоторые сайты закодированы так, что прямые ссылки не будут работать.
источник
Это в значительной степени «истинный» URL-адрес, поскольку для этих хорошо защищенных веб-сайтов вы должны предоставить полный URL-адрес серверу для проверки подлинности вашего запроса. Впоследствии вас могут направить на другой URL-адрес, но обычно он будет одноразовым. Другими словами, эти веб-сайты для загрузки файлов никогда не дадут вам прямую ссылку для пиявки.
В этом конкретном URL-адресе параметры, которые защищены цифровой подписью, четко указывают время и IP-ограничения загрузчика. Для сайта с таким уровнем компетенции вряд ли будут просочиться прямые ссылки.
источник
Эти ссылки перенаправления также часто связаны с состоянием сеанса. Они выполнят некоторую проверку привилегий, основываясь на вашем входе в сеанс, прежде чем предоставить вам ссылку - нет доступа к ресурсу = нет доступа к ресурсу. Его можно использовать для предоставления доступа к файлам / ресурсам, которые находятся за пределами корневого веб-каталога и передаются приложению обратно запрашивающей стороне, а не доступны через прямой URL-адрес. Но только если ваши привилегии позволят это.
Пример обоих здесь. Он перенаправит вас на другой URL, основываясь на строке 'mkoenig', которая добавляет дополнительные параметры URL. Перенаправление осуществляется в кодировке на стороне сервера, которую вы не сможете (или, по крайней мере, не должны) увидеть. Если вы затем перейдете к «Веб-файлам», перечисленные файлы - это только те файлы, которые учитель опубликовал. У нее могут быть другие файлы, к которым вы не можете добраться, и которые не будут перечислены. Это также обрабатывается при кодировании на стороне сервера, в отношении того, что оно будет / не вернется.
Не взломав сервер и не имея доступа к исходному коду на стороне сервера, я не верю, что вы можете получить реальную ссылку, и даже если вы можете, это может оказаться бесполезным, если ваши сессионные привилегии не скажут серверу предоставить вам доступ к нему. ,
Greg
источник
Как и выше, это невозможно. Я рекомендую вам запустить виртуальную машину или взять копию Sandboxie, чтобы в вашем браузере содержались такие ссылки.
редактировать
Не зная, какую операционную систему вы используете, я дам здесь общий ответ.
ВМ это сокращение от виртуальной машины. Это в основном компьютер, созданный программным обеспечением, работающий внутри вашего компьютера. Виртуальная машина будет иметь собственную операционную систему и браузер. Хотя он по-прежнему использует интернет и жесткий диск вашей машины, он является отдельной машиной с точки зрения ОС. Так что это удобно, как лист бумаги. Все, что происходит внутри виртуальной машины, не влияет на вашу реальную машину.
Virtualbox - это программное обеспечение, которое я рекомендую вам приобрести для виртуальной машины, если вы не используете Windows, то я бы порекомендовал Virtual PC.
Sandboxie похожа на виртуальную машину, но она просто изолирует определенные приложения. Вы можете указать, чтобы он запускал копию вашего браузера, а любые файлы или действия, которые он выполняет, по существу перенаправлялись во временную папку. Поэтому, если он пытается загрузить вирус, он перенаправляется во временную папку, которая помещается на карантин с остальной части вашей машины. Он не такой надежный, как виртуальная машина, но он потребляет меньше ресурсов ЦП и памяти и работает быстрее и удобнее.
Я бы попробовал Sandboxie первым. Это меньшая кривая обучения.
источник
Это никогда не возможно , чтобы выяснить фактическую ссылку.
Сервер обрабатывает запросы к файлам, используя некоторое переписывание WWW (например, для серверов Apache), поэтому, например, вы можете перейти на страницу
www.example.com/13-this-site-has-nice-page-name.html
, но в действительности вы можете получить доступ к некоторому файлу php с параметром, таким как:www.example.com/site_handler.php?UID=13
даже если вы обращаетесь к PDF-файлу, на самой стороне сервера может быть перенаправление.
Для загрузки файлов с обработчиками, это может быть немного сложнее, так как вы можете перейти на страницу, которая является просто обработчиком загрузки, например:
www.example.com?file_downloader.php?param1=7683¶m2=jld8ijn, etc...
В этом случае доступ к скрипту, к которому вы обращаетесь, может быть отправлен с одним заголовком (например, PDF-файл), но на самом деле это php-файл.В заключение: вы никогда не узнаете, как настроены сервер и скрипты, поэтому вы никогда не узнаете реальный, реальный адрес, даже если кажется, что вы знаете.
источник
Когда вы отправляете запрос на веб-сервер (нажмите на ссылку), сервер может отправлять несколько разных ответов. Типичные примеры: 404 (страница не найдена), 403 (запрещено) или 500 (ошибка сервера). Вероятно, наиболее распространенный код ответа - 200 (ОК), но вы никогда его не увидите, потому что он обычно сопровождается страницей, которую вы надеялись увидеть.
Здесь есть еще пара кодов: 301 и 302. Коды 301 и 302 являются кодами перенаправления, и они сообщают вашему браузеру, что требуемый вами ответ перемещен в другое место. Основное различие между ними заключается в том, как браузер кеширует вещи. Код 301 означает «перемещен навсегда», и в следующий раз, когда вы попытаетесь перейти по исходной ссылке, браузер может вспомнить, что страница была перемещена и перейти непосредственно в новое местоположение. 302 означает «Найдено в другом месте» и предоставит ссылку, которую ваш браузер должен использовать только временно.
Должна быть возможность написать программу, которая будет проверять ссылку, и до тех пор, пока вы продолжаете получать 30-кратные ответы, следуйте за ответом, пока он, наконец, не получит 200. На этом этапе, вместо загрузки контента, он должен показывать вам ссылку.
К сожалению, это также сложнее, чем это. Страницы Html можно также перенаправить на новое место с помощью мета - тег в головной секции страницы , которая выглядит примерно так:
<meta http-equiv="refresh" content="0;url=NEW PAGE URL" />
. Таким образом, такая программа уже должна была бы полностью разобрать html, чтобы убедиться, что мы достигли последнего перенаправления.Кроме того, страница может перенаправить вас дальше, используя javascript, и javascript может быть запутан. Так что теперь наша гипотетическая программа также должна понимать javascript. На данный момент у нас есть полнофункциональный веб-браузер. Мы упускаем небольшую мелочь при фактическом отображении страницы на экране, но в нашей программе есть почти все, что вам нужно для полноценного веб-браузера, включая все сопутствующие проблемы безопасности. Тебе уже не лучше, чем если бы ты просто щелкнул по ссылке, как обычно.
источник
Предполагается, что Windows: установите Fiddler Web Debugging Proxy , включите его. Затем перейдите к начальному URL и просмотрите все перенаправления в левой панели Fiddler. На правой панели измените вкладки, чтобы отобразить «Заголовки запроса» и «Заголовки ответа». Я успешно использовал его именно для этой цели.
С другой стороны, «окончательный» URL-адрес сам по себе может не работать так же, если вы просматриваете его напрямую, потому что запрос может не иметь правильного реферера или пропустить некоторые другие ограничения.
Но вы даже можете отправлять пользовательские запросы с пользовательскими заголовками в Fiddler. Для этого см. Вкладку «Построитель запросов».
источник
Это в значительной степени зависит от сайта.
Для этого вы должны изучить каждый сайт отдельно и иметь отдельный механизм (или код) для каждого сайта, чтобы вернуть прямой URI.
Вы также можете изучить некоторые надстройки браузера с открытым исходным кодом, которые предоставляют аналогичные функции.
источник
Чтобы проверить, куда ссылка перенаправляет вас, вы можете использовать http://longurl.org/ . Это особенно полезно для сокращенных URL-адресов. Это бесполезно для загрузки по сценарию и т. Д.
источник
Если вы используете Firefox, вы можете использовать аддон под названием,
RequestPolicy
который, помимо прочего, будет приостанавливать работу и запрашивать у вас разрешение, когда вы будете перенаправлены на другой домен. Это не сработает, если вы хотите найти редирект, который не идет в другой домен, но я уверен, что есть другой аддон Firefox для которого я не знаю =)https://www.requestpolicy.com/
Обратите внимание, что это нарушит работу многих сайтов, которые используют CDN (сеть распространения контента), поскольку по умолчанию блокирует все междоменные образы, сценарии, CSS и перенаправления. Так что это не самый лучший выбор, если вы хотите всегда знать, где происходит перенаправление, если вы не готовы проходить несколько дополнительных шагов при каждом посещении нового веб-сайта.
источник
Я не совсем уверен, но если вы используете CUrl, вы можете не просто получить содержимое URL (get_file_contents (url) в PHP), а затем проверить тип MIME?
источник
(Между тем) есть несколько отличных онлайн-инструментов, помогающих отслеживать перенаправления.
И есть хорошее расширение для Google Chrome.
источник