Mosaique by Arthur Gerkis @ax330d
Upcoming SlideShare
Loading in...5
×
 

Mosaique by Arthur Gerkis @ax330d

on

  • 1,000 views

PHP image conversion filters bypass

PHP image conversion filters bypass

Statistics

Views

Total Views
1,000
Views on SlideShare
1,000
Embed Views
0

Actions

Likes
0
Downloads
4
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Mosaique by Arthur Gerkis @ax330d Mosaique by Arthur Gerkis @ax330d Presentation Transcript

    • 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)
    • Но это ещ не вс . Не забываем про 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