Уловия выполнения атаки на сайт:
- Паблик скрипт или атакующему известен файл, где храняться данные вводимые пользователями
- Возможность записи пользователями текстовых данных (Статусы, сообщения, ссылки, группы друзей и т.д.)
- Отсутствие фильтрации до записи в файл с данными
Выполнение всех вышеперечисленных условий позволяет атакующему записать в файл с известным ему адресом произвольный php код.
Вторая часть атаки - обход фильтра на открытие только .php файлов. Для того используется несуществующее имя файла для web-сервера + параметры скрипта-wrapper'а, чтобы переопределить открываемый файл на "не-PHP"
Code
/php/[любой набор знаков].php?___scriptdir=[папка файла]/&___script=[имя файла]
Пример:
На сайте naruto-best.ru стоит скрипт статуса пользователя. У меня установлен статус:
Теперь переходим по адресу:
Code
http://naruto-best.ru/php/a.php?___scriptdir=status/&___script=base.dat
Данные возвращаются в json формате, поэтому для просмотра результата нужно его сначала декодировать.
Итог:
Временное решение:
Исправляйте скрипты, стоящие на ваших сайтах, чтобы данные фильтровались до запись в файл с данными. Так же, не лишним будет переименовать файл с данными во что-нибудь сложноподбираемое.
Решение в идеале:
Запрет разработчиками uCoz переопределять параметры их wrapper'а