Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > авторизация почты


Автор: OutlawZ 4.4.2009, 04:36
Привет всем! Хочу попробовать авторизоваться на www.mail.ru с помощью скрипта на perl, только вот какая проблема POP3, SMTP сервер жестоко отвергает, решил пойти другим путем используя LWP, то есть посмотрел куда отправляются данные из формы а  именно "http://win.mail.ru/cgi-bin/auth" мудрил с кодом но нечего путного не получалось скрипт просто получал ответ 302 или 200. 

Вопрос собственно как можно передать perl скриптом параметры на скрипту авторизации?


p.s только не CGI

Автор: arto 4.4.2009, 07:48
pop.mail.ru -- pop3
mxs.mail.ru -- smtp

и непонятно, что вы хотите?

Автор: NuINu 4.4.2009, 08:16
Цитата(arto @  4.4.2009,  05:48 Найти цитируемый пост)
и непонятно, что вы хотите? 


он хочет написать майл клиента работающего черзе http, собственно не получается авторизация smile

кстати 200 это хороший ответ. что может быть "путнее" его?

Автор: OutlawZ 4.4.2009, 09:01
Цитата(NuINu @ 4.4.2009,  08:16)
Цитата(arto @  4.4.2009,  05:48 Найти цитируемый пост)

кстати 200 это хороший ответ. что может быть "путнее" его?



Дык дело в том что когда катаю запрос даже с неправельным паролем он мне говорит 200, он просто находит файл к которому я обращаюсь и дает мне ответ а логин и пароль не отправляет!

Добавлено через 14 минут и 30 секунд
Цитата(arto @ 4.4.2009,  07:48)
pop.mail.ru -- pop3
mxs.mail.ru -- smtp

и непонятно, что вы хотите?

Спасибо за адреса теперь уже все сделано smile

Автор: OutlawZ 4.4.2009, 10:11
Народ это только у меня глюк с mail.ru или тоже самое у вас?

Код

#!/usr/local/bin/perl
use Net::SMTP;
my $smtp = Net::SMTP->new('smtp.mail.ru', Timeout => 30,  Debug   => 1);
$smtp->auth('****\@mail.ru', '479823');
$smtp->mail('****\@mail.ru');
$smtp->to('****\[email protected]');
$smtp->data();
$smtp->datasend("de");
$smtp->dataend();
$smtp->quit;



Ответ сервера: 
Код

Net::SMTP>>> Net::SMTP(2.29)
Net::SMTP>>>   Net::Cmd(2.26)
Net::SMTP>>>     Exporter(5.58)
Net::SMTP>>>   IO::Socket::INET(1.29)
Net::SMTP>>>     IO::Socket(1.29)
Net::SMTP>>>       IO::Handle(1.25)
Net::SMTP=GLOB(0x19e6cb0)<<< 220 mail.ru ESMTP Sat, 04 Apr 2009 11:03:07 +0400
Net::SMTP=GLOB(0x19e6cb0)>>> EHLO localhost.localdomain
Net::SMTP=GLOB(0x19e6cb0)<<< 250-mx38.mail.ru Hello localhost.localdomain [89.24
9.183.10]
Net::SMTP=GLOB(0x19e6cb0)<<< 250-SIZE 31457280
Net::SMTP=GLOB(0x19e6cb0)<<< 250-8BITMIME
Net::SMTP=GLOB(0x19e6cb0)<<< 250-AUTH PLAIN LOGIN
Net::SMTP=GLOB(0x19e6cb0)<<< 250 PIPELINING
Net::SMTP=GLOB(0x19e6cb0)>>> MAIL FROM:<trust\@mail.ru>
Net::SMTP=GLOB(0x19e6cb0)<<< 501 <trust\@mail.ru>: sender address must contain a
 domain
Net::SMTP=GLOB(0x19e6cb0)>>> RCPT TO:<trust\[email protected]>
Net::SMTP=GLOB(0x19e6cb0)<<< 503 sender not yet given
Net::SMTP=GLOB(0x19e6cb0)>>> DATA
Net::SMTP=GLOB(0x19e6cb0)<<< 503 MAIL command must precede DATA
Net::SMTP=GLOB(0x19e6cb0)>>> de
Net::SMTP=GLOB(0x19e6cb0)>>> .
Net::SMTP=GLOB(0x19e6cb0)<<< 500 unrecognized command
Net::SMTP=GLOB(0x19e6cb0)>>> QUIT
Net::SMTP=GLOB(0x19e6cb0)<<< 500 unrecognized command


