Не веб-безопасностью единой или почему не стоит забывать про окружение

Безопасность. Нет, неправильно. Нужно так: Веб-безопасность! Сайт защищен от всех веб-атак. На сайте нет XSS, CSRF, PHP- & SQL-injection. Скрипт один — браузерный файл-менеджер. Никаких дырок в веб-безопасности, которые помогли бы выполнить какие-то действия на сервере, запустить произвольный php-скрипт или украсть пароль администратора. Все протестировано на *nix-системах. А вот на Windows сломали. Самое обидное, что это даже не баг и не дырка системы, а просто фича, недокументированная возможность. Просто ввели встроку волшебный набор символов в текстовое поле... Нет, это не страшная особенность Windows, позволяющая удаленно исполнять код.

Началась эта история с того, что я увлекся сканированием сети своего провайдера на наличие расшаренных ресурсов. То попадутся базы 1С, то какой-то веб-сервер или админка модема, то пароли от вконтакте и прочих сайтов. Можно было что-то наскребти и что-то с этим сделать, но это добро просто лежало у меня долгое время, после чего я его удалил. И однажды я заметил веб-сервер на котором лежала куча фильмов. А еще был «домашний» каталог, в котором можно было редактировать и удалять файлы. Я попробовал переместиться на уровень выше: \.. … Не получилось. И тогда я вспомнил про свои недавние эксперементы с windows и её файловой системой. Ввел определенную комбинацию символов... и попал прямо в корень «сайта». И я по прежнему мог редактировать файлы.

Я быстро переписал ауторизацию под себя — и вуаля, теперь я еще и администратор. Теперь я мог подключить любой каталог на сервере как репозитарий и удобно работать с ним из браузера. Разведка показала, что сервер по совместительству является персональным ПК, пользователь которого работал под администратором. Ну и, естественно, у php не было никаких ограничений на исполнение команд. Захади, дарагой, бери что хочешь! Я быстренько написал текстовой файл с предупреждением о дыре и ушел... Также я написал письмо разработчикам о найденной «дырке». Через несколько месяцев я обнаружил этот сервер и опять смог получить доступ к системе. Ну ладно, речь не об этом.

Тем самым дырявым скриптом оказался довольно известный AjaXplorer. А вот особенность работы Windows с файловой системой интересна. Как все мы знаем, нельзя создать каталоги con, com1, lpt1, nul и другие. Но помимо этого «нельзя» создать каталог с одной-двумя точками в конце. Каталог создается, но без точек в названии. А вот из консоли (cmd.exe) можно выполнить команду “mkdir abc..\” и такой каталог будет создан. Но без последней точки. Т. е. нужно поставить еще одну лишнюю точку. Пытаемся зайти в такой каталог — невозможно. А теперь создадим каталог ”abc”. Заходим в него, создаем файл. После пытаемся зайти в каталог “abc.”... и попадаем в каталог abc. Забавно, да? А что будет, если создать каталог только из точек? Сказано — сделано. Получили каталог “...” (три точки). Попытаемся в него зайти, к примеру, из Total Commander'а... и вылетам в корень диска. А вот на AjaXplorer это подействовало немного по-другому — был переход на уровень выше.

Уязвимость, будучи найденной в версии 2.3.9, работает и  в версии 2.5.4, несмотря на отправленное разработчикам письмо.

Позднее я повторил взлом (но уже на своем веб-сервере) и записал видео. Также в видео показан принцип защиты windows-системы без редактирование исходного кода.


Помните: программист должен всегда ожидать неправильного ввода и неправильной работы софта (компилятора, интерпретатора, веб-сервера, ОС). Задача программиста заключается в том, чтобы его приложение, не смотря ни на что, работало правильно. Лучше лишний раз перестраховаться.

Внимание! Информация, приведенная в этой статье, предназначена лишь для ознакомления и не должна использоваться для действий, нарушающих законодательства любых стран!

1 комментарий:

dairaabar 5 марта 2022 г. в 18:00 #

sugarboo extra long digital titanium styler
T-Shirts with titanium plumbing tags: sugarboo extra 2014 ford fusion energi titanium long digital titanium, yellow, yellow, white, titanium strength yellow, yellow. T-Shirts with tags: sugarboo samsung watch 3 titanium extra long digital titanium, yellow, yellow, red, 2016 ford focus titanium green,