Mailbombing möglich...

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
TK
Mitglied
Beiträge: 70
Registriert: 28.11.2004 14:08
Wohnort: Bremen
Kontaktdaten:

Mailbombing möglich...

Beitrag von TK »

Ich habe eine Art "Sicherheitslücke" entdeckt, mit der jeder Besucher eines phpBB-Forums die Mitglieder mit (internem) Mailbombing nerven kann:

Wenn man bei "Login" auf "Ich habe mein Passwort vergessen!" klickt, kann man sich ein neues Passwort zusenden lassen. Diese an sich nützliche Funktion kann aber auch missbraucht werden: Jeder kann da einen Benutzernamen eingeben und die passende E-Mail-Adresse. Es klappt natürlich nicht bei Mitgliedern mit "versteckter" E-Mail-Adresse. Aber viele Mitglieder haben im Profil angegeben, dass jeder Besucher die E-Mail-Adresse einsehen kann. Und eben jene Mitglieder können "angegriffen" werden, denn es gibt im phpBB wohl keine Schutzmaßnahme, die Anzahl dieser Zustellungen zu kontrollieren oder ein Zeitintervall zwischen den Versuchen zu bestimmen. So könnte z.B. ein Script-Kiddie theoretisch innerhalb kürzester Zeit mehrere Tausend Passwort-E-Mails auslösen und die E-Mail-Postfächer der entsprechenden Mitglieder lahmlegen oder zumindest zumüllen...

Natürlich könnte man "Workarounds" anwenden, indem man z.B. die Möglichkeit der Anzeige der E-Mail-Adresse unterbindet oder die Memberlist nur für registrierte Mitglieder sichtbar macht (aber selbst dann könnte auch ein Mitglied das immer noch anonym tun) oder sogar die Funktion des neuen-Passwort-Zuschickens komplett deaktiviert, aber ich würde es besser finden, wenn man dieses Problem bzw. vielmehr dieses Gefahrenpotenzial anders (=sauberer) lösen könnte... Z.B. durch ein Intervallschutz oder ähnlichem...

Jemand eine Idee, wie man sowas umsetzen könnte?

Bis auf weiteres sehe ich persönlich mich gezwungen, das automatische Neue-Passwort-Verschicken zu deaktieren, was ich wie folgt umgesetzt habe:

Code: Alles auswählen

--- Öffne includes/usercp_sendpasswd.php ---

--- Finde: ---

if ( isset($HTTP_POST_VARS['submit']) )

--- Füge DAVOR ein: ---

message_die(GENERAL_MESSAGE, 'Aus Sicherheitsgründen ist diese Funktion bis auf weiteres deaktiviert.<br /><br />Falls du dein Passwort vergessen haben solltest, schick bitte eine E-Mail an <a href=\'mailto:xxx@domain.TLD\'>xxx@domain.TLD</a> und schildere darin dein Problem.<br />Der Administrator wird dir dann ein neues vorläufiges Passwort per E-Mail schicken, allerdings <b>nur</b> an die aktuell gültige E-Mail-Adresse, die du in deinen Profil-Einstellungen angegeben hast. Um Missbrauch zu vermeiden, wird der Administrator <b>kein</b> Passwort an eine andere E-Mail-Adresse verschicken, selbst wenn er darum gebeten werden sollte!');

--- Speichern und hochladen ---
Meine Signatur war zu groß und wurde deshalb gelöscht - Siehe phpBB.de-Knigge
Benutzeravatar
Schumi
Ehemaliges Teammitglied
Beiträge: 4925
Registriert: 07.10.2002 12:37

Beitrag von Schumi »

Ich würde nicht sagen, dass es sich um ein direktes Problem von phpBB handelt.
Wenn die Mail-Adresse öffentlich zugänglich ist, gibt es tausende Möglichkeiten, jemanden mit Mails zu belästigen. Die Möglichkeit, dies über diese Passwort-Funktion zu tun, ist die aufwendigste, die mit im Moment einfällt. Ein Script-Kiddy würde sich einfach ein kleines Script bauen, dass die Mails selbstständig verschickt. Der Zeitaufwand wäre ansonsten viel zu hoch.

Und bisher habe ich auch noch nie gehört, dass es damit Probleme gibt. Den gleichen Spaß könnte man sich auch mit Zusenden und anschließendem Löschen von PNs machen...
Benutzeravatar
TK
Mitglied
Beiträge: 70
Registriert: 28.11.2004 14:08
Wohnort: Bremen
Kontaktdaten:

Beitrag von TK »

Aber letzteres können nur angemeldete Mitglieder machen, während das mit dem neuen Passwort auch Gäste machen können.

Und ein anderes Problem wäre ja auch, dass die Massen-E-Mails vom Board selbst aus verschickt würden, und es so schwieriger wäre, den Urheber herauszufinden...

Gut, man kann sich über den "Sinn" streiten, aber ich habe jetzt eine (für mich zufriedenstellende) Lösung gefunden:

Ich habe in mein Board eingebaut, dass je Mitglied nur noch alle 24 Stunden eine E-Mail mit einem neuen vorläufigen Passwort angefordert werden kann.

Folgende Änderungen haben dafür schon gereicht, um diesen Schutz einzubauen:

Code: Alles auswählen

------ SQL-Anweisung: (auf Richtigkeit des Präfix phpbb_ achten!) ------
ALTER TABLE `phpbb_users` ADD `user_lastpwretr` INT( 11 ) DEFAULT '0' NOT NULL ;


------ Öffne includes/usercp_sendpasswd.php ------

--- Finde: ---
$sql = "SELECT user_id, username, user_email, user_active, user_lang

--- ERSETZE mit: ---
$sql = "SELECT user_id, username, user_email, user_active, user_lang, user_lastpwretr


--- Finde: ---
$username = $row['username'];

--- Füge DAVOR ein: ---
			if ( ($row['user_lastpwretr'] + 86400) > time() )
			{
				message_die(GENERAL_MESSAGE, '<b>Dir wurde bereits innerhalb der letzten 24 Stunden eine E-Mail mit einem neuen vorläufigen Passwort geschickt!</b><br />Bitte schau in dein E-Mail-Postfach nach dieser E-Mail und betätige den darin enthaltenen Aktivierungslink und logge dich danach mit dem in der E-Mail angegebenen vorläufigen Passwort ein.<br /><br />Aus Sicherheitsgründen kann nur einmal in 24 Stunden ein neues vorläufiges Passwort über dieses Formular angefordert werden.<br /><br /><br />Falls es weiterhin Probleme geben sollte, kontaktiere bitte den Administrator per E-Mail unter <b><a href=\'mailto:XXX@DOMAIN.TLD\'>XXX@DOMAIN.TLD</a></b> und schildere darin dein Problem.');
			}


--- Finde: ---
SET user_newpasswd = '" . md5($user_password) . "', user_actkey = '$user_actkey'

--- ERSETZE mit: ---
SET user_newpasswd = '" . md5($user_password) . "', user_lastpwretr = '" . time() . "', user_actkey = '$user_actkey'


------ Speichern und hochladen ------


P.S.: Wenn man einen anderen Schutzintervall als 24 Stunden benutzen will, muss man nur den Wert 86400 dementsprechend abändern (Zeit in Sekunden)
Meine Signatur war zu groß und wurde deshalb gelöscht - Siehe phpBB.de-Knigge
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“