Vulnerability in BBCode - serious

Praat mee over van alles en nog wat!
Forumregels
Dit forum is voor alle zinnige gesprekken buiten phpBB om. Discussies en gesprekken over interessante onderwerpen.

Een nieuw onderwerp moet..:
  • uiteraard voldoen aan de algemene voorwaarden
  • niet passen in de gewone supportfora
  • interessante zijn voor het overgrote deel van onze gebruikers
  • een neutrale of positieve ondertoon hebben
  • anders zijn dan bestaande onderwerpen
Plaats reactie
Gebruikersavatar
DaMnNaTiOn
Berichten: 2555
Lid geworden op: 11 dec 2002, 18:29
Locatie: localhost
Contacteer:

Vulnerability in BBCode - serious

Bericht door DaMnNaTiOn » 11 sep 2003, 16:33

lastmodified.net

Gebruikersavatar
Stef
Berichten: 9080
Lid geworden op: 04 jun 2003, 20:47

Bericht door Stef » 11 sep 2003, 17:03

Mijn engels is niet zo goed dat ik het instaat ben om het te snappen. :P

Iemand? Kort Samengevat?

Gebruikersavatar
michaa113
Berichten: 1376
Lid geworden op: 29 mar 2003, 23:27
Locatie: Game Ville
Contacteer:

Bericht door michaa113 » 11 sep 2003, 19:56

van phpbb-nl.com:

Onlangs zijn wij op de hoogte gebracht van een beveiligingslek wat zich in phpBB 2.0.6. zit (tevens 2.0.5 en 2.0.4.). De fix staat hieronder beschreven.

In phpBB 2.0.4. is er een verandering gemaakt op de manier waarop de bbcode URL internetadressen matched. Dit is gedaan omdat er meerdere klachten waren over de vorige manier waarop dit altijd werkte. Nu blijkt dat de verandering van teveel restricties, naar te weinig restricties gegaan is, en dat er mogelijkheden zijn om via de URL tag op sommige manieren dingen te veroorzaken die niet geheel de bedoeling zijn

We adviseren al onze users dan ook bij deze, om de hieronder beschreven fix zo spoedig mogelijk uit te voeren.

Code: Selecteer alles

# 
#-----[ OPEN ]------------------------------------------ 
# 
includes/bbcode.php 

# 
#-----[ ZOEK ]------------------------------------------ 
# 

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

# 
#-----[ VERVANG DOOR ]------------------------------------------ 
# 

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

# 
#-----[ ZOEK ]------------------------------------------ 
# 

// 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']; 

# 
#-----[ VERVANG DOOR ]------------------------------------------ 
# 

// 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']; 

# 
#-----[ ZOEK ]------------------------------------------ 
# 

// 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); 


# 
#-----[ VERVANG DOOR ]------------------------------------------ 
# 

//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); 

# 
#-----[ SLUIT EN UPLOAD ]------------------------------------------ 
# 



Dit lost hoogstwaarschijnlijk het lek op. Mocht je van mening zijn nog steeds last te hebben van deze bug, laat het ons dan via pm weten, op een zo gedetailleerd mogelijke manier over wat er misgaat.


Dit is een verkort vertaalde versie van het verhaal zoals het op phpBB.com te lezen is.
http://www.phpbb.com/phpBB/viewtopic.php?t=135116 voor het complete verhaal, in het engels.

Bron ;) : http://www.phpbb-nl.com
Tijd weg geweest!
Maar ik BEN terug!

Gebruikersavatar
mosymuis
Berichten: 6940
Lid geworden op: 05 feb 2003, 14:00
Locatie: Amsterdam
Contacteer:

Bericht door mosymuis » 11 sep 2003, 20:29

Op wat voor manier kan dit "lek" dan misbruikt worden? Met welke gevolgen? Ik wil wel graag weten wát ik fix... :?

Gebruikersavatar
michaa113
Berichten: 1376
Lid geworden op: 29 mar 2003, 23:27
Locatie: Game Ville
Contacteer:

Bericht door michaa113 » 11 sep 2003, 20:39

kzal ff op phpbb.com kijken
Tijd weg geweest!
Maar ik BEN terug!

Gebruikersavatar
michaa113
Berichten: 1376
Lid geworden op: 29 mar 2003, 23:27
Locatie: Game Ville
Contacteer:

Bericht door michaa113 » 11 sep 2003, 20:40

A change was made to the way bbcode url matching is achieved around phpBB 2.0.4. This was done following complaints that our existing methods, as used in earlier releases of phpBB were too restrictive. Unfortunately the match went from too restrictive to too loose. This allows people to "break out" of the anchor href and insert arbitary markup, particularly event handling parameters. This can result in anything from "nuisance" posts to people exploiting cross-site issues to grab cookie data.
Tijd weg geweest!
Maar ik BEN terug!

Gebruikersavatar
mosymuis
Berichten: 6940
Lid geworden op: 05 feb 2003, 14:00
Locatie: Amsterdam
Contacteer:

Bericht door mosymuis » 11 sep 2003, 20:42

Dat is ernstig ja. Al denk ik niet dat 99,99% van het internettende volk ook maar een flauw id heeft hoe dit moet ;)

Gebruikersavatar
SuperNova
Berichten: 1293
Lid geworden op: 27 apr 2003, 00:23
Locatie: Barendrecht
Contacteer:

Bericht door SuperNova » 12 sep 2003, 16:52

Nee, maar probleem is, niet alle phpbb admins zitten op phpbb.com!
En dan zal er vast wel een of andere malafide personage die dat topic gelezen heeft dingen gaan proberen.. :x
-sorry, ik heb geen tijd meer voor phpBB-

Plaats reactie