После этого нечего не отправил, как видно по ошибкам ответа сервера. 
И что самое непонятное когда вожу неправильный пароль для своего ящика он все равно проходит, может тут есть место уязвимости не авторизированной отправки почты?

Автор: arto 4.4.2009, 11:01
1. что есть <trust\@mail.ru>?
2. после неправильного пароля он куда отправляет?

Автор: OutlawZ 4.4.2009, 11:20
Цитата(arto @ 4.4.2009,  11:01)
1. что есть <trust\@mail.ru>?
2. после неправильного пароля он куда отправляет?

trust\@mail.ru

Нее, это я просто так написал а на самом деле пишу своей маил, после всего он выдает 
Код

Net::SMTP=GLOB(0x19e6cb0)>>> RCPT TO:<trust\[email protected]>
Net::SMTP=GLOB(0x19e6cb0)<<< 503 sender not yet given
Net::SMTP=GLOB(0x19e6cb0)>>> DATA
Net::SMTP=GLOB(0x19e6cb0)<<< 503 MAIL command must precede DATA
Net::SMTP=GLOB(0x19e6cb0)>>> de
Net::SMTP=GLOB(0x19e6cb0)>>> .
Net::SMTP=GLOB(0x19e6cb0)<<< 500 unrecognized command
Net::SMTP=GLOB(0x19e6cb0)>>> QUIT
Net::SMTP=GLOB(0x19e6cb0)<<< 500 unrecognized command

И нечего не отправляет! тока выдает что ошибка в наборе команды то есть кому надо доставить в нем ошибка, сам формат сообщения "текста" в нем ошибка и при выходе ошибка.

то есть он говорит про команды SMTP протокола, я в ручную к нему подключался  (telnet) и пробовал:
Код

helo мой айпи
mail from: адресс //только он не запросил у меня пароль
rcpt to: кому адресс // и после этого выкинул ошибку

Дальше сервер отказался работать!

После неправильного пароля делает тоже самое что и с правильным!

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

Вот результат:
Код

220 panel.tcn.ru ESMTP Exim 4.69 Thu, 02 Apr 2009 06:06:09 +0400
help
214-Commands supported:
214 AUTH HELO EHLO MAIL RCPT DATA NOOP QUIT RSET HELP
helo ip
250 panel.tcn.ru Hello 172.16.134.31 [89.249.183.10]
mail from:мыло любое
250 OK
rcpt to:свое мыло куда отправить
250 Accepted
data
354 Enter message, ending with "." on a line by itself
мессага
.
250 OK id=1LpCKg-000FxV-JT
quit
221 panel.tcn.ru closing connection


Подключение к узлу утеряно.

Нажмите любую клавишу...


Вот такие вот дела!

Автор: arto 4.4.2009, 15:00
"Net::SMTP=GLOB(0x19e6cb0)<<< 501 <trust\@mail.ru>: sender address must contain a
 domain".
постарайтесь перевести это сообщение об ошибке.

Автор: OutlawZ 4.4.2009, 15:47
Я еще раз говорю что trust\@mail.ru вписал в место своего мыла когда вписывал сюда код ответа!

trust\@mail.ru <- Я не отправлял

Автор: arto 4.4.2009, 16:01
а кто написал "sender address must contain a domain" ?

Автор: OutlawZ 5.4.2009, 20:31
Я выставлял так все:

Код

$smtp->auth('mail\@mail.ru', '479823');
$smtp->mail('mail\@mail.ru');
$smtp->to('mail\[email protected]');


Он начал ругаться то что не может авторизировать. 

Потом я поменял на это:

Код

$smtp->auth('mail\@mail.ru', '479823');
$smtp->mail('mail\@mail.ru');
$smtp->to('[email protected]');


Но все равно ошибки вылетали и последнее изменение было таким:

Код

$smtp->auth('mail\@mail.ru', '479823');
$smtp->mail('[email protected]');
$smtp->to('[email protected]');


И все равно ошибки, может кто нить скажет в чем дело?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)