П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 5999 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 8133 раз(а).

Учебник HTML.
Просмотров 4824 раз(а).

Руководство по PHP5.
Просмотров 1853 раз(а).

Хостинг через призму DNS.
Просмотров 6844 раз(а).

Подборка текстов стандартных документов.
Просмотров 57477 раз(а).

Учебник PHP - Самоучитель
Просмотров 5095 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 11212 раз(а).

Внешние атаки...
Просмотров 7021 раз(а).

Учебник PHP.
Просмотров 4143 раз(а).

SSI в примерах.
Просмотров 1149 раз(а).






 
 
| Добавить в избранное | Сделать стартовой Project.Net.Ru | Помощь





В чем опасность?

Большинство недостатков в безопасности происходят из-за неправильной конфигурации или лени. Это правило справедливо для строк форматирования.

Часто необходимо в программе использовать строки, оканчивающиеся нулевым байтом . Где в программе - для нас не важно. Рассматриваемая уязвимость опять позволяет производить запись прямо в память. Данные для атаки могут поступать с stdin (стандартный ввод), файлов и т.д. Достаточно одной инструкции:

printf("%s", str);

Однако программист может решить сохранить время и шесть байт, написав только:

printf(str);

С "экономией" на уме, этот программист открывает потенциальную дыру в своей работе. Он удовлетворился передачей в качестве аргумента одной строки, которую он хотел просто отобразить без изменений. Однако эта строка будет разбираться для поиска директив форматирования (%d, %g...). Если подобный символ форматирования найден, соответствующий ему аргумент ищется в стеке.

Мы начнем с введения в семейство функций printf(). Мы ожидаем, как минимум, что каждый знает их... но не во всех подробностях, поэтому мы поговорим о наименее известных сторонах этих подпрограмм. Затем мы увидим, как получить необходимую информацию, чтобы воспользоваться типичной ошибкой. И в конце, мы покажем, как это все собирается в один пример.

Назад | Содержание | Вперед



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru