Bugtraq mailing list archives

Kayako liveResponse Multiple Vulnerabilities


From: GulfTech Security Research <security () gulftech org>
Date: Sat, 30 Jul 2005 08:03:38 -0500

##########################################################
# GulfTech Security Research             July 30th, 2005
##########################################################
# Vendor  : Kayako Web Solutions
# URL     : http://www.kayako.com/
# Version : Kayako liveResponse v2.x
# Risk    : Multiple Vulnerabilities
##########################################################



Description:
Kayako liveResponse is a web based application aimed at providing live
support for websites and businesses. There are a number of vulnerabilities
in Kayako liveResponse that range from Cross Site Request Forgeries, Cross
Site Scripting, Information Disclosure, Script Injection, and SQL Injection
vulnerabilities which can lead to disclosure of sensitive data. Users are
suggested to update as soon as a secured version becomes available.



Cross Site Scripting:
Cross site scripting exists in Kayako liveResponse. This vulnerability exists
due to user supplied input not being checked properly. Below is an example.

http://host/index.php?username=";><script>alert(document.cookie)</script>

This vulnerability could be used to steal cookie based authentication
credentials within the scope of the current domain, or render hostile code
in a victim's browser.



SQL Injection:
Kayako liveResponse is prone to SQL Injection in a number of places within the calendar feature Below are some examples of url's that could be used to take
advantage of these vulnerabilities.

http://host/index.php?date=22&month=3&year=2005%20UNION%20SELECT%200,0,0,0,0,0,
username,pass%20FROM%20lrUsers%20WHERE%201/*&_g=2&_a=panel&_m=cal

http://host/index.php?date=22%20UNION%20SELECT%200,0,0,0,0,0,username,pass%20
FROM%20lrUsers%20WHERE%201/*&month=3&year=2005&_g=2&_a=panel&_m=cal

These issues can be used to read arbitrary contents of the database such as
usernames and password hashes.



Script Injection Vulnerability:
When entering a session or sending the support staff a message, a malicious user may input script or html in the place of their name and have it executed in the context of the browser of a victim. This could be used to execute malicious client side code, or can be used in combination with csrf issues, amongst other things. This issue can also result in a Denial Of Service of sorts. If an attacker sends a message to the support staff with some junk code, it will render the form to manage messages useless and the victim will have to remove the faulty message manually via
the database.



Plaintext Password Disclosure:
When logging in and directly starting a session liveResponse will send you to a
url that may look something similar to this.

http://host/index.php?_a=staffsession&_m=start&login=1&username=admin&password=james

As we see, the admin password is in plain text and can be retrieved very easily locally, and can possibly be retrieved remotely. It is never a good idea to send, receive, or execute sensitive actions via the GET method as specified in RFC 2616
Section 9.1.1 entitled "Safe Methods".




Path Disclosre:
You can disclose the full physical path of the liveResponse installation by requesting
any number of include scripts directly.

http://host/addressbook.php

Above is just one of MANY examples. While this may not be a real security issue in itself, it definitely helps an attacker gather all the info he can about your webserver.



Solution:
The lead Kayako developers were informed of these issues back in March 2005 which is more than four months ago. The developers asked for three months to fix the issues, but it has been much longer than that, and as far as I know there has been no security
announcement or official update from the Kayako developers.



Related Info:
The original advisory can be found at the following location
http://www.gulftech.org/?node=research&article_id=00092-07302005



Credits:
James Bercegay of the GulfTech Security Research Team


Current thread: