+ Antworten
Seite 1 von 6 1 2 3 4 ... LetzteLetzte
Ergebnis 1 bis 15 von 90

Thema: FYI: Email Injection

  1. #1
    TP-Veteran fettmme bringt sich richtig ein fettmme bringt sich richtig ein Avatar von fettmme
    Registriert seit
    Feb 2002
    Beiträge
    1.491

    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
    Geändert von steffenk (15.09.2005 um 11:30 Uhr)
    class GetProfileCustomerEntityReceiverInformationReceiverAndProgrammingInforma...{
    public function __construct(){ if(!$this) die(' '); } }
    http://www.thedailywtf.com/

  2. #2
    TP-Special Mod steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    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


  3. #3
    TP-Veteran fettmme bringt sich richtig ein fettmme bringt sich richtig ein Avatar von fettmme
    Registriert seit
    Feb 2002
    Beiträge
    1.491
    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/

  4. #4
    TP-Special Mod steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    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


  5. #5
    TP-Special Mod TP-Sponsor Thomas ist einer der Eckpfeiler des TP - ohne ihn geht nichts Thomas ist einer der Eckpfeiler des TP - ohne ihn geht nichts Thomas ist einer der Eckpfeiler des TP - ohne ihn geht nichts Thomas ist einer der Eckpfeiler des TP - ohne ihn geht nichts Thomas ist einer der Eckpfeiler des TP - ohne ihn geht nichts Thomas ist einer der Eckpfeiler des TP - ohne ihn geht nichts Thomas ist einer der Eckpfeiler des TP - ohne ihn geht nichts Thomas ist einer der Eckpfeiler des TP - ohne ihn geht nichts Thomas ist einer der Eckpfeiler des TP - ohne ihn geht nichts Thomas ist einer der Eckpfeiler des TP - ohne ihn geht nichts Thomas ist einer der Eckpfeiler des TP - ohne ihn geht nichts Avatar von Thomas
    Registriert seit
    May 2001
    Ort
    Arnsberg - Sauerland
    Beiträge
    21.248
    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 ....

  6. #6
    TP-Special Mod steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    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


  7. #7
    TP-Specialist Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Avatar von Stuck Mojo
    Registriert seit
    Feb 2001
    Ort
    Helmstedt/Wolfsburg
    Beiträge
    4.108
    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

  8. #8
    TP-Special Mod steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    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
    Geändert von steffenk (15.09.2005 um 11:42 Uhr)


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


  9. #9
    TP-Veteran fettmme bringt sich richtig ein fettmme bringt sich richtig ein Avatar von fettmme
    Registriert seit
    Feb 2002
    Beiträge
    1.491
    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".
    Geändert von fettmme (15.09.2005 um 12:12 Uhr)
    class GetProfileCustomerEntityReceiverInformationReceiverAndProgrammingInforma...{
    public function __construct(){ if(!$this) die(' '); } }
    http://www.thedailywtf.com/

  10. #10
    TP-Special Mod steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    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


  11. #11
    TP-Specialist Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Stuck Mojo ist ein richtiges Arbeitstier - DANKE Avatar von Stuck Mojo
    Registriert seit
    Feb 2001
    Ort
    Helmstedt/Wolfsburg
    Beiträge
    4.108
    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?)

  12. #12
    TP-Special Mod steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    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


  13. #13
    TP-Veteran fettmme bringt sich richtig ein fettmme bringt sich richtig ein Avatar von fettmme
    Registriert seit
    Feb 2002
    Beiträge
    1.491
    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/

  14. #14
    TP-Specialist Master_T2 bringt sich richtig ein Master_T2 bringt sich richtig ein Avatar von Master_T2
    Registriert seit
    Oct 2002
    Ort
    Übach-Palenberg
    Beiträge
    2.272
    Wenn man die E-Mail per Reg-Exp. validiert, kan doch eigentlich nichts passieren oder?
    Grüße aus Übach-Palenberg
    Tim

    http://www.template-shopping.de

  15. #15
    TP-Special Mod steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    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


+ Antworten
Seite 1 von 6 1 2 3 4 ... LetzteLetzte

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51