Что вы знаете об URL'ах?
Не случалось ли вам встречать в интернете адреса, которые выглядят, как минимум, странно, если не сказать - подозрительно? Что-нибудь вроде http://3523654789@3474540315/%57O%52L%44/?
Не всегда и не обязательно такие адреса ведут в никуда. Приведенный выше пример приведет вас на страницу всемирных новостей CNN World News, которая находится по адресу с обычным URL http://www.cnn.com/WORLD/
Теперь попробуйте побывать здесь:
http://!$^&*()_+`-={}|[]:;@www.cnn.com/WORLD/ , а также
http://207.25.71.27/WORLD/
http://24949376795/WORLD/
http://00000317.0000031.00000107.0000033/WORLD/
http://0xcf.0x19.0x47.0x1b/WORLD/
http://0xCF.25.0107.0x1B/WORLD/
Удивлены? Ничего страшного - большинство посетителей интернета и даже некоторая часть разработчиков Web-страниц не догадываются о существовании различных способов задания URL. Зато многие спаммеры и мошенники прекрасно осведомлены о таких возможностях и порой с успехом избегают собственной авторизации при рассылке писем с недобросовестной рекламой или сомнительными предложениями. Имеет смысл попробовать разобраться в таких способах хотя бы ради защиты собственного покоя.
Как это делается
Давайте разберемся последовательно с каждым способом.
http://3523654789@3474540315/WORLD/
Симовл "@", поставленный среди прочих цифр, означает, что все знаки между "http://" и "@" к выбору конкретно адреса никакого отношения не имеют. Можно поэкспериментировать и попробовать поставить в это место любые знаки:
http://кул-хацкер@www.cnn.com/WORLD/
http://!$^&*()_+`-={}|[]:;@www.cnn.com/WORLD/
Попробуйте пройтись по этим линкам. Будьте уверены, они приведут вас в одно и то же место
Знаки, введенные между "http://" и "@" используются для аутентификации пользователя. Например, если вход на определенный ресурс интернета требует ввода логина и пароля. В этом случае, имя пользователя и пароль разделяются двоеточием, например:
http://username:password@www.whatever.com/members/memberpage.html
В том случае, если вход не требует авторизации пользователя, лишние знаки просто игнорируются сервером.
Такие хитрости дают иногда возможность водить за нос незадачливого пользователя.
Адрес http://www.playboy.com@3474540315/WORLD/ не приведет посетителя на сайт playboy.com. А выглядит URL, согласитесь, с намеком именно на этот ресурс!
Итак, первая часть линка
http://3523654789@3474540315/%57O%52L%44/.
нам уже понятна.
Но каким образом число 3474540315 может заменить нам адрес
http://www.cnn.com/?
Тем не менее, это два абсолютно эквивалентных способа записи адреса.
Главное правило, известное большинству сетян : имена адресов в интернете
переводятся в номера, называемые IP-адресом (все чаще можно услышать в разговоре термин "айпишник").
Обычно, IP-адрес выглядит как число, разделенное "на разряды" (или на "триады") точками. Например,
http://www.cnn.com/ переводится в 207.25.71.29
(и в многие другие IP-адреса).
Числовые IP-адреса, как правило, ничего не могут подсказать пользователю и достаточно трудны в
запоминании. Из-за этого мы пользуемся именными идентификаторами.
Как найти IP-адрес
IP-адреса, записанные цифрами с разделением на разряды точками, как правило, содержат четыре числовых
сегмента. Номера в каждом сегменте находятся в промежутке от 0 до 255.
Перевод сетевого имени в IP-адрес обычно выполняется сетевыми программами, в автоматическом режиме.
Получив имя, ваш браузер делает запрос у сервера имен, специальной машины в Сети, которая обрабатывает запрос и
отправляет запрос IP-адреса уже в цифровой форме.
Существует множество утилит, с помощью которых можно сделать запрос и получить
результат, не прибегая к услугам браузера, в отм числе с графическим интерфейсом для Windows.
Одна из них - NSLOOKUP - является одной из самых простых и работает из командной строки
в режиме DOS следующим образом:
nslookup [имя или IP-адрес] [имя вашего сервера]
Обязательно нужно указать имя вашего сервера и на выбор - имя или IP-адрес, который интересует.
Если вы не знаете адреса своего провайдера (в большинстве случаев - при дозвоне провайдеру по
коммутироемой линии статичного адреса и не может быть) мрожно использовать, например, вот такой:
198.41.0.196
Теперь набирем в командной строке:
nslookup www.cnn.com 198.41.0.196
Вот что должно получиться:
C:\>nslookup www.cnn.com 198.41.0.196
<-- Комманда, которую вы набрали
Server: ns.netsol.com
<-- Имя сервера, который вы выбрали (198.41.0.196)
Address: 198.41.0.196
<-- IP-адрес сервера, с которого делается запрос
Name: cnn.com
<-- "Настоящее имя www.cnn.com
Addresses: 207.25.71.199,
207.25.71.5, 207.25.71.6,
207.25.71.7
207.25.71.20, 207.25.71.22, 207.25.71.23, 207.25.71.24,
207.25.71.25
207.25.71.26, 207.25.71.27, 207.25.71.28, 207.25.71.29,
207.25.71.30
<-- IP-адреса запрошенного ресурса
Aliases: www.cnn.com
<-- www.cnn.com - не является именем, первоначально выделенным ресурсу, а лишь один из возможных вариантов.
То же самое можно проделать и с помощью браузера. Просто различные программы используют различные
шлюзы для определения имен и IP-адресов.
Таким образом, что бы вы не набрали в адресной строке -
http://www.cnn.com/
или http://207.25.71.27 -
результат будет один и тот же.
Теперь рассмотрим, каким же образом адреса http://www.cnn.com
или http://207.25.71.27
способны превратиться в http://3474540315.
Числовая запись адреса 3474540315 является аналогом
207.25.71.27, записанным в так называемой "dword"-форме, то есть
с помощью сдвоенных 16-битных шестнадцатиричных "слов", приведенных к десятичному виду. Существуют
варианты использования восьмиричной системы счисления.
Ниже описаны варианты конвертации шестнадцатиричных и восьмиричных чисел и способы их использования.
Способы конвертации и использования различных видов записи
Вот ещё один вариант записи той же самой страницы:
http://207.25.71.27/WORLD/
При использовании Internet Explorer все работает нормально, проблемы будут только при
попытке использования браузера Netscape версий 3.x. Номера в IP-адресе имеют значения
между 0 and 255. Они легко переписываются в двоичные 8-битные числа (из нулей и единичек), максимальное
значение которых как раз и составляет 255.
Теперь несколько усложним наш пример. Вот ещё один вариант записи того же URL:
http://3523654789@3474540315/%57O%52L%44/
Вот как это работает:
Каждый символ в URL может быть представлен представленным ему номером в шестнадцатиричной форме.
Перед каждым таким символом нужно ставить знак "%" для идентификации последующих за ним двух цифр/букв
в качестве шестнадцатиричного представления. На практике такой способ применяется для отображения пробелов и
и других неиспользуемых симоволов в URL. Но способ работает и со всеми остальными символами.
В нашем примере интерпретируется выражение "/WORLD/", и вот что получается в результате:
/
%57
O
%52
L
%44 /
/
W
O
R
L
D
/
Буквы в шестнадцатиричной записи могут быть прописными или строчными;
косая черта в шестнадцатиричной форме не отображается.
Ниже приведена таблица соответствия символов шестнадцатиричным эквивалентам.
Вот таким образом объясняется запись http://3523654789@3474540315/%57O%52L%44/
Кстати, символ @ может быть представлен шестнадцатиричным кодом %40 :
http://3523654789%403474540315/%57O%52L%44/
Продолжение статьи читайте здесь
Короткая ссылка на материал: //cnews.ru/link/a467