+ Antworten
Seite 6 von 6 ErsteErste ... 3 4 5 6
Ergebnis 76 bis 90 von 90

Thema: FYI: Email Injection

  1. #76
    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
    wird verhindert.


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


  2. #77
    TP-Newbie vindiesel macht alles soweit korrekt
    Registriert seit
    Mar 2006
    Beiträge
    4
    @St@eff.en
    Bei mir funzt das irgendwie nicht so, oder ich bin heut einfach zu blöd dafür.
    Wenn ich die abfrage von deinen script so abänder, dann sollte er doch "kein spam" ausgeben, oder hab ich da nen Denkfehler?

    PHP-Code:
    if(strpos($email,"\r\n")>|| strpos($email,"\n")>0) {
            die(
    "kein spam");
        } 

  3. #78
    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 betrifft dann nur email, Du müsstest ebenso mit name verfahren.


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


  4. #79
    TP-Newbie vindiesel macht alles soweit korrekt
    Registriert seit
    Mar 2006
    Beiträge
    4
    Naja, hab das sowohl für name als auch für email eingegeben.
    Hab beim namensfeld irgendeinname\n und bei email test@test.com\n eingegeben und die email wird abgeschickt.
    Hab an deinem script nix geändert, außer eben diese zeilen:


    PHP-Code:
    if(strpos($name,"\r\n")>|| strpos($name,"\n")>0) {
            die(
    "no spam");
        }
        if(
    strpos($email,"\r\n")>|| strpos($email,"\n")>0) {
            die(
    "kein spam");
        } 
    Auch wenn ich deine php-datei unberührt lasse, wird die email abgeschickt.
    Es wird auch nix in die attack.txt eingetragen!
    Geändert von vindiesel (07.03.2006 um 00:20 Uhr)

  5. #80
    TP-Greis steff11 ist einer der Eckpfeiler des TP - ohne ihn geht nichts steff11 ist einer der Eckpfeiler des TP - ohne ihn geht nichts steff11 ist einer der Eckpfeiler des TP - ohne ihn geht nichts steff11 ist einer der Eckpfeiler des TP - ohne ihn geht nichts steff11 ist einer der Eckpfeiler des TP - ohne ihn geht nichts steff11 ist einer der Eckpfeiler des TP - ohne ihn geht nichts steff11 ist einer der Eckpfeiler des TP - ohne ihn geht nichts steff11 ist einer der Eckpfeiler des TP - ohne ihn geht nichts steff11 ist einer der Eckpfeiler des TP - ohne ihn geht nichts steff11 ist einer der Eckpfeiler des TP - ohne ihn geht nichts steff11 ist einer der Eckpfeiler des TP - ohne ihn geht nichts Avatar von steff11
    Registriert seit
    Aug 2002
    Ort
    Hochfranken
    Beiträge
    5.875

    Question

    moin,moin
    nun, diese Art Spam, dass sich jemand hinsetzt, einen Fantasienamen einträgt und eine vernünftig aufgebaute Fantasie-Mailadresse und dann damit eine Nachricht losschickt, die kannst doch in einem solchen Script nicht verhindern. Wie soll das Script zwischen "vindiesel", "irgendeinname" und "Holger Maier" entscheiden, ob der Name "glaubwürdig und echt" ist oder nicht? Es geht doch darum, dass böswillige Scripte nicht dein Formular nutzen, um Spam an 10000 andere EMPFÄNGER zu verschicken, die du gar nicht im Script als Empfänger vorgesehen hast.

    Steff

  6. #81
    TP-Newbie vindiesel macht alles soweit korrekt
    Registriert seit
    Mar 2006
    Beiträge
    4
    moin,

    nun es geht doch darum, dass u.a. "\n" verhindert werden soll und genau das passiert eben nicht!
    Die abfrage greift doch hier einfach nicht, zumindest bei mir nicht.

  7. #82
    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
    PHP-Code:
    $istlgeich "\n" == '\n';
    echo 
    $istgleich 'Ja' 'Nein';
    echo 
    "<pre>";
    var_dump(array("\n",'\n'));
    echo 
    "</pre>"
    ...beides sollte dir deutlich mache, dass die Zeichenkette \n was anderes ist als das Steuerzeichen \n ... Klingt komisch - ist aber so

    Gruss
    Jan

  8. #83
    TP-Veteran fettmme bringt sich richtig ein fettmme bringt sich richtig ein Avatar von fettmme
    Registriert seit
    Feb 2002
    Beiträge
    1.491
    Ich habe mal zum schnellen Test ein einfaches Skript zusammengebastelt. Ist sicher selbsterklärend.
    Eventuell muss man das passende PEAR Paket installieren. Viel Spaß damit.

    PHP-Code:
    // PEAR HTTP Request einbinden. Vielen Dank an die Maintainer Richard Heyes und Alexey Borzov 
    require 'HTTP/Request.php';

    // Assoc Array mit den Formularfeldern. Key = Feldname, Value = Eintrag
    $send = array(
        
    'Name'=> 'Max',
        
    'Vorname'=> 'Mustermann',
        
    'Email'=> "example@example.com%0DBcc: Foo@example.com"// Dieses Feld wollen wir injecten
        
    'Nachricht'=> 'Dies ist ein Test ...',
        
    'Submit' => 'Submit'
    );

    // Falls das Formular in einem htaccess geschützten Bereich liegt, hier Benutzer und Kennwort eintragen
    $user false;
    $pass false;

    // Erst das HTTP_REQUEST Objekt erzeugen ...
    $r =& new HTTP_Request('http://example.com/meinFormmailer.php');

    // ... POST als MEhtode bestimmen ...
    $r->setMethod(HTTP_REQUEST_METHOD_POST);

    // ... eventuell per HTTP authentifizieren ...
    if($user && $pass$r->setBasicAuth($user$pass);

    // ... alle Formularfelder an das Objekt übergeben ...
    foreach($send as $k=>$v){
        
    $r->addPostData($k$v);
    }

    // ... und "den Abschicken Button drücken".
    $rs $r->sendRequest();


    if (
    PEAR::isError($rs)===true){ 
        echo 
    $rs->getMessage(); // falls ein Fehler auftrat
    }else{ 
        echo 
    $r->getResponseBody();  // Hier wird der body der aufgerufenen Seite ausgegeben. Hat es geklappt?

    Und hier das passende HTML Formular:

    Code:
    <form method="post" action="">
        <label for="Name">Name</label><input type="text" name="Name" id="Name" /><br />
        <label for="Vorname">Vorname</label><input type="text" name="Vorname" id="Vorname" /><br />
        <label for="Email">Email</label><input type="text" name="Email" id="Email" /><br />
        <label for="Nachricht">Nachricht</label><input type="text" name="Nachricht" id="Nachricht" /><br />
        <input type="submit" value="Submit" />
    </form>
    <?php
    if($_POST){
        mail('me@example.com', 'Email von ' . $_POST['Email'], $_POST['Nachricht']);
    }
    ?>
    \r und \n reicht scheinbar nicht. Ich war immernoch in der Lage einen String zu injecten. Deshalb prüfe ich jetzt i.d.R case-insensitive auf folgenden Literale:

    \r
    \n
    %0D
    %0A
    Content-Type:
    MIME-Version:
    Subject:
    bcc:
    cc:
    Content-Transfer-Encoding:
    Geändert von fettmme (06.04.2006 um 01:27 Uhr)
    class GetProfileCustomerEntityReceiverInformationReceiverAndProgrammingInforma...{
    public function __construct(){ if(!$this) die(' '); } }
    http://www.thedailywtf.com/

  9. #84
    TP-Specialist His.Master's.Voice lebt für das TP und seine User His.Master's.Voice lebt für das TP und seine User His.Master's.Voice lebt für das TP und seine User His.Master's.Voice lebt für das TP und seine User His.Master's.Voice lebt für das TP und seine User His.Master's.Voice lebt für das TP und seine User His.Master's.Voice lebt für das TP und seine User His.Master's.Voice lebt für das TP und seine User Avatar von His.Master's.Voice
    Registriert seit
    Mar 2006
    Ort
    Wörrstadt
    Beiträge
    2.454

    Thumbs up

    Seit einiger Zeit bin ich auch Opfer der Bots geworden. Seit dem ich den Formmailer von St@eff.en benutze ist endlich Schluß. Daher dickes Lob an St@eff.en
    Gruß HMV

  10. #85
    TP-Greis Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Boris lebt für das TP und seine User Avatar von Boris
    Registriert seit
    Mar 2001
    Ort
    Stuttgart & Kornwestheim
    Beiträge
    9.420
    Passend zum Thema Spambots eine "neue" Art von Captcha: http://www.hotcaptcha.com/
    My software never has bugs. It just develops random features ...

    » DevShack - die Website des freien Webentwicklers Boris

  11. #86
    TP-Supporter [jacky] ist auf einem guten Weg
    Registriert seit
    Dec 2005
    Beiträge
    455
    Ahahaha, wie geil ist das denn

  12. #87
    TP-Junior downhill macht alles soweit korrekt Avatar von downhill
    Registriert seit
    Apr 2006
    Beiträge
    16

    Kontaktformular SPAM - E-Mailinjection

    Hallo zusammen, zunehmend gehen die Spammer auf Kontaktformulare los,
    da ich nicht auch betroffen sein möchte, bin ich meine Formulare am überarbeiten.
    Hierzu folgende, zugegeben recht restriktive Möglichkeit.

    Mein Problem, resp. was ich nicht verstehe. Das Funktioniert mit allen verbotenen
    Zeichen super, bis auf \r und \n. Irgendwie scheint die POST Variable jeweils
    auch ein solches Steuerzeichen zu enthalten, was mir aber völlig unlogisch ist.

    Hat mir jemand einen Anhaltspunkt, damit man die POST Felder auch auf diese
    zwei Steuerzeichen überprüfen könnte. So könnte man meiner Meinung nach recht
    einfach E-Mailinjections nachhaltig verhindern.

    Danke für eure Antworten und noch einen schönen Nachmittag.


    HTML-Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    
    <html>
    <head>
    	<title>E-Mail</title>
    </head>
    
    <body>
    
    <?php
    
    // list of forbidden text in input fields
    $forbidden[0] = "%0A";
    $forbidden[1] = "%0D";
    //$forbidden[2] = "\\n";
    //$forbidden[3] = "\\r";
    $forbidden[4] = "content-type:";
    $forbidden[5] = "to:";
    $forbidden[6] = "cc:";
    $forbidden[7] = "bcc:";
    $forbidden[8] = "from:";
    $forbidden[9] = "subject:";
    $forbidden[10] = "href=";
    
    // check forbidden text in all post variables
    foreach($_POST as $key=>$value)
    {
    	foreach($forbidden as $forbidden_text)
    	{
    		if (eregi($forbidden_text, stripslashes($value)))
    		{
    			echo stripslashes($value)." - ".$forbidden_text." - SPAM<br>";
    			$spamfound = "1";
    			$spammessage = "Nicht erlaubte Steuerzeichen in Ihrer Eingabe gefunden. Nachricht als Spam deklariert.<br><strong>Die Verarbeitung wurde abgebrochen.</strong>";
    		}
    	}
    }
    ?>
    
    <form action="index.php?action=submit" method="POST">
    <input type="text" size="30" name="testfeld" value="<?php echo stripslashes($_POST['testfeld']); ?>">
    <input type="submit" name="submit" value="senden">
    </form>
    
    </body>
    </html>

  13. #88
    TP-Insider MuschPusch ist auf einem guten Weg Avatar von MuschPusch
    Registriert seit
    May 2002
    Ort
    Niederlande
    Beiträge
    612

  14. #89
    TP-Moderator Peter ist ein richtiges Arbeitstier - DANKE Peter ist ein richtiges Arbeitstier - DANKE Peter ist ein richtiges Arbeitstier - DANKE Peter ist ein richtiges Arbeitstier - DANKE Peter ist ein richtiges Arbeitstier - DANKE Avatar von Peter
    Registriert seit
    Nov 2001
    Ort
    Vienna
    Beiträge
    3.424
    Hallo,
    Mein E-Mail sieht so aus:

    X-Mailer: PHP/4.4.7

    X-Sender-IP: 91.128.xx.xx

    Content-Type: text/html; charset=ISO-8859-1;
    Message-Id: <20080124173815.86D76C0F02F7@dd7232blah.com>
    Date: Thu, 24 Jan 2008 18:38:15 +0100 (CET)

    Name: dafsdfasdfasdfasfdas<br />
    ...
    Habe aber soeben die neue? Version von deiner Seite genommen.
    _________-- - adicto otra vez - --
    (¯`·.¸¸.·´¯`·.¸¸..¸¸.·´¯`·.¸¸..¸¸.·´¯`·.¸¸.·`¯)
    Unterwasserrugby - der dreidimensionale Sport

  15. #90
    TP-Newbie dahead macht alles soweit korrekt
    Registriert seit
    Dec 2008
    Beiträge
    3
    bekommt man das Script nochmal irgendwo?? auf dislabs ist eine fehlerhafte ZIP-Datei.

    :/

    wäre dankbar

+ Antworten
Seite 6 von 6 ErsteErste ... 3 4 5 6

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