/* -------------------------------------------------------- [N]eo [S]ecurity [T]eam [NST]® - Advisory #08 - 29/02/05 -------------------------------------------------------- Program: phpBB 2.0.13 Homepage: http://www.phpbb.com Vulnerable Versions: phpBB 2.0.13 & Lower versions Risk: Low Risk Impact: bbcode, smilies, and html not bad filtered en usercp_register.php phpBB 2.0.13 Bad filtered in usercp_register.php --------------------------------------------------------- - Description --------------------------------------------------------- phpBB is an Open Source project that is developed of a big comunnity of programmers. It has suport for a lot of databases, like Oracle, MSSQL, MySql, PostGres, etc, and is one of the more useds precompilateds packages. - Tested --------------------------------------------------------- I tested this bug in localhost and other forums - Explotation --------------------------------------------------------- The bad code is in the usercp_register.php file. The next part of the code is the vulnerable: $allowhtml = ( isset($HTTP_POST_VARS['allowhtml']) ) ? ( ($HTTP_POST_VARS['allowhtml']) ? TRUE : 0 ) : $board_config['allow_html']; $allowbbcode = ( isset($HTTP_POST_VARS['allowbbcode']) ) ? ( ($HTTP_POST_VARS['allowbbcode']) ? TRUE : 0 ) : $board_config['allow_bbcode']; $allowsmilies = ( isset($HTTP_POST_VARS['allowsmilies']) ) ? ( ($HTTP_POST_VARS['allowsmilies']) ? TRUE : 0 ) : $board_config['allow_smilies']; If we specify a variable in the html code (any type: hidden, text, radio, check, etc) with the name allowhtml, allowbbcode or allowsmilies, is going to be on the html, bbcode and smilies in our signature. But this only works for private messages. In the topics our signature is going to be filtered, but no in the private messages. - Exploit --------------------------------------------------------- 1 - Copy the html code of the registration page of the vulnerable forum. 2 - Change the form action to the path of the forum and profile.php. Example: http://phpbb.com/phpBB2/profile.php 3 - Add the variable for to enable the bbode, htmlcode or smilies (if they're not) in your private messages. Example: 4 - With your html registration page (modified) you have to register any user with some html code in the signature for test this bug. - Solutions -------------------------------------------------------- At this date there is not any update, but we can change the code of the file usercp_register.php Vulnerable: $allowhtml = ( isset($HTTP_POST_VARS['allowhtml']) ) ? ( ($HTTP_POST_VARS['allowhtml']) ? TRUE : 0 ) : $board_config['allow_html']; $allowbbcode = ( isset($HTTP_POST_VARS['allowbbcode']) ) ? ( ($HTTP_POST_VARS['allowbbcode']) ? TRUE : 0 ) : $board_config['allow_bbcode']; $allowsmilies = ( isset($HTTP_POST_VARS['allowsmilies']) ) ? ( ($HTTP_POST_VARS['allowsmilies']) ? TRUE : 0 ) : $board_config['allow_smilies']; Fixed: $allowhtml = ( $board_config['allowhtml']) ) ? TRUE : 0; $allowbbcode = ( $board_config['allowbbcode']) ) ? TRUE : 0; $allowsmilies = ( $board_config['allowsmilies']) ) ? TRUE : 0; - References -------------------------------------------------------- http://neosecurityteam.tk/index.php?pagina=advisories&id=8 - Credits ------------------------------------------------- Discovered by Paisterist [N]eo [S]ecurity [T]eam [NST]® - http://neosecurityteam.tk/ Any Question? paisterist.nst[at]gmail[dot]com Irc.InfoGroup.cl #neosecurityteam - Greetz -------------------------------------------------------- Hackzatan T0wn3r Crashcool Daemon21 Merlin Maxx Arcanhell @@@@'''@@@@'@@@@@@@@@'@@@@@@@@@@@ '@@@@@''@@'@@@''''''''@@''@@@''@@ '@@'@@@@@@''@@@@@@@@@'''''@@@ '@@'''@@@@'''''''''@@@''''@@@ @@@@''''@@'@@@@@@@@@@''''@@@@@ */