########################################################## # 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="> 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