Eurokicker
-


Hinweise


Antwort
 
LinkBack (3) Themen-Optionen Thema durchsuchen Bewertung: Bewertung: 3 Stimmen, 4,00 durchschnittlich.
Alt 06.03.2006, 16:24   #76
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
wird verhindert.
__________________

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


Alt 06.03.2006, 20:26   #77
TP-Newbie
 
Registriert seit: Mar 2006
vindiesel macht alles soweit korrekt
@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");
    } 
vindiesel ist offline   Mit Zitat antworten
Alt 06.03.2006, 22:48   #78
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 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
steffenk ist offline   Mit Zitat antworten
Alt 06.03.2006, 23:18   #79
TP-Newbie
 
Registriert seit: Mar 2006
vindiesel macht alles soweit korrekt
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 (06.03.2006 um 23:20 Uhr).
vindiesel ist offline   Mit Zitat antworten
Alt 07.03.2006, 05:54   #80
TP-Greis
 
Benutzerbild von steff11
 
Registriert seit: Aug 2002
Ort: Hochfranken
steff11 lebt für das TP und seine Usersteff11 lebt für das TP und seine Usersteff11 lebt für das TP und seine Usersteff11 lebt für das TP und seine Usersteff11 lebt für das TP und seine Usersteff11 lebt für das TP und seine Usersteff11 lebt für das TP und seine Usersteff11 lebt für das TP und seine Usersteff11 lebt für das TP und seine User
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
steff11 ist offline   Mit Zitat antworten
Alt 07.03.2006, 08:39   #81
TP-Newbie
 
Registriert seit: Mar 2006
vindiesel macht alles soweit korrekt
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.
vindiesel ist offline   Mit Zitat antworten
Alt 07.03.2006, 09:42   #82
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
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
Stuck Mojo ist offline   Mit Zitat antworten
Alt 06.04.2006, 00:18   #83
TP-Veteran
 
Benutzerbild von fettmme
 
Registriert seit: Feb 2002
fettmme bringt sich richtig einfettmme bringt sich richtig ein
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:
__________________
class GetProfileCustomerEntityReceiverInformationReceiverAndProgrammingInforma...{
public function __construct(){ if(!$this) die(' '); } }
http://www.thedailywtf.com/

Geändert von fettmme (06.04.2006 um 00:27 Uhr).
fettmme ist offline   Mit Zitat antworten
Alt 18.06.2006, 16:25   #84
TP-Moderator
 
Benutzerbild von His.Master's.Voice
 
Registriert seit: Mar 2006
His.Master's.Voice ist ein richtiges Arbeitstier - DANKEHis.Master's.Voice ist ein richtiges Arbeitstier - DANKEHis.Master's.Voice ist ein richtiges Arbeitstier - DANKEHis.Master's.Voice ist ein richtiges Arbeitstier - DANKEHis.Master's.Voice ist ein richtiges Arbeitstier - DANKEHis.Master's.Voice ist ein richtiges Arbeitstier - DANKE
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
__________________

His.Master's.Voice ist offline   Mit Zitat antworten
Alt 06.08.2006, 17:12   #85
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE
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
Boris ist offline   Mit Zitat antworten
Alt 11.08.2006, 22:10   #86
TP-Supporter
 
Registriert seit: Dec 2005
[jacky] ist auf einem guten Weg
Ahahaha, wie geil ist das denn
[jacky] ist offline   Mit Zitat antworten
Alt 07.11.2006, 15:19   #87
TP-Junior
 
Benutzerbild von downhill
 
Registriert seit: Apr 2006
downhill macht alles soweit korrekt

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>
downhill ist offline   Mit Zitat antworten
Alt 07.05.2007, 18:20   #88
TP-Insider
 
Benutzerbild von MuschPusch
 
Registriert seit: May 2002
Ort: Niederlande
MuschPusch ist auf einem guten Weg
Es gibt auch zwei patches für php:

http://www.lancs.ac.uk/~steveb/patch...-header-patch/
http://www.lancs.ac.uk/~steveb/patch...ipients-patch/
MuschPusch ist offline   Mit Zitat antworten
Alt 24.01.2008, 18:49   #89
TP-Moderator
 
Benutzerbild von Peter
 
Registriert seit: Nov 2001
Ort: Vienna
Peter hilft, wo's gehtPeter hilft, wo's gehtPeter hilft, wo's geht
Hallo,
Mein E-Mail sieht so aus:

Zitat:
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
Peter ist offline   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 »

LinkBacks (?)
LinkBack to this Thread: http://www.traum-projekt.com/forum/19-traum-dynamik/71139-fyi-email-injection.html
Erstellt von For Type Datum
Artfiles Supportboard | Druckvorschau: Spamschutz bei Formularen | Seite 1 This thread Refback 09.08.2007 20:46
SELFPHP Forum - Spam-Versand über Kontaktformular (PHP-Skript) verhindern This thread Refback 26.10.2006 08:49
Spam-Versand über Kontaktformular (PHP-Skript) verhindern - SELFPHP Forum This thread Refback 10.10.2006 04:01

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu