getreidemuehlen
-


Hinweise


Antwort
 
LinkBack (3) Themen-Optionen Thema durchsuchen Bewertung: Bewertung: 3 Stimmen, 4,00 durchschnittlich.
Alt 14.09.2005, 22:11   3 links from elsewhere to this Post. Click to view. #1
TP-Veteran
 
Benutzerbild von fettmme
 
Registriert seit: Feb 2002
fettmme bringt sich richtig einfettmme bringt sich richtig ein
Exclamation

FYI: Email Injection


Zur Zeit sind Bots unterwegs, die automatisiert Kontakt-
Formulare auf Schwachstellen untersuchen. Dabei schicken sie
Formulare ab, mit dem Ziel ein Feld zu finden, das im head der
Email verwandt wird (z.B. Subject oder From).
Dort fügen Sie nach einem Zeilenumbruch weitere Parameter hinzu
(z.B. Cc:, Bcc oder sogar boundries mit kompletten Mime Teilen)
um über den Server anonymisierte Spam-E-Mails zu versenden.
Ich glaube das viele Skripte anfällig für diese Art von Angriffen
sind. Prüft mal, ob es ein Zeilenumbruch in euer Subject: oder
From: schafft.

Hier noch ein interessanter Artikel.
http://securephp.damonkohler.com/ind...mail_Injection
__________________
class GetProfileCustomerEntityReceiverInformationReceiverAndProgrammingInforma...{
public function __construct(){ if(!$this) die(' '); } }
http://www.thedailywtf.com/

Geändert von steffenk (15.09.2005 um 10:30 Uhr).
fettmme ist offline   Mit Zitat antworten


Alt 14.09.2005, 23:33   #2
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
Danke für den Hinweis.

Der einfachste Schutz hiergegen wäre doch, den inputfeldern andere Namen zu geben, also

Von: <input name="ausfueller">
Grund: <input name="anliegen">

so wie ich das seh, suchen die nach Schlüsselworten (meist eh auf englisch)
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist gerade online   Mit Zitat antworten
Alt 15.09.2005, 00:59   #3
TP-Veteran
 
Benutzerbild von fettmme
 
Registriert seit: Feb 2002
fettmme bringt sich richtig einfettmme bringt sich richtig ein
Nö. Die laufen einfach alle Felder durch und versuchen per Bcc eine E-Mail an jrubin@aol.com zu schicken. Kommt diese E-Mail an, wissen die welches Feld manipulierbar ist. Bei uns hat's ein Formular erwischt. Ich hab's zwar gleich dicht gemacht, aber die probieren es munter weiter.
__________________
class GetProfileCustomerEntityReceiverInformationReceiverAndProgrammingInforma...{
public function __construct(){ if(!$this) die(' '); } }
http://www.thedailywtf.com/
fettmme ist offline   Mit Zitat antworten
Alt 15.09.2005, 01:05   #4
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
also heisst die Devise : alles ab \r\n abzuschneiden - oder wie bist Du vorgegangen ?
Und wie ist es Dir aufgefallen ?
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist gerade online   Mit Zitat antworten
Alt 15.09.2005, 01:14   #5
TP-Special Mod
 
Benutzerbild von Thomas
 
Registriert seit: May 2001
Ort: Arnsberg - Sauerland
Thomas lebt für das TP und seine UserThomas lebt für das TP und seine UserThomas lebt für das TP und seine UserThomas lebt für das TP und seine UserThomas lebt für das TP und seine UserThomas lebt für das TP und seine UserThomas lebt für das TP und seine UserThomas lebt für das TP und seine UserThomas lebt für das TP und seine User
hab' das Problem auch seit einigen Tagen

auf einer Site war das nur einmal, auf einer anderen Site hab' ich aber mehrfach täglich 10 - 20 angebliche Anfragen binnen 1 min

nicht nur unter der von fettmme genannten mail-addy (das waren die ersten), jetzt hab' ich immer jrubin3546@aol.com

hat Jan zwar sofort gefixt (so, wie Steffen schon sagt), aber die (vergeblichen) Versuche laufen seit Tagen weiter und müllen mein Postfach zu ....
Thomas ist offline   Mit Zitat antworten
Alt 15.09.2005, 01:16   #6
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
na da muss ich dringend alle Forms bearbeiten - bin bisher noch verschont geblieben

Ich halte das Thema für so wichtig, das ich mal einen Sticky draus mache.
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist gerade online   Mit Zitat antworten
Alt 15.09.2005, 09:55   #7
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
na mal gucken... ich habe nun bei Thomas folgendes im Script eingebaut:
PHP-Code:
        $absender=$_absender$_POST['Name']." <".$_POST['email'].">";
        
$absender=str_replace(array("\r","\n"),'',$absender);                
        
// ok nun haben wir einen 
        
if (strlen($_absender) != strlen($absender)) {
            
// Debugdatei beschreiben und sterben lassen
            
die();
        } 
wir werden berichten!

Gruss
Jan
Stuck Mojo ist offline   Mit Zitat antworten
Alt 15.09.2005, 10:06   #8
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
Ich würde da rigoroser vorgehen und alles dahinter abschneiden.
Es ist doch so, das eine Trennung von Feldern durch \r\n erfolgt, diese Zeichen also in normalen Inputs nicht vorkommen sollten.

