Warum sind " in Benutzernamen erlaubt?

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
"..."
Mitglied
Beiträge: 2
Registriert: 24.11.2005 19:58

Warum sind " in Benutzernamen erlaubt?

Beitrag von "..." »

Der Fehler liegt anscheinend (s. meinen Benutzernamen, mit dem ich mich sogar hier registrieren konnte) im Standard-Code, obwohl im selbigen solche Benutzernamen mit " eigentlich nicht möglich sein sollten...

In functions_validate.php soll das nämlich wie folgt verhindert werden:

Code: Alles auswählen

	// Don't allow " and ALT-255 in username.
	if (strstr($username, '"') || strstr($username, '"') || strstr($username, chr(160)))
	{
		return array('error' => true, 'error_msg' => $lang['Username_invalid']);
	}
Warum aber funktioniert das augenscheinlich nicht? Fehler in meiner .php-Datei kann ich wohl ausschließen, weil das Problem ja auch hier besteht... :roll:


(Anmerkung: Erlaubt sollen " wohl deswegen nicht sein, weil damit ein potentielles Sicherheitsrisiko durch SQL-Injection besteht oder andere ungewollte "Code-Erweiterungen" in PHP oder auch Javascript möglich sein könnten, vor allem bei unsauber geschriebenen MODs, die den Usernamen dahingehend evtl. nicht korrekt "absichern"...)
Benutzeravatar
mad-manne
Ehemaliges Teammitglied
Beiträge: 5403
Registriert: 18.03.2005 10:00
Wohnort: Marl im Ruhrgebiet

Beitrag von mad-manne »

... fürwahr ein interessantes Phänomen :roll:

Hatte deinen "schrägen" Usernamen hier sofort entdeckt und geforscht.

Man kann z.B. auch nicht von deinem Profil aus, die Beiträge von dir finden, da da wohl die " vor stehen!
Am besten sollte mal einer der admins dich umbenennen bevor dadurch tatsächllich Probleme entstehen :o

Das Problem an sich ist aber definitv erforschenswert,

Gruss erstmal,
Manne.
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
Benutzeravatar
kellanved
Mitglied
Beiträge: 570
Registriert: 05.02.2005 15:15
Wohnort: Berlin

Beitrag von kellanved »

Okay, das ist ein Bug.


Das Problem ist, daß mittlerweile der Nutzername die doppelte htmlspecialchars Behandlung bekommt. '"' wird zu """, was nicht überprüft wird.

Dir gebührt die Ehre einen Bericht auf http://www.phpbb.com/bugs/ zu posten.
Bitte keine Supportanfragen via PM
Christian_W
Ehemaliges Teammitglied
Beiträge: 5703
Registriert: 26.02.2004 00:09

Beitrag von Christian_W »

Also mal Schritt für Schritt:
Eingegebener Name: "..."
Daraus wird beim absenden: \"...\"
Das wird in der usercp_register.php hier zur Variable $username:

Code: Alles auswählen

	$strip_var_list = array('username' => 'username', 'email' => 'email', 'icq' => 'icq', 'aim' => 'aim', 'msn' => 'msn', 'yim' => 'yim', 'website' => 'website', 'location' => 'location', 'occupation' => 'occupation', 'interests' => 'interests');
	$strip_var_list['confirm_code'] = 'confirm_code';

	// Strip all tags from data ... may p**s some people off, bah, strip_tags is
	// doing the job but can still break HTML output ... have no choice, have
	// to use htmlspecialchars ... be prepared to be moaned at.
	while( list($var, $param) = @each($strip_var_list) )
	{
		if ( !empty($HTTP_POST_VARS[$param]) )
		{
			$$var = trim(htmlspecialchars($HTTP_POST_VARS[$param]));
		}
	}
In $username steht dann das hier: \"...\"

Dann kommt das Teil in die Funktion validate_username() welche gleich am Anfang die Funktion phpbb_clean_username() bemüht. Diese sieht bekanntlich so aus:

Code: Alles auswählen

function phpbb_clean_username($username)
{
	$username = substr(htmlspecialchars(str_replace("\'", "'", trim($username))), 0, 25);
	$username = phpbb_rtrim($username, "\\");
	$username = str_replace("'", "\'", $username);
	return $username;
}
Da hier wieder htmlspecialchars() benutzt wird sieht die Variable dann so aus: \"...\"
Und darauf passt die if-Abfrage dann nicht mehr.
Das ist die Ursache. Ob das ein Problem ist: Keine Ahnung. :-?
Das Profil-Problem betrifft die normale Suche z.B. nicht: http://www.phpbb.de/search.php?search_author=%22...%22

Gruß Christian
---
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Ich denke, dass das eher eine Altlast ist. Da wurde mal vor einiger Zeit etwas rumgebogen...
Kritisch wird's nur dann, wenn dadurch der Benutzername zu lang wird.

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17476
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Sorry, aber ich habe mir gerade das Profil von "..." angesehen und habe dort auf den Link "Alle Beiträge von "..." anzeigen" geklickt.

Es wurde dann folgender Link kreiert:

http://www.phpbb.de/search.php?search_a ... %26quot%3B

Damit ist die Suche überfordert und findet: Nichts.
Benutzeravatar
md5()
Mitglied
Beiträge: 186
Registriert: 27.10.2003 20:48
Wohnort: Holzweissig
Kontaktdaten:

Beitrag von md5() »

*gg* da isses woll besser und etwa sicherer wenn man nur Bustaben und Zahlen erlaubt *gg*
Benutzeravatar
mad-manne
Ehemaliges Teammitglied
Beiträge: 5403
Registriert: 18.03.2005 10:00
Wohnort: Marl im Ruhrgebiet

Beitrag von mad-manne »

Ich denke Christian meinte die "normale" Suche nach dem Autor ...

Wenn du da einfach "..." eingibst geht es tatsächlich , aber wie auch ich schon bemekrt habe: der Suchlink aus dem Profil führt ins Leere 8)

Gruss,
Manne.
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
Christian_W
Ehemaliges Teammitglied
Beiträge: 5703
Registriert: 26.02.2004 00:09

Beitrag von Christian_W »

Eigentlich meinte ich es genauso wie Manne es beschreibt.

Wo ich jetzt aber darüber nachdenke, betrifft es die Suche überhaupt nicht sondern nur die Erzeugung des Suchlinks im Profil. (Was natürlich trotzdem ein Bug ist)

Gruß Christian
---
Benutzeravatar
Mihil
Mitglied
Beiträge: 1355
Registriert: 07.05.2005 20:09

Beitrag von Mihil »

@"...": Sieht wohl doch noch einem Bug aus, du solltest ihn unter http://www.phpbb.com/bugs/ melden. :wink:
Antworten

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