SlideShare uma empresa Scribd logo
1 de 11
Baixar para ler offline
Старые «фишки» 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

Mais conteúdo relacionado

Destaque

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

Destaque (16)

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

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

lesson3_HTML_rus.pdf
lesson3_HTML_rus.pdflesson3_HTML_rus.pdf
lesson3_HTML_rus.pdfmmmitioglo
 
Татьяна Исаева "Подготовка данных для Яндекс.Новостей"
Татьяна Исаева "Подготовка данных для Яндекс.Новостей"Татьяна Исаева "Подготовка данных для Яндекс.Новостей"
Татьяна Исаева "Подготовка данных для Яндекс.Новостей"Yandex
 
Основы языка HTML
Основы языка HTMLОсновы языка HTML
Основы языка HTMLDenis Latushkin
 
Тема 1. Введение в HTML
Тема 1. Введение в HTMLТема 1. Введение в HTML
Тема 1. Введение в HTMLssuser3896e2
 
Emmet - инструмент для веб-разработчика
Emmet - инструмент для веб-разработчикаEmmet - инструмент для веб-разработчика
Emmet - инструмент для веб-разработчикаFDConf
 
Спецкурс 2014, занятие 4. Конфиги, сборка, автотесты
Спецкурс 2014, занятие 4. Конфиги, сборка, автотестыСпецкурс 2014, занятие 4. Конфиги, сборка, автотесты
Спецкурс 2014, занятие 4. Конфиги, сборка, автотесты7bits
 
Лекция #3. Введение в языки разметки web-страниц
Лекция #3. Введение в языки разметки web-страницЛекция #3. Введение в языки разметки web-страниц
Лекция #3. Введение в языки разметки web-страницЯковенко Кирилл
 
Верстка_Лекция_1
Верстка_Лекция_1Верстка_Лекция_1
Верстка_Лекция_1itc73
 
Верстка_Лекция_1
Верстка_Лекция_1Верстка_Лекция_1
Верстка_Лекция_1itc73
 
Верстка_Лекция1
Верстка_Лекция1Верстка_Лекция1
Верстка_Лекция1itc73
 
Web весна 2013 лекция 8
Web весна 2013 лекция 8Web весна 2013 лекция 8
Web весна 2013 лекция 8Technopark
 
Стажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотесты
Стажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотестыСтажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотесты
Стажировка-2015. Разработка. Занятие 10 (часть 1). Конфиги, сборка, автотесты7bits
 
Php intro rus
Php intro rusPhp intro rus
Php intro rusaDDDitive
 
Client Side Autotesting Flash
Client Side Autotesting FlashClient Side Autotesting Flash
Client Side Autotesting Flashguestb0af15
 
Webuibasics - Lesson 2 - HTML5 Layouts (in russian)
Webuibasics - Lesson 2 - HTML5 Layouts (in russian)Webuibasics - Lesson 2 - HTML5 Layouts (in russian)
Webuibasics - Lesson 2 - HTML5 Layouts (in russian)xasima
 
Trening modul2-webinar11
Trening modul2-webinar11Trening modul2-webinar11
Trening modul2-webinar11olgaoov
 
Highload++ 2016: Автоматизация тестирования клиентской производительности (Ла...
Highload++ 2016: Автоматизация тестирования клиентской производительности (Ла...Highload++ 2016: Автоматизация тестирования клиентской производительности (Ла...
Highload++ 2016: Автоматизация тестирования клиентской производительности (Ла...Лавлинский Николай
 
Автоматизация тестирования клиентской производительности / Николай Лавлинский...
Автоматизация тестирования клиентской производительности / Николай Лавлинский...Автоматизация тестирования клиентской производительности / Николай Лавлинский...
Автоматизация тестирования клиентской производительности / Николай Лавлинский...Ontico
 

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

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

Mais de CodeFest

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

Mais de CodeFest (20)

Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
 
Никита Прокопов
Никита ПрокоповНикита Прокопов
Никита Прокопов
 
Денис Баталов
Денис БаталовДенис Баталов
Денис Баталов
 
Елена Гальцина
Елена ГальцинаЕлена Гальцина
Елена Гальцина
 
Александр Калашников
Александр КалашниковАлександр Калашников
Александр Калашников
 
Ирина Иванова
Ирина ИвановаИрина Иванова
Ирина Иванова
 
Marko Berković
Marko BerkovićMarko Berković
Marko Berković
 
Денис Кортунов
Денис КортуновДенис Кортунов
Денис Кортунов
 
Александр Зимин
Александр ЗиминАлександр Зимин
Александр Зимин
 
Сергей Крапивенский
Сергей КрапивенскийСергей Крапивенский
Сергей Крапивенский
 
Сергей Игнатов
Сергей ИгнатовСергей Игнатов
Сергей Игнатов
 
Николай Крапивный
Николай КрапивныйНиколай Крапивный
Николай Крапивный
 
Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
 
Вадим Смирнов
Вадим СмирновВадим Смирнов
Вадим Смирнов
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин Осипов
 
Raffaele Rialdi
Raffaele RialdiRaffaele Rialdi
Raffaele Rialdi
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим Пугачев
 
Rene Groeschke
Rene GroeschkeRene Groeschke
Rene Groeschke
 
Иван Бондаренко
Иван БондаренкоИван Бондаренко
Иван Бондаренко
 
Mete Atamel
Mete AtamelMete Atamel
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