Большому кораблю — большая торпеда

Михаил Ромашов

Спецвыпуск хакер, номер #001, стр. 001-058-1

То, что Интернет просто кишит различными дырками, знает каждый. Но то, что эти дырки порой настолько огромны, что взломать какой-нибудь почтовый сервер может просто любой школьник, понимают не все. Например, уже известная дырка на сервере chat.ru. На всех серверах такого типа всегда предоставляется услуга онлайновой смены пользовательской информации. Там, как правило, вы можете сменить свои имя, фамилию, иногда, как это было в случае с www.chat.ru, — пароль. Процесс смены всегда проходит в два этапа. Сначала вы авторизуетесь, вводя свой логин и пароль. После этого вы попадаете на страничку с вашей информацией, где вы ее можете изменить. Вторым шагом вы даете команду серверу запомнить сделанные вами изменения. Только вот что удивительно! Не все считают нужным запрашивать пароль при втором шаге! Почему-то думают, что раз человек меняет инфу для этого логина, то, значит, это и есть законный пользователь. Только ведь это не факт. Раз на втором этапе проверка пароля не производится, то что мешает вручную подредактировать исходный текст странички с вашей информацией и изменить свой логин на любой чужой? Ведь все равно, когда вы даете серверу команду запомнить изменения, он не запрашивает пароль, а, стало быть, поставив вместо своего в исходном тексте чужой логин, вы заставите сервер сменить для него инфу. Так вот, какой бы глупой ни была на первый взгляд эта ошибка, она оказалась весьма распространенной. Тут-то я, собственно, и подхожу к началу своего повествования.

Программеры всех стран... ошибайтесь!

Освоив данное «отверстие» на www.chat.r, я решил попробовать применить его на сервисах других служб подобного толка. В их число попал пресловутый Mirabilis, создатель самого удобного и самого популярного Интернет-пейджера ICQ, или в простонародье — аськи. В число их услуг также входит возможность онлайновой смены через браузер информации о пользователе на сервере Мирабилиса. Назначение этой услуги мне не ясно до сих пор... Ведь меняется же вся информация совершенно превосходно и через интерфейс самой аси. Ну да не об этом разговор. Есть, значит, такой сервис: www.icq.com/whitepages/login.html. Здесь, введя свой уникальный идентификационный номер (uin) и свой пароль, вы также попадаете на страничку с собственной информацией. В исходнике данной страницы я обнаруживаю вот такой фрагмент:

<form name="frmInfo" method="POST" action="http://white.mirabilis.com/scripts/update.dll" onsubmit="return(Validate())">

<input type="hidden" name="Uin" value="133007">

<input type="hidden" name="EncUin" value="0517E2A83667B05A">

О чем он говорит? О том, что при нажатии кнопки «Submit» вы отдаете серверу Мирабилиса команду сменить информацию для юина 133007 и подтверждаете свое право на дачу такой команды неким кодом 0517E2A83667B05A, выданным вам сервером при вашем заходе на страничку со своей информацией. Кинув беглый взгляд на данный 16-ти байтовый код, я понял, что тут мне ничего не светит и что на Мирабилисе скорее всего сидят не дураки, и код этот генерируется как функция от юина и от пароля. Сохранив на всякий случай страничку со своей информацией на винчестере, я с осознанием выполненного долга забыл про нее. И так бы и попала она в мусорную корзину, если бы ни одно обстоятельство.

Содержание  Вперед на стр. 001-058-2

ttfb: 3.0128955841064 ms