форум vBSupport.ru > vBSupport.ru > Requests > Кандидатская кухня
Register Меню vBsupport Изображения Files Manager О рекламе Today's Posts Search
  • Родная гавань
  • Блок РКН снят
  • Premoderation
  • For English speaking users
  • Каталог Фрилансеров
  • If you want to buy some product or script
  • Администраторам
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей

Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
for English speaking users:
You may be surprised with restriction of access to the attachments of the forum. The reason is the recent change in vbsupport.org strategy:

- users with reputation < 10 belong to "simple_users" users' group
- if your reputation > 10 then administrator (kerk, Luvilla) can decide to move you into an "improved" group, but only manually

Main idea is to increase motivation of community members to share their ideas and willingness to support to each other. You may write an article for the subject where you are good enough, you may answer questions, you may share vbulletin.com/org content with vbsupport.org users, receiving "thanks" equal your reputation points. We should not only consume, we should produce something.

- you may:
* increase your reputation (doing something useful for another members of community) and being improved
* purchase temporary access to the improved category:
10 $ for 3 months. - this group can download attachments, reputation/posts do not matter.
20 $ for 3 months. - this group can download attachments, reputation/posts do not matter + adds eliminated + Inbox capacity increased + files manager increased permissions.

Please contact kerk or Luvilla regarding payments.

Important!:
- if your reputation will become less then 0, you will be moved into "simple_users" users' group automatically.*
*for temporary groups (pre-paid for 3 months) reputation/posts do not matter.
Уважаемые пользователи!

На форуме открыт новый раздел "Каталог фрилансеров"

и отдельный раздел для платных заказов "Куплю/Закажу"

Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже:
Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота.
Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
 
 
 
 
sebun
Простоузер
Default Вопросы безопасности
5

Думаю, нелишне будет напомнить начинающим веб-мастерам о том, что какой бы движок для своего форума вы не выбрали, всегда существует вероятность взлома. И, чем популярнее ресурс, тем эта вероятность выше.

Сегодня я расскажу вам об одном популярном способе взлома форума на vbulletin 3.8.x, с которым сам когда то столкнулся. Этот взлом осуществляется через...картинки. Да-да, обыкновенные картинки.

Этот вид атаки известен давно. Представьте, каково было мое удивление, когда однажды открыв простой смайлик блокнотом среди всей абракадабры я увидел такой код:
PHP Code:
<?php
phpinfo
();
?>
Такой вид атак называется XSS и весьма популярен. Выглядит все просто: пишем нужный код, засовываем его в изображение, загружаем изображение, например, как свою аватару и выполняем. Просто и сердито.

Но если до недавнего времени самой распространённой опасностью была загрузка PHP-скриптов через аватары и изображения, чаще всего PNG-формата, то сейчас на её место пришли картинки и Flash!-анимации, несущие в себе вредоносный код. У вас стоит крутая система защиты и фильтрации, админы и модераторы сутками дежурят на сайте, а сайт ломает какой нибудь школьник, прочитавший про XSS и немного знакомый с кодингом. Шутка ли?

Сегодня я не буду касаться обширной темы взлома, поговорим лишь о самом популярном - взломе с помощью картинок.

1. Подготовка
Перед началом взлома чаще всего подготавливается файл, который ваша система разрешает к загрузке. Пусть вы разрешили загрузку на сервер файлов формата PNG. Значит взломщик подготовит именно png-картинку. Защита загрузчиков во многих случаях примитивна и сводится к проверке заголовка файла, никоим образом не анализируя при этом его содержимое. И файл с вредоносным кодом успешно загружается на сервер.

Делается такая картинка простым дописыванием php или html-кода в конец PNG-файла (но иногда код встречается и в середине). В итоге при просмотре этой картинки браузер выплёвывает текстовое содержимое файла наружу и код выполняется. Неудобств у этой атаки 3:
  1. Атакуемый должен обратится непосредственно к картинке, а не к страничке её содержащую. Например www.vbsupport.com/image1.png
  2. Многие популярные движки хранят расширение файлов в базе, а сами файлы лежат переименованные в отдельной папке с одним и тем же расширением (например '.ext')
  3. Такие атаки проходят только с браузером Internet Explorer. Тот -же FireFox просто пишет что изображение повреждено

