Seite 2 von 4

Verfasst: 10.09.2003 20:02
von Pyramide
Für die ganz faulen die offiziellen Änderungen als patch-file: http://www.phpbb.de/diverses/bbcode.diff

Verfasst: 11.09.2003 15:11
von Tuxman
wie baut man das ein?

Verfasst: 11.09.2003 15:24
von Henne
Die entsprechenden Teile ersetzen.

Verfasst: 11.09.2003 16:13
von fussle
entschuldigt bitte meine frage: gibt es eine möglichkeit zu testen ob das eingebaute korrekt funktioniert?

Verfasst: 11.09.2003 16:17
von codemonkey
Ja klar kann man das testen.
Poste in deinem Forum einfach mal diesen Code

Code: Alles auswählen

[url=http://www.phpBB.de" onclick="alert('Der Bug ist noch enthalten!!')]text[/url]
Wenn sich ein Java Script Fenster öffnet, ist der Bug noch drin, wenn wie hier bei uns der Code einfach hingeschrieben wird hat der einbau erfolgreich geklappt.

[url=http://www.phpBB.de" onclick="alert('Der Bug ist noch enthalten!!')]text[/url]

Verfasst: 11.09.2003 16:45
von fussle
super danke ;)

funktioniert bestens - bug entfernt

Verfasst: 11.09.2003 17:22
von Elvis
ich dachte der Bug soll auch in Version 2.0.6 sein ?

habe gerade mal den Code von oben bei mir getestet,
da steht nur Text also ist bei mir kein Bug oder sehe ich das falsch ?

Verfasst: 11.09.2003 17:29
von codemonkey
Also bei meiner ungefixten phpBB 2.0.6 Version wird per Link ein Java Script Fenster geöffnet.

Verfasst: 11.09.2003 21:36
von codemonkey
Für alle, die das ganze nochmal auf deutsch haben wollen.
Um den Bug aus eurem phpBB 2.0.6 zu entfernen folgt folgender Anweisung:

Suche in includes/bbcode.php

Code: Alles auswählen

$bbcode_tpl['url4'] = str_replace('{URL}', 'http://\\1', $bbcode_tpl['url']); 
   $bbcode_tpl['url4'] = str_replace('{DESCRIPTION}', '\\5', $bbcode_tpl['url4']);
Und ersetzte mit

Code: Alles auswählen

$bbcode_tpl['url4'] = str_replace('{URL}', 'http://\\1', $bbcode_tpl['url']); 
   $bbcode_tpl['url4'] = str_replace('{DESCRIPTION}', '\\3', $bbcode_tpl['url4']);
Suche weiterhin in der includes/bbcode.php

Code: Alles auswählen

// matches a [url]xxxx://www.phpbb.com[/url] code.. 
   $patterns[] = "#\[url\]([\w]+?://.*?[^ \"\n\r\t<]*?)\[/url\]#is"; 
   $replacements[] = $bbcode_tpl['url1']; 

   // [url]www.phpbb.com[/url] code.. (no xxxx:// prefix). 
   $patterns[] = "#\[url\]((www|ftp)\.([\w\-]+\.)*?[\w\-]+\.[a-z]{2,4}(:?[0-9]*?/[^ \"\n\r\t<]*)?)\[/url\]#is"; 
   $replacements[] = $bbcode_tpl['url2']; 

   // [url=xxxx://www.phpbb.com]phpBB[/url] code.. 
   $patterns[] = "#\[url=([\w]+?://.*?[^ \"\n\r\t<]*?)\](.*?)\[/url\]#is"; 
   $replacements[] = $bbcode_tpl['url3']; 

   // [url=www.phpbb.com]phpBB[/url] code.. (no xxxx:// prefix). 
   $patterns[] = "#\[url=((www|ftp)\.([\w\-]+\.)*?[\w\-]+\.[a-z]{2,4}(:?[0-9]*?/[^ \"\n\r\t<]*)?)\](.*?)\[/url\]#is"; 
   $replacements[] = $bbcode_tpl['url4'];
Und ersetzte mit

Code: Alles auswählen

// matches a [url]xxxx://www.phpbb.com[/url] code.. 
   $patterns[] = "#\[url\]([\w]+?://[^ \"\n\r\t<]*?)\[/url\]#is"; 
   $replacements[] = $bbcode_tpl['url1']; 

   // [url]www.phpbb.com[/url] code.. (no xxxx:// prefix). 
   $patterns[] = "#\[url\]((www|ftp)\.[^ \"\n\r\t<]*?)\[/url\]#is"; 
   $replacements[] = $bbcode_tpl['url2']; 

   // [url=xxxx://www.phpbb.com]phpBB[/url] code.. 
   $patterns[] = "#\[url=([\w]+?://[^ \"\n\r\t<]*?)\](.*?)\[/url\]#is"; 
   $replacements[] = $bbcode_tpl['url3']; 

   // [url=www.phpbb.com]phpBB[/url] code.. (no xxxx:// prefix). 
   $patterns[] = "#\[url=((www|ftp)\.[^ \"\n\r\t<]*?)\](.*?)\[/url\]#is"; 
   $replacements[] = $bbcode_tpl['url4'];
Suche ebenfalls in der includes/bbcode.php

Code: Alles auswählen

// matches an "xxxx://yyyy" URL at the start of a line, or after a space. 
   // xxxx can only be alpha characters. 
   // yyyy is anything up to the first space, newline, comma, double quote or < 
   $ret = preg_replace("#(^|[\n ])([\w]+?://.*?[^ \"\n\r\t<]*)#is", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $ret); 

   // matches a "www|ftp.xxxx.yyyy[/zzzz]" kinda lazy URL thing 
   // Must contain at least 2 dots. xxxx contains either alphanum, or "-" 
   // zzzz is optional.. will contain everything up to the first space, newline, 
   // comma, double quote or <. 
   $ret = preg_replace("#(^|[\n ])((www|ftp)\.[\w\-]+\.[\w\-.\~]+(?:/[^ \"\t\n\r<]*)?)#is", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $ret);
Und ersetzte mit

Code: Alles auswählen

//matches an "xxxx://yyyy" URL at the start of a line, or after a space. 
   // xxxx can only be alpha characters. 
   // yyyy is anything up to the first space, newline, comma, double quote or < 
   $ret = preg_replace("#(^|[\n ])([\w]+?://[^ \"\n\r\t<]*)#is", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $ret); 

   // matches a "www|ftp.xxxx.yyyy[/zzzz]" kinda lazy URL thing 
   // Must contain at least 2 dots. xxxx contains either alphanum, or "-" 
   // zzzz is optional.. will contain everything up to the first space, newline, 
   // comma, double quote or <. 
   $ret = preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r<]*)#is", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $ret);
Nun die Datei abspeichern und mit der auf dem Server vorhandenen includes/bbcode.php ersetzten.

Verfasst: 12.09.2003 01:00
von braini
!!! Warnung !!!

Ungepatchtes phpBB 2.04 -> Keine Problme mit allen (imho) auf Bugtraq erwähnten url-tag-vulnerabilities!!

Gepatche phpBB 2.04 -> Einige url-tag-vulnerabilities funktionieren!!!

Es kann natürlich sein das ich den Code falsch eingebaut habe oder das er für php BB 2.04 nicht geeignet ist!

Auch auf Bugtraq wurde, im Gegesatz zu phpBB.com ("(which also affects 2.0.4 and 2.0.5)"), nicht (wirklich) behauptet dass es auch auf phpBB 2.04 zutrifft!

Wer hat zu dieser Problematik Erfahrungen?