Scriptspamming durch bergkoch8@aol.com?

redlama

Erfahrenes Mitglied
Hallo zusammen!

Ich bekomme über meine privaten und auch dienstliche Kontaktfomulare auf Websites seit neustem Mails, bei denen eine zufällige E-Mail-Adresse der jeweiligen Domain generiert wurde und diese in die geforderten Eingabefelder eingetragen wurde. Zusätzlich wurde ein BCC mit der E-Mail-Adresse "bergkoch8@aol.com" gesetzt. Hier mal ein Beispiel:
Code:
Firma: joo@isuma.de
Content-Type: multipart/mixed; boundary=\"===============0500136387==\"
MIME-Version: 1.0
Subject: 3f70e60d
To: joo@isuma.de
bcc: bergkoch8@aol.com
From: joo@isuma.de

This is a multi-part message in MIME format.

--===============0500136387==
Content-Type: text/plain; charset=\"us-ascii\"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

trxxdm
--===============0500136387==--
Nummer: joo@isuma.de
EMail: joo@isuma.de
Name: joo@isuma.de
Jetzt stellt sich mir die Frage, was bzw. wie ich etwas dagegen tun kann und wie es sein kann, dass ein BCC gesetzt wurde, obwohl ich in den Scripten schon BCC gesetzt habe, ...
Also kennt jemand das Problem und/oder hat einen Lösungsvorschlag für mich?

Danke redlama
 
Oh, ... Sorry, hatte ich vergessen, ...
PHP:
<?php
//Klasse einfügen
include("classfasttmpl.php");

//Klassenmethoden aufrufen
$aTPL = new FastTemplate(".");
$aTPL->define(array('base' => 'error-rueckruf.tpl.html',
                    'item' => 'items.tpl.html'));

//Empfängeradresse
$to = "XXX1";
$to2 = "XXX2";
$to3 = "XXX3";

//Betreffzeile
$subject = "Bitte um Rückruf von www.isuma.de";

//Redirect Pfad zur danke.html
$redirect = "danke.html";

//Return-Path
$return = "";

