MailMachine - CGI-скрипт, написанный на перле. Mike World
(http://www.mikesworld.net) MailMachine описывается так:
"Mail Machine - это отличный скрипт для работы со списком подписчиков, позволяющий посетителям вашего вебсайта подписаться или, наоборот, отказаться от подписки на
ваш лист рассылки без какого бы-то ни было участия с вашей стороны. Это лучший способ информировать ваших посетителей о последних событиях!"
Причина, по которой я записал этот текст - чтобы люди не пользовались серверами, на
которых установлен MailMachine - это довольно небезопасный скрипт. Надо надеяться, автор обратит внимание на то, о чем речь пойдет ниже, и примет соответствующие меры.
О каких ошибках пойдет речь?
Недавно я скачал MailMachine для использования на своем сервере, и после пары некоторых экспериментов я выявил множество недостатков этого скрипта. Вот проблемы, обнаруженные мной, хотя есть вероятно то, что это далеко не все ошибки:
1) Подписка
Когда будет задействована опция 'подтверждения подписки', то будет очень нетрудно догадаться каким будет адрес для подтверждения подписки, по которому нужно пойти чтобы подтвердить запрос о подписке, формат ссылки следующий:
http://www.domain.com/cgi-bin/mailmachine.cgi?<адрес эл.почты>
Таким образом, хакер мог бы подписать любого, кого он хочет, введя сначала свой адрес электронной почты и кликнув кнопку для подписки, а затем подтвердить подписку добавив ?<нужный адрес эл.почты> в конце пути к скрипту. Это делает опцию MailMachine подтверждения подписки бесполезной.
2) Прекращение подписки
Тот же тип проблемы в безопасности присутствует и здесь, отличие лишь в том, что
подтверждения здесь не нужно. Любой подписчик может прекратить подписку сам в любое время сходив по адресу:
http://www.domain.com/cgi-bin/mailmachine.cgi?<адрес эл.почты подписчика>
Никакого подтверждения не будет послано, просто вам придет письмо с уведомлением того, что вы больше не состоите в числе подписчиков. Таким образом, хакер может "отписать" любого человека, сходив по этому адресу. Это эффективное средство, которое позволяет вам самим прекратить подписку.
3) Права доступа
"Email.txt" и "Temp.txt" содержат адреса электронной почты подписавшихся и давших подтверждение подписки. По умолчанию установка прав доступа к файлам "email.txt"
и "temp.txt" предполагает чтение их любым человеком. Хакер может получить доступ к файлу "email.txt" и "отписать" всех, кто находится в этом списке, используя технику, описанную выше.
4) Забаненные адреса
Владелец списка подписчиков может наложить запрет на некоторые адреса в силу каких либо обстоятельств, тем не менее, эти забаненные адреса являются
чувствительными к регистру. Так, если я забанил адрес:
trouble@hacker.com
То этот адрес все еще может быть подписан, если будет введен следующий адрес:
Trouble@hacker.com
(Обратите внимание на заглавную 'T')
Для администраторов списка подписчиков станет намного труднее и раздражительнее забанить чей-нибудь адрес.
5) Другие проблемы с регистром
MailMachine проверяет, не пытается ли уже зарегистрированный пользователь зарегистрироваться еще раз. Чувствительность к регистру также присутствует и в подписке на определенный адрес. Следовательно, проверки, осуществляющиеся mailmachine - также бессмысленны как и в случае с забаненными товарищами. То есть если you@you.com уже подписано, то можно подписаться еще раз, используя
You@you.com.
6) Существенные проблемы с www.hotmail.com
Когда письмо с подтверждением послано, то получатель должен кликнуть примерно по такой ссылке:
http://www.domain.com/cgi-bin/mailmachine.cgi?<адрес эл.почты>
Щелчок по этой ссылке должен перекинуть вас на экран с подтверждением регистрации...
Тем не менее, если это письмо с подтверждением послано на
аккаунт hotmail, то этого не случится. Hotmail не считает '?' частью ссылки и следовательно обрезает все, что следует за
этим символом - таким образом, адресом получателя будет следующий:
http://www.domain.com/cgi-bin/mailmachine.cgi
Что не подтвердит подписку... это делает невозможным для пользователя hotmail подтвердить его или ее подписку.
Wang
Wang Products - http://www.wangproducts.co.uk