Старые «фишки» IE
или о двух уязвимостях
   на грани клиент-
       сервера.

               Алексей Родионов
                 Development Mill
– Веб-безопасность и QA –




Тестирование на проникновение


                       Аудит


  Тестирование защищённости
– Internet Explorer feature #1 –


    Встроенная опция “Автоопределение кодировки”:
● пытается определить кодировку страницы,


последовательно проходя DOM
● встретив элемент с текстом внутри и


проанализировав его, определяет кодировку
● уязвимость присутствует только в версиях <=7
– Internet Explorer feature #1 –

 Пример:
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;
charset=utf-8" />
    ...
    <title>Текст в кодировке UTF-7</title>
  </head>
  ...
</html>


 Результат: UTF-8
– Internet Explorer feature #1 –

 Пример:
<html>
  <head>
    <title>Текст в кодировке UTF-7</title>
    ...
    <meta http-equiv="Content-Type" content="text/html;
charset=utf-8" />
  </head>
  ...
</html>


 Результат: UTF-7
– Internet Explorer feature #1 –




Всегда объявляйте кодировку страницы в
   элементе <meta> до элемента <title>
– Internet Explorer feature #2 –


    Встроенный MIME сниффер:
● при получении файла с заголовком Content-type:


text/plain, пытается по его содержимому
определить настоящий MIME тип
● после определения MIME типа, в соотетствии с


ним обрабатывает файл
● уязвимость присутствует во всех версиях
– Internet Explorer feature #2 –


  Пример:
содержимое файла test.txt




 В данном текстовом файле присутствует
 исключительно текст...




   Результат:
Content-type: text/plain
– Internet Explorer feature #2 –


  Пример:
содержимое файла test.txt




 В данном текстовом файле присутствуют и обычный
 текст, и HTML элемент <script>evil()</script>...




   Результат:
Content-type: text/html
– Internet Explorer feature #2 –


    Способы решения:
● отдавать HTTP заголовок X-Content-Type-Options:


nosniff (сработает только в IE8)
● не разрешать загрузку txt-файлов


● если txt-файлы жизненно необходмы, отдавать


HTTP заголовок Content-dispostion: attachment
Спасибо!
Вопросы?



    alexey.ro@developmentmill.com
    http://p0deje.blogspot.com

More Related Content

