[MajorSecurity #23] BLOG:CMS <= 4.0.0j - XSS and cookie disclosure ------------------------------------------------------------------- Software: BLOG:CMS Version: 4.0.0j Type: Cross site scripting Made public: July, 22th 2006 Vendor: F-ART AGENCY, Ltd. - Radek Hulán Page: http://blogcms.com/ Credits: ---------------------------------------------- Discovered by: David Vieira-Kurz http://www.majorsecurity.de Original Advisory: ---------------------------------------------- http://www.majorsecurity.de/advisory/major_rls23.txt Affected Products: ---------------------------------------------- BLOG:CMS 4.0.0j and prior Description: ---------------------------------------------- BLOG:CMS is the most complete, feature-packed, personal publishing system on the market, developed by Radek Hulán. It includes state-of-the-art weblog, forum, wiki engine, news aggregator (atom /rss), and photo gallery. Requirements: ---------------------------------------------- register_globals = On Vulnerability: ---------------------------------------------- Input passed directly to the "id" parameter is not properly sanitised before being returned to the user. This can be exploited to execute arbitrary HTML and script code in a user's browser session in context of an affected site. It works with a script code like this: >'><script>alert('MajorSecurity')</script><!-- Solution: ---------------------------------------------- Edit the source code to ensure that input is properly sanitised. You should work with "htmlspecialchars()" or "htmlentities()" php-function to ensure that html tags are not going to be executed. You should also work with the "intval()" php-function to ensure that the input is numeric. Example: <?php $pass = htmlentities($_POST['pass']); echo htmlspecialchars("<script"); $id = intval($_POST['id']); ?> Set "register_globals" to "Off".