 |
|

13.02.2012, 01:23
|
|
Постоянный
Регистрация: 17.04.2011
Сообщений: 638
С нами:
7932566
Репутация:
81
|
|
Мозаика атак через загрузку изображений
Пролог:
Я часто натыкаюсь на функцию загрузки изображений.... Можно подумать, что сегодня загрузка и обработка изображений на сервере - вполне обычная и безопасная операция... Но даже сегодня далеко не у все веб-приложений достаточная защита от хакеров, которые могут вмешаться, и действовать против сервера. Совсем недавно я имел дело с одним интересным случаем, некоторые ограничения по загрузке изображений заставили меня применить некоторые хитрости.
Самый большой недостаток, это то что PHP сценарий и прочие скрипты пытаются изменить размер изображения, даже если оно не вылезает за "рамки" ограничений (ширины и высоты и т.п), ну и соответственно, от этого байты кода смешиваются, и он работать не будет.
Итак, что мы имеем:
1.) Изображения только при наличии соответствующей ширины, высоты и размеров допускается
2.) Загрузка допускается только в одну конкретную папку, uploads к примеру
3.) Скрипт проверяет, является ли передаваемый файл действительно изображением, а не каким-либо другим файлом
4.) Ну и конечно изображение обрабатывается с помощью PHP-функции
Со стороны простого веб-интерфейса вроде-бы всё выглядит не пробиваемым, но присмотревшись, можно понять, что "голова бронежилетом не прикрыта".
Я быстро написал Perl-скрипт, который делает прямые запросы к веб-приложению, и он показал, что я могу загрузить изображения с любым расширением. Тогда я подумал... изменить расширение на file.php и на этом игра заканчивается, но это был не тот случай... Сервер был настроен так, что все PHP файлы отправлялись пользователю как обычный файл
Получается, нет у нас ни .pl ии CGI и т.д...
Что-же делать в такой ситуации?! Первое, что пришло в голову это, чтобы обработать изображение с кодом XSS. При сохранении изображений с расширением file. HTML мы можем достичь желаемого результата. Нам нужно редактировать изображение с помощью HEX-редактора, так что PHP-функция не повредит нашей нагрузке. Очень ограничен, но работает способ "обойти" встроенный в сайт обработчик изображений, чтобы нам загрузить уже обработанные изображения.
Таким образом, мы можем увидеть, какие байты не изменились, и вместо статического байта мы можем поставить на сайт наш код. Ниже я показал простой вектор XSS, для PoC целей.
Единственным ограничением является длина "полезной нагрузки", но это не очень важно. Таким образом, атака выглядит примерно так:
Код:
http://127.0.0.1/test.html#alert('XSS');
Но это еще далеко не все. Не забывайте о SSI. Здесь же простая идея - с помощью HEX редактора мы вставляем наш код и сохраняем изображение с расширением SHTML exntension... Одна из самых желанных возможностей является выполнение команд операционной системы
Если это не сработает по какой-либо причине (например, Nginx не поддерживает), мы можем попробовать инклуд файлов:
Один человек предложил идею перебора файлов, указав имя файла динамически:
Тогда запрос будет выглядеть примерно так:
Код:
http://127.0.0.1/test.shtml?/file_to_include.php
Тут стоит помнить, что между параметрами файлов и виртуальных одно отличие - первый включает в себя файлы, второй делает запрос...
Так что, только имея возможность изменить расширение изображений, нам открываются реально широкие возможности для злоумышленника, а это XSS, OS команды, PHP-код, LFI и т.п.
P.S: Стоит также обратить внимание внимание на правильную конфигурацию Nginx... но об этом напишем позже
Перевод: Osstduio
Автор статьи: ax330d
Источник: http://ax330d.blogspot.com/2011/06/mosaic-of-attacks-from-image-upload.html
|
|
|

13.02.2012, 01:27
|
|
Постоянный
Регистрация: 13.10.2010
Сообщений: 375
С нами:
8200406
Репутация:
38
|
|
Как всегда, радуешь. Заслуженный плюс!
|
|
|

13.02.2012, 01:37
|
|
Reservists Of Antichat - Level 6
Регистрация: 07.07.2009
Сообщений: 324
С нами:
8866466
Репутация:
564
|
|
ничего не раскрыта + букафки с википедий ? =\
__________________
Никогда не бойся делать то, что ты не умеешь. Помни, ковчег был построен любителем. "Титаник" - проффесионалами.
|
|
|

13.02.2012, 02:40
|
|
Постоянный
Регистрация: 13.10.2010
Сообщений: 375
С нами:
8200406
Репутация:
38
|
|
Не придирайтесь так. Он ещё маленький
Незнаю, для меня все было понятно и доступно "разжевано".
|
|
|

13.02.2012, 05:34
|
|
Новичок
Регистрация: 04.11.2004
Сообщений: 5
С нами:
11322426
Репутация:
0
|
|
Сообщение от Osstudio
Первое, что пришло в голову это, чтобы обработать изображение с кодом XSS. При сохранении изображений с расширением file. HTML мы можем достичь желаемого результата.
IE
|
|
|

13.02.2012, 06:25
|
|
Новичок
Регистрация: 04.11.2004
Сообщений: 5
С нами:
11322426
Репутация:
0
|
|
Это не авторская статья, а перевод с ангийского статьи "Mosaic of attacks from image upload"
Оригинал - http://ax330d.blogspot.com/2011/06/mosaic-of-attacks-from-image-upload.html
Статья "Mosaic of attacks from image upload" в свою очередь является переводом с русского =)
Оригинал - http://www.slideshare.net/d0znpp/mosaique-by-arthur-gerkis-ax330d
|
|
|

13.02.2012, 12:38
|
|
Флудер
Регистрация: 08.11.2004
Сообщений: 3,395
С нами:
11317286
Репутация:
3876
|
|
Добавил копирайты.
|
|
|

13.02.2012, 17:04
|
|
Постоянный
Регистрация: 24.02.2006
Сообщений: 447
С нами:
10636106
Репутация:
705
|
|
а я удалю в след раз, если будешь выдавать за свою
|
|
|

13.02.2012, 20:02
|
|
Постоянный
Регистрация: 17.04.2011
Сообщений: 638
С нами:
7932566
Репутация:
81
|
|
Сообщение от M_script
Это не авторская статья, а перевод с ангийского статьи "Mosaic of attacks from image upload"
Оригинал - http://ax330d.blogspot.com/2011/06/mosaic-of-attacks-from-image-upload.html
Статья "Mosaic of attacks from image upload" в свою очередь является переводом с русского =)
Оригинал - http://www.slideshare.net/d0znpp/mosaique-by-arthur-gerkis-ax330d
Так она изначальна была на русском?)
Я думал, есть только инглиш => осуществил перевод
[QUOTE="M_script"]
IE
|
|
|

13.02.2012, 21:14
|
|
Познающий
Регистрация: 25.12.2009
Сообщений: 95
С нами:
8619861
Репутация:
51
|
|
Осстудио, поимей уже совесть, мне очень не нравится когда чужое выдают за свое.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|