Как видите ограничения хоть и есть, но они не слишком значительны (кроме второго). Теперь разберём всё на практике. Давайте напишем небольшой скрипт который будет отвечать за аплоад картинок на сервер и форму в которой пользователь будет выбирать какую картинку загрузить. Давайте создадим файл index.html со следующим содержимым:
PHP Code:
************** 
и скрипт upload.php:
PHP Code:
************** 
Написали? Отлично! У нас есть самый простой аплоадер картинок. Теперь нарисуйте в любом редакторе картинку (например точку) и сохраните полученную картинку. Далее откройте эту картинку простым текстовым редактором, например блокнотом, и допишите в конец такой текст:
PHP Code:
 <script>alert(1)</script> 
2. Взлом
Если всё сделано правильно, то, обратившись к этому изображению с помощью IE вы увидите окошко с цифрой 1 и кишки картинки в виде обычной каши из разных символов. А цифра 1 в окошке означает, что взлом удался! Вместо тега <script> можно написать любой другой код. И, если защита пропускает этот тег, можно выполнять абсолютно любые команды, в том числе и получить права администратора, выполнив с помощью PHP SQL-запрос.

3. Защита
Что бы защитить сайт от загрузки картинок, содержащих вредоносный код, нужно этот самый код как то фильтровать. В нашем примере нужно поставить фильтр на этот аплоад, что бы он не пропускал опасные картинки. Давайте сделаем это на примере тега <script>. Мы будем действовать следующим образом:
  1. Сохраним загруженное изображение
  2. Откроем как текстовый файл и возьмём внутренности
  3. В получившемся тексте будем искать <script>
  4. Если данное выражение найдётся то удалим файл и сообщим об этом
Вот код который нужно добавить в аплоадер после загрузки файла:
PHP Code:
// Открываем файл для чтения
$handle fopen($upload_file"r");
// Читаем весь полностью
$file_text fread($handle,filesize($upload_file));