Also hab ich folgende Lösung, die alles ab diesen Zeichen abschneidet:
PHP-Code:
if(strpos($email,"\r\n")>0) {
   
$debug="Folgender Anhang wurde erzeugt:".substr($email,strpos($email,"\r\n"));
   
//jetzt kann man diesen Debugstring in ein Protokoll schreiben
   
$email=substr($email,0,strpos($email,"\r\n")-1);

hab das mit der Protokollfunktion mit reingenommen, da Jan das auch vorgesehen hat. In meinem Fall wird die Email noch versandt, Jan lässt es sterben.
Da ich in der Regel auch $email auf Gültigkeit prüfe, reicht es in meinen Formularen auch aus, $email=""; zu setzen, damit die Mail nicht verschickt wird.

Die Prozedur muss natürlich auf alle relevanten Inputfelder angewandt werden.


Kommentare sind erwünscht, vielleicht teilt uns fettmme Seinen Ansatz auch noch mit
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer

Geändert von steffenk (15.09.2005 um 10:42 Uhr).
steffenk ist gerade online   Mit Zitat antworten
Alt 15.09.2005, 11:04   #9
TP-Veteran
 
Benutzerbild von fettmme
 
Registriert seit: Feb 2002
fettmme bringt sich richtig einfettmme bringt sich richtig ein
Zitat:
Zitat von St@eff.en
Kommentare sind erwünscht, vielleicht teilt uns fettmme Seinen Ansatz auch noch mit
Bin jetzt erst an den Rechner gekommen.

PHP-Code:

// Alle Zeilenumbrüche im manipulierbaren Feld aufspüren
if (eregi("\r",$_POST['Email']) || eregi("\n",$_POST['Email'])){
    die();
}

// Zur Sicherheit alle Post Variablen durchlaufen und prüfen.
// Diese Inhalte finden sich garantiert nicht einer echten Anfrage,
// dadurch reduziere ich den ankommenden Spam.

foreach($_POST as $k=>$v){
    if(
eregi("bcc: jrubin",$v)){
        die();
    }
    if(
eregi("MIME-Version:",$v)){
        die();
    }
    if(
eregi("Content-Type:",$v)){
        die();
    }

Zitat:
Zitat von St@eff.en
Und wie ist es Dir aufgefallen ?
Zum Glück war die Mailbox jrubin... voll. Alle regulären Anfragen gehen direkt an meinen Kunden. Fehler und bounces kommen irgendwann zu mir. Nachdem ich flüchtig über die Mail geschaut habe, war mir klar das da was nicht stimmt.

PS: Danke für's "Sticky Machen".
__________________
class GetProfileCustomerEntityReceiverInformationReceiverAndProgrammingInforma...{
public function __construct(){ if(!$this) die(' '); } }
http://www.thedailywtf.com/

Geändert von fettmme (15.09.2005 um 11:12 Uhr).
fettmme ist offline   Mit Zitat antworten
Alt 15.09.2005, 11:08   #10
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
Halt! Du entfernst auch alles aus einer Textarea, die den Text enthält. Dort sind Zeilenumbrüche ja erlaubt, sogar erwünscht. Ich würde es daher nur auf Felder anwenden, die auch in den Header der Mail kommen.

Oder kann man etwa am mailbody sowas anhängen ? m.E. nämlich nicht.

hmmpf - wieder nur halb gelesen.
Aber wenn sich bei Dir die Adresse im bcc ändert, musst Du es erneut anpassen
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist gerade online   Mit Zitat antworten
Alt 15.09.2005, 11:11   #11
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
Zitat:
Zitat von St@eff.en
Halt! Du entfernst auch alles aus einer Textarea, die den Text enthält. Dort sind Zeilenumbrüche ja erlaubt, sogar erwünscht.
wo denn? (oder wurde das im nachhinein geänder?)
Stuck Mojo ist offline   Mit Zitat antworten
Alt 15.09.2005, 11:13   #12
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
das war ja, weil ich's nur halb gelesen hatte - stimmt nicht
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist gerade online   Mit Zitat antworten
Alt 15.09.2005, 11:15   #13
TP-Veteran
 
Benutzerbild von fettmme
 
Registriert seit: Feb 2002
fettmme bringt sich richtig einfettmme bringt sich richtig ein
Hehe, Ihr seid mir heute zu schnell.

Wichtig sind m.E. MIME-Version: und Content-Type:. Selbst in einer Textarea hat so ein String imho nix verloren

Jrubin nehme ich wieder raus, sobald nicht mehr 100 Anfragen am Tag kommen.
__________________
class GetProfileCustomerEntityReceiverInformationReceiverAndProgrammingInforma...{
public function __construct(){ if(!$this) die(' '); } }
http://www.thedailywtf.com/
fettmme ist offline   Mit Zitat antworten
Alt 15.09.2005, 13:55   #14
TP-Veteran
 
Benutzerbild von Master_T2
 
Registriert seit: Oct 2002
Ort: Übach-Palenberg
Master_T2 macht sich hier sehr viel Mühe
Wenn man die E-Mail per Reg-Exp. validiert, kan doch eigentlich nichts passieren oder?
__________________
Grüße aus Übach-Palenberg
Tim

WEB.ASSISTANTS IT-SOLUTIONS
www.web-assistants.de

Hängt das doch mal an eine beliebige PHP-Datei: ?=PHPE9568F36-D428-11d2-A769-00AA001ACF42
Master_T2 ist offline   Mit Zitat antworten
Alt 15.09.2005, 14:01   #15
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
es geht nicht nur um die email sondern auch die anderen Felder die z.B. fürs Subject genutzt werden etc.
Je nach regex kann die Prüfung auch durch diesen durchrutschen
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist gerade online   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
FYI: Email Injection FYI: Email Injection
« Probleme mit Wordpress und IIS | Session Timeout »