Vulnerabilidad en BBcode

Instalación, actualizaciones, aplicación de mods... Todo lo que necesitas saber sobre los Foros phpBB para gestionarlos en tu sitio web.

Moderadores: fabriciano, randy

Vulnerabilidad en BBcode

Notapor fabriciano » 11-09-2003 20:48

Los gurús de phpBB han descubierto una grave vulnerabilidad en el BBcode, referido a la etiqueta [url]. Es conveniente que todos los que tienen sus foros funcionando en las últimas versiones instalen el patch, tal como se explica en el siguiente tema:

http://www.phpbb.com/phpBB/viewtopic.php?t=135116.
Fabriciano González González
Webmaster de Batiburrillo.net
Avatar de Usuario
fabriciano
Administrador
 
Mensajes: 10378
Registrado: 04-09-2001 16:34
Ubicación: Lugo



Notapor Tom » 17-09-2003 12:38

Lo podrías traducir es que no lo entiendo :(
Avatar de Usuario
Tom
Senior
 
Mensajes: 45
Registrado: 07-05-2003 20:00
Ubicación: Barranquilla, Colombia

Notapor fabriciano » 17-09-2003 17:19

Abres el archivo includes / bbcode.php y localizas:
Código: Seleccionar todo
$bbcode_tpl['url4'] = str_replace('{URL}', 'http://\\1', $bbcode_tpl['url']);
   $bbcode_tpl['url4'] = str_replace('{DESCRIPTION}', '\\5', $bbcode_tpl['url4']);

Lo reemplazas por:
Código: Seleccionar todo
$bbcode_tpl['url4'] = str_replace('{URL}', 'http://\\1', $bbcode_tpl['url']);
   $bbcode_tpl['url4'] = str_replace('{DESCRIPTION}', '\\3', $bbcode_tpl['url4']);

Localizas a continuación:
Código: Seleccionar todo
// 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'];

Lo reemplazas por:
Código: Seleccionar todo
// 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'];

Localizas ahora:
Código: Seleccionar todo
// 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);

Lo reemplazas por:
Código: Seleccionar todo
//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);

Guardas el archivo, después de haber hecho los cambios y lo subes a tu ordenador.
Fabriciano González González
Webmaster de Batiburrillo.net
Avatar de Usuario
fabriciano
Administrador
 
Mensajes: 10378
Registrado: 04-09-2001 16:34
Ubicación: Lugo

Notapor jaga » 28-10-2004 03:29

los que tenemos la version 2.10, también lo tenemos que actualizar.
Avatar de Usuario
jaga
Senior
 
Mensajes: 41
Registrado: 28-10-2004 03:26
Ubicación: Cádiz

Notapor randy » 28-10-2004 04:11

¿¿¿¿¿¿¿¿¿¿????????????
Avatar de Usuario
randy
Veterano
 
Mensajes: 258
Registrado: 31-05-2004 20:42
Ubicación: Uruguay

Notapor jaga » 28-10-2004 04:19

Randy, me refiero que yo por ejemplo tengo la versión 2.0.10, esta ya lo trae corregido, o se lo tengo que hacer yo.

Salu2
Avatar de Usuario
jaga
Senior
 
Mensajes: 41
Registrado: 28-10-2004 03:26
Ubicación: Cádiz

Notapor fabriciano » 28-10-2004 09:53

Ya está corregida la vulnerabilidad en la versión 2.0.10.

Un saludo.
Fabriciano González González
Webmaster de Batiburrillo.net
Avatar de Usuario
fabriciano
Administrador
 
Mensajes: 10378
Registrado: 04-09-2001 16:34
Ubicación: Lugo

Notapor jaga » 28-10-2004 12:46

Gracias
Avatar de Usuario
jaga
Senior
 
Mensajes: 41
Registrado: 28-10-2004 03:26
Ubicación: Cádiz


Volver a Foros phpBB (Versión 2)


cron