http://0 416d73.name                        0.6Crime on he ireГлавна    Контакты    РаботыБезопасность «Мозаика атак из за...
Но это ещ не вс . Не забываем про SSI. Тут тоже вс просто - hex-редактором вставляем что хотим и загружаем картинку с расш...
Nächste SlideShare
Wird geladen in …5
×

Mosaique by Arthur Gerkis @ax330d

1.165 Aufrufe

Veröffentlicht am

PHP image conversion filters bypass

0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.165
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
1
Aktionen
Geteilt
0
Downloads
8
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Mosaique by Arthur Gerkis @ax330d

  1. 1. http://0 416d73.name 0.6Crime on he ireГлавна Контакты РаботыБезопасность «Мозаика атак из загрузки картинок» 18 J ne, 11 При аудите веб-приложений, нередко в функционале присутствует загрузка картинок в профиль. Сегодня, казалось бы, никого не удивишь правилами хорошего тона безопасной загрузки и обработки картинок. Тем не менее, не всегда проверки оказываются достаточными, тем самым оставляя лазейки для злоумышленников. А недавно я наткнулся на не то, чтобы новую, но интересную комбинацию возможностей вкупе с разного рода ограничениями.Наиболее существенным ограничением в исследуемом приложении оказалось изменение размера картинок. Даже если картинка соответствует требуемымширине и высоте, то вс -равно она насильно прогоняетя через PHP функцию, тем самым сильно изменяя порядок и сами байты файла. В общем, ситуациятакова: допускаются картинки определ нного размера; только в определ нную папку; в приложении есть проверка картинки при помощи PHP-функции - действительно ли пользователь грузит картинку, а не что-либо другое; в итоге изменение ширины и высоты картинки;Через веб-интерфйес вс выглядит пуленепробиваемо, однако, бронежилет отказался не надетым на голову. Я набросал перловый скрипт, который делаетзапросы напрямую к приложению, и тут выяснилось, что картинки можно загружать с произвольным расширением. Думал, припишу PHP-расширение идело в шляпе, но не тут-то было. Сервер настроен так, что в папке картинок *.php и еже с ним, вс отдавалось клиенту, как файл.Что можно сделать в такой ситуации? Первое, что мне пришло в голову, это хранимая XSS. Сохранив картинку, как html-файл, можно получитьжелаемое. Нам необходимо hex-редактором вставить свой вектор таким образом, чтобы его не покор жили PHP-функции. Немного ограниченный, ноработоспособный вариант "обхода" ресайза картинок, это повторная загрузка уже обработанной картинки. Таким образом будет видно, какие байты точносидят на месте, а какие подвергаются изменениям и тогда можно соорудить нужный вектор. На картинке показан вектор, написанный в качестве PoC.Единственное ограничение, это длина вектора, но не шибко существенное. То есть, атака тут выглядит так:ht:/2.../ethm#lr( s; tp/17001ts.tlaet s)
  2. 2. Но это ещ не вс . Не забываем про SSI. Тут тоже вс просто - hex-редактором вставляем что хотим и загружаем картинку с расширением shtml. Самоезаветное это, конечно, выполнение системных команд, типа<-# e cd"s-a-> !-e c m=l l"-Но если не работает по каким-то причинам (допустим, nginx не поддерживает), то можно попробовать и локальный инлкуд файлов.<-#nld fl=qet.h"- !-icue ie" r pp->d0znpp предложил идею, что можно организовать брутфорс файлов, если запрашивать файл динамически:<-#nld fl=$UR_TIG-> !-icue ie"QEYSRN"-Тогда запрос будет выглядеть как-то так:ht:/2.../etstl/iet_nld.h tp/17001ts.hm?fl_oicueppСтоит напомнить, какая разница между file и virtual - первый параметр включает сам файл, второй делает запрос.Вот таким образом, всего лишь при возможности определить сво расширение картинке, можно получить целый букет уязвимостей (или возможностей) -XSS, выполнение системных команд, LFI или произвольного PHP-кода.PS: также следует обратить внимание на то, как сконфигурирован nginx: https://nealpoole.com/blog/2011/04/setting-up-php-fastcgi-and-nginx-dont-trust-the-tutorials-check-your-configuration/ еги: XSS, LFI, SSI, PHP | показов: 887

×