Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

ВВЕДЕНИЕ. Лирическое отступление




Мораль

Лирическое отступление

PoC: идеи использования

Играем в считалочку


Поверить китайскому в подписи под фаззингом о том, что уязвимость касается только file_get_contents, я просто не мог, хотя бы потому, что немного помнил исходники PHP. Недолго думая, я проверил все функции, которые вспомнил касательно работы с файлами. Результаты оказались более чем положительные.
Уязвимость присутствует в функциях:

 

fopen

file_get_contents

copy

parse_ini_file

readfile

file_put_contents

mkdir

tempnam

touch

move_uploaded_file

include(_once)

require(_once)

ZipArchive::open()

Не присутствует в:

 

rename

unlink

rmdir

Есть где разгуляться, не правда ли? Но это еще полбеды.


Очевидно, что данную уязвимость можно использовать для обхода все возможных фильтров и ограничений. Например, для файла.htaccess, альтернативное имя будет h<< (см. п.4, п.1). Двухсимвольные файлы вообще можно читать без имени (см. п.9.). Ну и так далее. Есть и другое, не менее интересное применение — определение имен папок и файлов.
Рассмотрим пример:

 

<?php

file_get_contents("/images/".$_GET['a'].".jpg");

?>

С помощью такого кода можно очень просто получить список директорий веб-сервера.
Посылаем запрос test.php?a=../a<%00 и получаем ответ вида

 

Warning: include(/images/../a<) [function.include]: failed to open stream: Invalid argument in...

или

 

Warning: include(/images/../a<) [function.include]: failed to open stream: Permission denied...

В первом случае сервер не нашел ни одной директории начинающейся с буквы «а» в корне, во втором — нашел.
Далее можно запустить подбор второй буквы и так далее. Для ускорения можно воспользоваться фонетикой (см. статью «Быстрее, выше и снова быстрее. Революционные подходы к эксплуатации SQL-инъекций»). Работает старая добрая техника эксплуатации слепых SQL инъекций.
В ходе проведения опытов было замечено, что иногда сервер сразу выдает найденный путь в сообщении об ошибке. Тогда подбирать придется только в случае, если директории начинаются с одного и того же символа. От чего зависит вывод ошибки, я так и не успел разобраться и оставляю на суд общественности.


Отрадно заметить, что репорт у китайцев нашел и Маг, который опубликовал ее в числе прочих в статье «Малоизвестные способы атак на web-приложения» еще 19 апреля, но пояснения и акцента на этой уязвимости там не было, был только китайский пример, с которого я и начинал.


Честно говоря, очень хотелось найти альтернативу нуль-байту, но тщетно. Зато данная уязвимость открывает простор для других, не менее интересных атак. По сути, предоставляя возможности поиска директории и файлов через функции работы с файлами. Это само по себе уникальное явление. Как бы там ни было, респект китайцам с их фаззингом, но призываю и их, и всех остальных исследовать сырые данные, получаемые таким образом. Фаззинг фаззингом, а думать надо головой.

 

PROFIBUS (Process Field Bus) — открытая промышленная сеть, прототип которой был разработан компанией Siemens AG для своих промышленных контроллеров SIMATIC, на основе этого прототипа Организация пользователей PROFIBUS разработала международные стандарты, принятые затем некоторыми национальными комитетами по стандартизации. Очень широко распространена в Европе, особенно в машиностроении и управлении промышленным оборудованием. Сеть PROFIBUS — это комплексное понятие, она основывается на нескольких стандартах и протоколах. Сеть отвечает требованиям международных стандартов IEC 61158 и EN 50170. Поддержкой, стандартизацией и развитием сетей стандарта PROFIBUS занимается PROFIBUS NETWORK ORGANISATION (PNO).

PROFIBUS объединяет технологические и функциональные особенности последовательной связи полевого уровня. Она позволяет объединять разрозненные устройства автоматизации в единую систему на уровне датчиков и приводов.

PROFIBUS использует обмен данными между ведущим и ведомыми устройствами (протоколы DP и PA) или между несколькими ведущими устройствами (протоколы FDL и FMS). Требования пользователей к получению открытой, независимой от производителя системе связи, базируется на использовании стандартных протоколов PROFIBUS.

Сеть PROFIBUS построена в соответствии с многоуровневой сетевой моделью ISO 7498. PROFIBUS определяет следующие уровни:

· 1 — физический уровень — отвечает за характеристики физической передачи;

· 2 — канальный уровень — определяет протокол доступа к шине;

· 7 — уровень приложений — отвечает за прикладные функции.

Основные характеристики: Интерфейсы реализованы в виде специализированных микросхем (ASIC), которые выпускаются множеством поставщиков. Основывается на спецификации интерфейса RS485 и европейской электрической спецификации EN50170. Разновидности: Profibus DP (главный/подчиненный), Profibus FMS (несколько главных устройств/одноранговые устройства), Profibus PA (внутренне безопасная шина). Максимальное число узлов: 127. Длина соединения: от 100 м до 24 км (с ретрансляторами и оптоволоконными кабелями). Скорость передачи: от 9600 бит/с до 12 Мбит/с. Размер сообщения: до 244 байт на сообщение для одного узла. Методы обмена сообщениями: опрос (DP/PA) и одноранговый (FMS). Поддерживаемые стандарты

Открытость и независимость от производителя гарантирует стандарт EN 50170, всё остальное реализовано в соответствии со стандартом DIN 19245 (а именно: техника передачи данных, методы доступа, протоколы передачи, сервисные интерфейсы для уровня приложений, спецификация протоколов, кодирование, коммуникационная модель и т. д.). С помощью PROFIBUS, устройства разных производителей могут работать друг с другом без каких-либо специальных интерфейсов. Семейство PROFIBUS состоит из трех совместимых друг с другом версий: PROFIBUS PA, PROFIBUS DP и PROFIBUS FMS.





Поделиться с друзьями:


Дата добавления: 2015-05-10; Просмотров: 366; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.015 сек.