PPT
Игорь Мартыненко - Тестирование игр на Facebook
ODP
Система документации phpDocumentor
PDF
Как обезопасить PBN от взлома? Практические рекомендации
PDF
CodeFest 2010. Уразов А. — Quality-Oriented Programming (Программирование, ор...
PPT
CodeFest 2010. Игумнов Е. — Особенности архитектуры веб-сервисов LAMP для выс...
PDF
CodeFest 2010. Платов А. — Производство ПО для разработчиков
PDF
CodeFest 2010. Желтов А. — Погружение в Internet Explorer 9 для разработчиков
PPT
CodeFest 2010. Молчанов Д. — Разработка высоконагруженных систем
Игорь Мартыненко - Тестирование игр на Facebook
Система документации phpDocumentor
Как обезопасить PBN от взлома? Практические рекомендации
CodeFest 2010. Уразов А. — Quality-Oriented Programming (Программирование, ор...
CodeFest 2010. Игумнов Е. — Особенности архитектуры веб-сервисов LAMP для выс...
CodeFest 2010. Платов А. — Производство ПО для разработчиков
CodeFest 2010. Желтов А. — Погружение в Internet Explorer 9 для разработчиков
CodeFest 2010. Молчанов Д. — Разработка высоконагруженных систем

Viewers also liked (16)

PPT
CodeFest 2010. Щербина С. — Прием на работу тестировщика без опыта
PPT
CodeFest 2010. Емелина Т. — Trial-and-error: как мы начинали тестировать
PPT
CodeFest 2010. Вершинина Е. — Новый менеджер в сформировавшейся команде: мето...
PPT
CodeFest 2010. Лобанов И. — Новые горизонты веб-технологий или несколько удив...
PPT
CodeFest 2010. Орлов А. — Лидерство или о грядках и огородах
PDF
CodeFest 2010. Иноземцев И. — Fantom. Cross-VM Language
PPT
CodeFest 2010. Исаенко И. — Автоматизация тестирования web-сервисов
PPT
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
PDF
CodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDB
PPTX
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud &lt; Server::Hardware // ...
PDF
CodeFest 2010. Кузьмичев А. — Быстрее быстрого: о требованиях к производитель...
PPT
Codefest 2011. Панкратов С., Орлов А. — Практикум работы с неконструктивными ...
PDF
CodeFest 2010. Горбатовский С. — Заказные проекты: как не собрать все грабли
PPT
CodeFest 2010. Высоцкий С. — Автоматизация тестирования Flex/Flash GUI
PPT
CodeFest 2010. Погребняк А. — Проблемы оценки труда программистов
PPTX
CodeFest 2011. Архипенков С. — Теория и практика адаптивного управления проектом
CodeFest 2010. Щербина С. — Прием на работу тестировщика без опыта
CodeFest 2010. Емелина Т. — Trial-and-error: как мы начинали тестировать
CodeFest 2010. Вершинина Е. — Новый менеджер в сформировавшейся команде: мето...
CodeFest 2010. Лобанов И. — Новые горизонты веб-технологий или несколько удив...
CodeFest 2010. Орлов А. — Лидерство или о грядках и огородах
CodeFest 2010. Иноземцев И. — Fantom. Cross-VM Language
CodeFest 2010. Исаенко И. — Автоматизация тестирования web-сервисов
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
CodeFest 2010. Столяров С. — Серверный JavaScript: NodeJS и CouchDB
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud &lt; Server::Hardware // ...
CodeFest 2010. Кузьмичев А. — Быстрее быстрого: о требованиях к производитель...
Codefest 2011. Панкратов С., Орлов А. — Практикум работы с неконструктивными ...
CodeFest 2010. Горбатовский С. — Заказные проекты: как не собрать все грабли
CodeFest 2010. Высоцкий С. — Автоматизация тестирования Flex/Flash GUI
CodeFest 2010. Погребняк А. — Проблемы оценки труда программистов
CodeFest 2011. Архипенков С. — Теория и практика адаптивного управления проектом
Ad

Similar to CodeFest 2010. Родионов А. — Старые «фишки» IE или о двух уязвимостях на грани клиент-сервера (20)

PDF
lesson3_HTML_rus.pdf
PDF
Татьяна Исаева "Подготовка данных для Яндекс.Новостей"
PDF
Основы языка HTML
PPTX
Тема 1. Введение в HTML
PDF
Emmet - инструмент для веб-разработчика
PDF
Спецкурс 2014, занятие 4. Конфиги, сборка, автотесты
PDF
Лекция #3. Введение в языки разметки web-страниц
PPT
Верстка_Лекция1
PPT
Верстка_Лекция_1
PPT
Верстка_Лекция_1
PPT
Web весна 2013 лекция 8
PPTX
Стажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотесты
PPT
Lection1
PDF
Php intro rus
PPT
Client Side Autotesting Flash
PPT
Webuibasics - Lesson 2 - HTML5 Layouts (in russian)
PPT
Trening modul2-webinar11
PPTX
Highload++ 2016: Автоматизация тестирования клиентской производительности (Ла...
PPTX
Автоматизация тестирования клиентской производительности - Лавлинский Николай...
lesson3_HTML_rus.pdf
Татьяна Исаева "Подготовка данных для Яндекс.Новостей"
Основы языка HTML
Тема 1. Введение в HTML
Emmet - инструмент для веб-разработчика
Спецкурс 2014, занятие 4. Конфиги, сборка, автотесты
Лекция #3. Введение в языки разметки web-страниц
Верстка_Лекция1
Верстка_Лекция_1
Верстка_Лекция_1
Web весна 2013 лекция 8
Стажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотесты
Lection1
Php intro rus
Client Side Autotesting Flash
Webuibasics - Lesson 2 - HTML5 Layouts (in russian)
Trening modul2-webinar11
Highload++ 2016: Автоматизация тестирования клиентской производительности (Ла...
Автоматизация тестирования клиентской производительности - Лавлинский Николай...
Ad

More from CodeFest (20)

PDF
Alexander Graebe
PDF
Никита Прокопов
PPTX
Денис Баталов
PDF
Елена Гальцина
PDF
Александр Калашников
PDF
Ирина Иванова
PDF
Marko Berković
PDF
Денис Кортунов
PDF
Александр Зимин
PDF
Сергей Крапивенский
PDF
Сергей Игнатов
PDF
Николай Крапивный
PDF
Alexander Graebe
PDF
Вадим Смирнов
PDF
Константин Осипов
PDF
Raffaele Rialdi
PDF
Максим Пугачев
PDF
Rene Groeschke
PDF
Иван Бондаренко
PDF
Mete Atamel
Alexander Graebe
Никита Прокопов
Денис Баталов
Елена Гальцина
Александр Калашников
Ирина Иванова
Marko Berković
Денис Кортунов
Александр Зимин
Сергей Крапивенский
Сергей Игнатов
Николай Крапивный
Alexander Graebe
Вадим Смирнов
Константин Осипов
Raffaele Rialdi
Максим Пугачев
Rene Groeschke
Иван Бондаренко
Mete Atamel

CodeFest 2010. Родионов А. — Старые «фишки» IE или о двух уязвимостях на грани клиент-сервера

  • 1. Старые «фишки» IE или о двух уязвимостях на грани клиент- сервера. Алексей Родионов Development Mill
  • 2. – Веб-безопасность и QA – Тестирование на проникновение Аудит Тестирование защищённости
  • 3. – Internet Explorer feature #1 – Встроенная опция “Автоопределение кодировки”: ● пытается определить кодировку страницы, последовательно проходя DOM ● встретив элемент с текстом внутри и проанализировав его, определяет кодировку ● уязвимость присутствует только в версиях <=7
  • 4. – Internet Explorer feature #1 – Пример: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ... <title>Текст в кодировке UTF-7</title> </head> ... </html> Результат: UTF-8
  • 5. – Internet Explorer feature #1 – Пример: <html> <head> <title>Текст в кодировке UTF-7</title> ... <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> ... </html> Результат: UTF-7
  • 6. – Internet Explorer feature #1 – Всегда объявляйте кодировку страницы в элементе <meta> до элемента <title>
  • 7. – Internet Explorer feature #2 – Встроенный MIME сниффер: ● при получении файла с заголовком Content-type: text/plain, пытается по его содержимому определить настоящий MIME тип ● после определения MIME типа, в соотетствии с ним обрабатывает файл ● уязвимость присутствует во всех версиях
  • 8. – Internet Explorer feature #2 – Пример: содержимое файла test.txt В данном текстовом файле присутствует исключительно текст... Результат: Content-type: text/plain
  • 9. – Internet Explorer feature #2 – Пример: содержимое файла test.txt В данном текстовом файле присутствуют и обычный текст, и HTML элемент <script>evil()</script>... Результат: Content-type: text/html
  • 10. – Internet Explorer feature #2 – Способы решения: ● отдавать HTTP заголовок X-Content-Type-Options: nosniff (сработает только в IE8) ● не разрешать загрузку txt-файлов ● если txt-файлы жизненно необходмы, отдавать HTTP заголовок Content-dispostion: attachment
  • 11. Спасибо! Вопросы? alexey.ro@developmentmill.com http://p0deje.blogspot.com