Как этот сценарий «Свяжитесь с нами» уязвим / манипулирует? - PullRequest
0 голосов
/ 30 декабря 2011

Клиент недавно получил предупреждение от спама от своего хоста.

Я думаю, что я указал проблему, указав на старую форму обратной связи.Простой HTML-код в передней части и простой PHP-сценарий в конце.

    if ($_POST['submit'] == "Send"){

    //START SEND MAIL SCRIPT 
    $mail = $_POST['email'];
    $to = "me@gmail.com";
    $subject = "Message from Website Contact Us Form";
    $headers = "From: Contact us Form <webmaster@website.co.uk>";
    $message = "Message from Contact Us Form\n\n";
    $message .= "\nName: " . $_POST['contactname'];
    $message .= "\nEmail: " . $_POST['contactemail'];
    $message .= "\nTelephone: " . $_POST['contactphone'];
    $message .= "\n\n\nMessage:\n" . $_POST['contactmessage'];


        if(mail($to,$subject,$message,$headers)) {

                header('Location: http://www.website.co.uk/contact-us/?action=success');

        }else{

                header('Location: http://www.webisite.co.uk/contact-us/?action=fail');                          

        }//END IF MAIL

}//END SCRIPT

Я знаю, как исправить это, например, правильно очистить почтовые переменные, используя капчи, используя скрытое пустое поле 'honeypot', трюки js и т. д. (мне также нравится внешний вид этого скрипта http://www.alt -php-faq.com / local / 115 / )

Но чтобы помочь мне понять, что происходитЯ хочу знать, как этот скрипт манипулирует.Иностранный скрипт публикует на него переменные, но как они отправляют электронную почту кому-либо, кроме «me@gmail.com», или если они каким-то образом форсируют поля cc / bcc, почему я тоже не получаю весь спам ??

Спасибо

Ответы [ 2 ]

1 голос
/ 30 декабря 2011

Строка, подобная этой $message .= "\nName: " . $_POST['contactname'];, может быть опасной . Если установлено $_POST['contactname']='MegaSteve4 \r\nCc: email1@mail.com, email2@mail.com';, 2 пользователя получат спам.

Смотрите внимательно. Это добавляет больше заголовков. В этом случае Cc . Я не уверен, является ли Cc необработанным заголовком электронного письма. Но я надеюсь, что вы поняли идею.

1 голос
/ 30 декабря 2011

Вы не делаете экранирования почтовых данных. Это означает, что эта форма уязвима для инъекционных атак .

Я не могу сказать вам, как они это сделали, но, вероятно, это и произошло.

...