fclose($handle);
// Если обнаружился <script 
if (strpos($file_text,'<script')>-1)
{
// то удаляем этот файл и сообщаем пользователю
    
unlink($upload_file);
    print 
'XSS image!';


Вот и все! Попробуйте теперь загрузить вредоносную картинку!
Для проверки создайте ещё одно изображение, только полностью безопасное, и попробуйте загрузить его на сервер. У меня всё прошло нормально, а вот на загрузку опасного файла скрипт выругался. Значит защита работает!

Но помните, что фильтровать нужно не только тег <script> но и тэги типа <embed>,<applet>, <?php и т.д.. Так же нужно не забывать о фильтрации полного слова javascript. А перед проверкой лучше текстовые внутренности перевести через функцию strtolower(), так как могут попасться и <SCRIPT> и JAvAscRIpT:alert(1)

И ещё. Не вздумайте проверять изображения на наличие '<' и '>' так как эти символы присутствуют в коде каждой картинки и каждое PNG-изображение будет считаться опасным.

Удачи!

Last edited by kerk : 08-02-2012 at 08:35 AM. Reason: Не нужно коды выкладывать, пусть школьники своей башкой думают
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
netwind
Гуру
 
netwind's Avatar
Default
1

Что за сеонизаторство ? Зачем эта статья тут ? Какое отношение она имеет к vbulletin ?

В vbulletin подобных проблем не было, поскольку как вы упомянули некоторые движки хранят файлы переименованными, а аватары с фото пережимаются и тем самым мусор из них удаляется.
И кроме того, описанная атака не является XSS. Этим страдают многие галереи, но не сам vbulletin.
 
 
kerk
k0t
 
kerk's Avatar
Default
1

дополнительные проверки это хорошо
но не проще ли загружать картинку не просто копируя ее с компа узера на сервак, а создавая заново
imagecreatefromgif($img);
imagecreatefromjpeg($img);
imagecreatefrompng($img);
эти (и сопутствующие им) функции создадут картинку заново из того, что загружено во врмененную папку сервера и затем скопируют уже "очищенную" от мусора в каталог хранения
 
 
Luntick
На доске почёта
Прощаемся
 
banned nax
Default
0

Quote:
Originally Posted by netwind View Post
В vbulletin подобных проблем не было,
Даже, если смайлик или картинку закачать на страницу со стороннего ресурса?
 
 
netwind
Гуру
 
netwind's Avatar
Default
0

Luntick, описана закачка картинки пользователем-злоумышленником, а смайлики и элементы дизайна только админ может закачать. И, разумеется, он не должен брать их из недоверенного источника.
 
 
Luntick
На доске почёта
Прощаемся
 
banned nax
Default
1

Quote:
Originally Posted by sebun View Post
Что бы затить сайт от загрузки картинок, содержащих вредоносный код, нужно этот самый код как то фильтровать.
Можно в каталоге с картинками разместить файл .htaccess следующего содержания
Code:
<Files "\.(php|phtml|html|htm|cgi|exe|pl|asp|aspx|shtml|xml)$">
order allow,deny
deny from all
</Files>
В этом случае, файлы с перечисленными расширениями исполнятся в каталоге не будут.

Luntick добавил 01.08.2012 в 23:49
Quote:
Originally Posted by netwind View Post
а смайлики и элементы дизайна только админ может закачать.
Почему? речь идёт не о смайликах в движке, а о таком же с виду смалике но вставленного на страницу с помощью BB-кода со стороннего ресурса.

Last edited by Luntick : 08-02-2012 at 12:49 AM. Reason: Добавлено сообщение
 
 
netwind
Гуру
 
netwind's Avatar
Default
1

Quote:
Originally Posted by Luntick View Post
Почему? речь идёт не о смайликах в движке, а о таком же с виду смалике но вставленного на страницу с помощью BB-кода со стороннего ресурса.
а в этом случае php-код не может исполняться, потому что сервер с форумом не участвует в отдаче такого смайлика
 
 
sebun
Простоузер
Default
0

Quote:
Originally Posted by netwind View Post
Что за сеонизаторство ? Зачем эта статья тут ? Какое отношение она имеет к vbulletin ?

В vbulletin подобных проблем не было, поскольку как вы упомянули некоторые движки хранят файлы переименованными, а аватары с фото пережимаются и тем самым мусор из них удаляется.
И кроме того, описанная атака не является XSS. Этим страдают многие галереи, но не сам vbulletin.
Хорошо, тогда поищи в интернете, откуда по адресу /images/smiles/ в булке на многих форумах присутствуют эти файлы. Каким образом они туда попадают и почему. Может быть узнаешь что новое, великий Гуру... Да, заодно посмотри, нет ли у тебя файлов, например 1000.png, 105.png и т.д. Обычно имя начинается с цифры. Загружаются они туда чуть иначе, но смысла это не меняет. Вот когда ты выяснишь, в чем проблема, тогда и спорь, XSS это или что еще. А я потом напишу про взлом через Flash, а может быть еще о чем... Этой статьей я хотел начать цикл публикаций по взлому vbulletin, начиная с самого простого и постепенно вводя в курс дела, чтобы люди смогли научиться правильно находить и устранять баги, но после ваших слов и правки моего кода в посте я сомневаюсь, что надолго задержусь здесь.

Quote:
Originally Posted by Luntick View Post
Почему? речь идёт не о смайликах в движке, а о таком же с виду смалике но вставленного на страницу с помощью BB-кода со стороннего ресурса.
В этом случае за безопасность сервер уже не отвечает, так как смайлик со стороннего ресурса подгружается браузером со стороннего ресурса и никакой код в нем в современных браузерах не выполняется.

Last edited by sebun : 08-02-2012 at 03:13 AM.
 
 
Veterblack
Специалист
vBSponsor
 
Veterblack's Avatar
Default
1

sebun, спасибо. Двоякая статья.
Первая часть вредна, а вторая полезна. Я бы не стал вываливать в паблик даже известные способы взломов в таких подробностях. Прошелся бы по ним поверхностно. Все эти так называемые хакеры школоло на самом деле тупые. Находят в паблике тему и начинают мониторить все форумы подряд на предмет уязвимостей. Поэтому как бы давать им лишний вариант взлома наверное не стоит.
 
 
kerk
k0t
 
kerk's Avatar
Default
1

блин
я же удалил коды
они опять появились...
ну не нужны здесь примеры взломов, форум не об этом
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 03:30 PM.


Powered by vBulletin® Version 3.5.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.