//Funktionen
//Emailvalidität
function verifyemail($email)
{
  if(eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$", $email))
    return TRUE;
  else
    return FALSE;
}

//Werte entlausen
if(count($_REQUEST))
  foreach($_REQUEST AS $key => $var)
  {
    $var = strip_tags($var); //HTML-JavaScrip-Code entfernen
    $var = trim($var); //Leere Zeichen entfernen vorne und hinten
    $_REQUEST_ENTL[$key] = $var; //Wieder zurückführen
  }

//Für die Werte, die eingegeben werden müssen, prüfen ob vorhanden
if(!$_REQUEST_ENTL[Firma])
  $error[] = "Geben Sie bitte einen Wert in das Feld \"Firma\" ein.";
if(!$_REQUEST_ENTL[Name])
  $error[] = "Geben Sie bitte einen Wert in das Feld \"Ihr Name\" ein.";
if(!$_REQUEST_ENTL[Nummer])
  $error[] = "Geben Sie bitte einen Wert in das Feld \"Ihre Telefonnummer\" ein.";

//Absender-Emailadresse prüfen
if($_REQUEST_ENTL[EMail])
  if(verifyemail($_REQUEST_ENTL[EMail]) != TRUE)
    $error[] = "Ihre E-Mail-Adresse <b>$_REQUEST_ENTL[EMail]</b> ist ung&uuml;ltig.";
  else
    $to = $to.", $_REQUEST_ENTL[EMail]";

//Falls keine Fehler vorhanden, dann Email senden
if(!count($error))
{
  if(substr_count($_REQUEST_ENTL[Name], "@isuma.de") > 0)
    $daten = "IP: $REMOTE_ADDR\n"."Server: ".gethostbyaddr($REMOTE_ADDR)."\n\n";
  foreach($_REQUEST_ENTL AS $key => $var )
  {
    $key = ereg_replace("_", " ", $key);
    if(!ereg("submit", $key) and ($var != ""))
      $daten .= $key.": ".$var."\n";
  }

  //Emailheader definieren
  $name = ereg_replace(",", "\.", $_REQUEST_ENTL[Name]);
  $header  = "From: $name <$_REQUEST_ENTL[EMail]>\n";
  $header .= "Bcc: $to2\n";
  $header .= "Bcc: $to3\n";
  $header .= "Return-Path: $return\n";
  $header .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";

  //Email senden
  mail($to, $subject, $daten, $header);

  //redirect
  header("Location: $redirect");
}
else
{
  foreach($error AS $err)
  {
    $aTPL->assign(array('ERROR' => $err));
    $aTPL->parse('ITEMS', '.item');
  }
  $aTPL->parse('BASE', 'base');
  $aTPL->FastPrint('BASE');
}
?>
 
Anhand dieser Zeile
PHP:
$header  = "From: $name <$_REQUEST_ENTL[EMail]>\n";
wuerde ich behaupten, dass das mysterioese BCC aus $name oder $_REQUEST_ENTL[EMail] kommt.
$name ist so wie ich sehe eine etwas bearbeitete Version von $_REQUEST['Name']
$_REQUEST_ENTL[EMail] ist, wenn ich nichts uebersehen habe, eine Kopie von $_REQUEST['EMail']
Richtig?
Ich tendiere zum Feld EMail als Schlupfloch, aber auch Name ist moeglich, da die Veraenderung mir nicht so erscheint als koennte sie was gegen ein eingeschleustes BCC untermehmen.

Ich hab auch eine Idee was ich fuer EMail uebergeben muesste, denke mir aber, dass man hier sowas nicht unbedingt in's Forum pflanzen muss und so noch mehr Spinnern die Moeglichkeit zu geben Dein Script zu unterwandern.
 
Wenn du die mail-Funktion in PHP mit "fest verdrahteten" to: und BCC: Header verwendest (das sieht mir so aus, wenn ich deinen Code überfliege), besteht sicher keine Gefahr.

Offenbar sind irgendwo Skripte in Umlauf, die sich die Daten für to: und bcc: irgendwo aus einem gemeinsamen Datenfeld herausholen und für eine solche Art Angriff gefährdet sind. Solange diese "Header" nur im Textfeld erscheinen, ist das Ganze völlig harmlos. Ich selbst habe auch schon diverse solcher Mails bekommen.

Gruß Marian
 
reptiler hat gesagt.:
$name ist so wie ich sehe eine etwas bearbeitete Version von $_REQUEST['Name']
$_REQUEST_ENTL['EMail'] ist, wenn ich nichts uebersehen habe, eine Kopie von $_REQUEST['EMail']
Richtig?
Richtig!
reptiler hat gesagt.:
Ich tendiere zum Feld EMail als Schlupfloch, aber auch Name ist moeglich, da die Veraenderung mir nicht so erscheint als koennte sie was gegen ein eingeschleustes BCC untermehmen.

Ich hab auch eine Idee was ich fuer EMail uebergeben muesste, denke mir aber, dass man hier sowas nicht unbedingt in's Forum pflanzen muss und so noch mehr Spinnern die Moeglichkeit zu geben Dein Script zu unterwandern.
Na ja, könntest Du mir dann auch sagen, was ich tun muss, um das Schlupfloch zu schließen?
Du kannst mir auch gerne ein PN schicken, wenn Du das nicht öffentlich posten magst.

heddesheimer hat gesagt.:
Ich selbst habe auch schon diverse solcher Mails bekommen.
Und was hast Du dagegen unternommen? :confused:

redlama
 
Wir nehmen uns nochmal diese Zeile:
PHP:
 $header  = "From: $name <$_REQUEST_ENTL[EMail]>\n";
Du musst dafuer sorgen, dass durch einen uebergebenen Wert nichts zusaetzliches angegeben werden kann.
Zum Beispiel koenntest Du sowohl aus $name als auch aus $_REQUEST_ENTL[EMail] Begriffe wie To: Cc: und Bcc: herausfiltern.

Ich schick Dir mal kurz eine PN mit dem String wo ich vermute dass Dein Script darauf anschlaegt.

Nachtrag: Okay, der von mir vermutete String hat's nicht gebracht.
 
Zuletzt bearbeitet:
Bist du wirklich sicher, dass diese Mails über diese(s) Kontaktformular(e) verschickt wurden?

Dein Skript würde bspw. einen anderen Content-Type-Header erzeugen, als er in der Mail tatsächlich vorhanden ist.
Code:
Soll:Content-Type: text/plain; charset=iso-8859-1
ist: Content-Type: text/plain; charset=us-ascii
 
Sven Mintel hat gesagt.:
Bist du wirklich sicher, dass diese Mails über diese(s) Kontaktformular(e) verschickt wurden?

Dein Skript würde bspw. einen anderen Content-Type-Header erzeugen, als er in der Mail tatsächlich vorhanden ist.
Code:
Soll:Content-Type: text/plain; charset=iso-8859-1
ist: Content-Type: text/plain; charset=us-ascii
Das habe ich mich auch schon gefragt, ...
Es kann durchaus sein, dass er ein anderes Formular nutzt, aber das Script zum Versenden der Mail wird schon unser sein, denke ich.
Schließlich stimmt der Betreff und die 3 Empfänger ($to, $to2, $to3) bekommen die Mails.

Ich habe mal :google: nach "bergkoch8@aol.com" befragt und es scheinen noch mehr das Problem zu haben, ... zumindest kommen da 26.500 Einträge!

redlama
 
Zurück