Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Веб-уязвимости (https://forum.antichat.xyz/forumdisplay.php?f=114)
-   -   HTMLi в Drupal через баг IE MIME сниффера (https://forum.antichat.xyz/showthread.php?t=226816)

p0deje 29.08.2010 22:47

Эксплуатация древнего бага в MIME сниффере IE на примере Drupal x.xx. Уязвимость известная, однако, как показывает практика, мало кто о ней знает.

Суть заключается в том, что IE, получая файл с

Код:

Code:
Content-type: text/plain

врубает свой MIME сниффер и пытается определить реальный MIME тип файла. Это сделано потому, что раньше многие серверы отдавали все файлы с text/plain. Сейчас с этим уже проблем нет, однако txt файлы сервер всегда отдает как text/plain. MIME сниффер смотрит внутрь файла и, увидев там, к примеру, HTML код, считает, что файл относится в text/html и соответственно рендерит его. Таким образом, если у пользователя есть возможность загружать txt-файлы на сервер, он может загрузить файл с необходимым HTML кодом: от фишинга до Reflected XSS.

Что касается Drupal, то в шестой ветке есть стандартный модуль Upload, в списке дефолтных расширений которого есть и txt. В седьмой ветке вроде бы Upload заменен на FileField, который всегда по умолчанию ставит txt.

Существует три способа защиты от такой HTML инъекции:

1. Использовать заголовок

Код:

Code:
X-Content-Type-Options: nosniff

, пердложенный Microsoft. Главный минус - поможет только для IE8.

2. Использовать заголовок

Код:

Code:
Content-disposition: attachment

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

3. Не разрешать загрузку text/plain файлов.

Microsoft чинить баг не будет. Причем, в Chromium тоже есть MIME сниффер, но подобной уязвимсоти нет. Drupal чинить тоже ничего не будет.

P.S. На английском уже давно об этом писал в своем блоге.

chekist 31.08.2010 22:15

древний баян, ослик всегда был чудо браузером ))

p0deje 01.09.2010 10:42

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

А это получается из серии "Как взломать Drupal?". Немного соц. инженерии и все ok.


Время: 15:39