Хранимые, отображаемые и DOM-based XSS
, , , , ,

XSS (Cross Site Scripting) — один из самых популярных видов веб-уязвимостей, позволяющий производить внедрение вредоносного кода в отдаваемую веб-приложением страницу. Атаки с использованием XSS-вектора позволяют внедрять на страницу произвольное содержимое, перехватывать cookie и сессии других пользователей, получать доступ в закрытые разделы сайта и даже привилегии администратора веб-ресурса.

Существует несколько видов XSS:

  • Хранимые. Вредоносный код сохраняется на сервере и загружается с него каждый раз, когда пользователи запрашивают отображение той или иной страницы. Чаще всего проявляются там, где пользовательский ввод не проходит фильтрацию и сохраняется на сервере: форумы, блоги, чаты, журналы сервера и т.д.

    Например, скрипт <img src="http://exmple.com/">, оставленный на странице сайта с очень высокой посещаемостью, может спровоцировать DDoS-атаку на указанный веб-ресурс.

  • Отображаемые. Вредоносная строка является частью запроса жертвы к веб-сайту. Сайт принимает и вставляет эту вредоносную строку в отправляемый ответ обратно пользователю.

    Например, при переходе пользователем по ссылке: http://example.com/q=<href='a' style='font-size:500px'> на странице отобразится гиперссылка, при наведении на которую выполнится скрипт alert(‘XSS’). Но для этого необходимо каким-то образом (например, с использованием социальной инженерии) заставить пользователя ввести эту ссылку в адресной строке.

  • XSS в DOM-модели. Представляет собой вариант как хранимой, так и отображаемой XSS-атаки. В данном случае вредоносная строка не обрабатывается браузером жертвы, пока настоящий JavaScript веб-сайта не выполнится.

Читать далее Хранимые, отображаемые и DOM-based XSS

Не теребите мой API: обзор OWASP API Security Top 10
, , ,

API — это набор способов и правил, по которым различные программы общаются между собой и обмениваются данными. Технически API означает программный интерфейс приложения. Интерфейс — это граница между двумя функциональными системами, на которой происходит их взаимодействие и обмен информацией. Но при этом процессы внутри каждой из систем скрыты друг от друга.

API даёт доступ к готовым инструментам, например, к функциям библиотеки для машинного обучения. API позволяет вынести в отдельное приложение функционал, который должен быть защищен. Снижается вероятность некорректного использования этих функций другими программами. С помощью API можно связывать разные системы, например, подключить к сайту платёжную систему или аутентификацию через социальные сети.

OWASP API Security Top 10

API используется повсеместно, а вместе с этим растет количество инцидентов, связанных с атаками на его функционал. Авторитетный проект OWASP, сосредоточенный на безопасности веб-приложений, выпустил OWASP API Security Top 10 2019 (PDF-версия) — перечень наиболее опасных и распространенных ошибок при разработке и использовании API:

  • API1:2019 — Недостатки контроля доступа к объектам;
  • API2:2019 — Недостатки аутентификации;
  • API3:2019 — Разглашение конфиденциальных данных;
  • API4:2019 — Отсутствие ограничений на ресурсы и запросы;
  • API5:2019 — Недостатки контроля доступа на функциональном уровне;
  • API6:2019 — Переназначение параметров;
  • API7:2019 — Ошибки настроек безопасности;
  • API8:2019 — Инъекции;
  • API9:2019 — Некорректное управление ресурсами;
  • API10:2019 — Недостаточное журналирование и мониторинг.

Читать далее Не теребите мой API: обзор OWASP API Security Top 10

Разведка и сбор информации — обзор инструментария OSINT
, , , , , , ,

OSINT подразумевает сбор и анализ общедоступной информации, в основном из сетевых источников. В разрезе кибербезопасности/пентеста OSINT чаще всего применяется для сбора публичных данных о компании, и это касается не только информации об адресах электронной почты ее сотрудников. Не менее интересной будет информация о:

  • DNS-именах и IP-адресах;
  • открытых портах;
  • запущенных сетевых службах;
  • наличии сервисов удаленного доступа;
  • незащищенных приложениях и операционных системах;
  • имеющихся механизмах безопасности.

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

Читать далее Разведка и сбор информации — обзор инструментария OSINT

(не)Безопасный веб: узнаем об уязвимостях раньше злоумышленника
, , , , , , ,

Обеспечение безопасности веб-приложений (сайтов, интернет-магазинов, личных кабинетов) и API — не такая простая задача, как может показаться на первый взгляд. Этому есть несколько причин:

  • веб-приложения доступны 24/7, и злоумышленник в любой момент может предпринять свою атаку;
  • веб-приложения представляют собой стек различных технологий, взаимодействие которых порой сложно осуществить;
  • веб-приложения часто бывают самописными и, к несчастью, это не делает их более защищенными;
  • веб-приложения изначально разрабатываются для улучшения имиджа компании и получения экономической выгоды, а об их безопасности задумываются далеко не в первую очередь;
  • благодаря веб-приложению можно получить различную ценную информацию, начиная от данных пользователей и заканчивая наработками компании-владельца.

Конечно, веб-разработчики стараются не допускать появлению уязвимостей, но в силу причин, описанных ранее, не всегда этого удается избежать, а иногда и исправить с первого раза. Чтобы разобраться с актуальными видами уязвимостей веб-приложений достаточно обратиться к одному из самых авторитетных проектов, посвященных веб-безопасности — OWASP. Помимо прочего, на ресурсе можно найти список наиболее опасных и актуальных уязвимостей веб-приложений под названием OWASP Top Ten:

  • А1 — Инъекции;
  • А2 — Недостатки аутентификации;
  • А3 — Разглашение конфиденциальных данных;
  • А4 — Внешние сущности XML (XXE);
  • А5 — Недостатки контроля доступа;
  • А6 — Некорректная настройка параметров безопасности;
  • А7 — Межсайтовое выполнение сценариев (XSS);
  • А8 — Небезопасная десериализация;
  • А9 — Использование компонентов с известными
    уязвимостями;
  • А10 — Недостатки журналирования и мониторинга.

Читать далее (не)Безопасный веб: узнаем об уязвимостях раньше злоумышленника

Enum4linux: получаем информацию из Active Directory
, , , ,

Проводя тестирование на проникновение, довольно часто приходится иметь дело с доменами Active Directory. Домен — группа подключенных к сети компьютеров, которые совместно используют информацию об учетных записях пользователей и политику безопасности. За его управление отвечает контроллер домена, на котором работает служба Active Directory, если используется Windows Server, или Samba — для Unix-подобных систем. Эти службы позволяют хранить информацию о самом домене, всех ее пользователях, настройках и т.д.

Чтобы получить информацию о домене, необходимо использовать специальный инструментарий, например Enum4linux. Этот инструмент написан на Perl и представляет собой обёртку вокруг инструментов из пакета Samba: smbclient, rpclient, net и nmblookup, поэтому необходимо установить сам пакет Samba в качестве зависимости.

Ключевые функции:

  • вывод списка пользователей;
  • вывод информации о членстве в группе;
  • перечисление общих ресурсов;
  • определение принадлежности к рабочей группе или к домену;
  • идентификация удалённой операционной системы;
  • получение информации о парольной политике.

Читать далее Enum4linux: получаем информацию из Active Directory

Тестирование на проникновение SNMP-устройств
, , ,

SNMP (англ. Simple Network Management Protocol — простой протокол сетевого управления) — стандартный интернет-протокол для управления устройствами в IP-сетях на основе TCP/UDP. К поддерживающим SNMP устройствам относятся маршрутизаторы, коммутаторы, серверы, рабочие станции, принтеры, модемные стойки и другие. Протокол обычно используется в системах сетевого управления для контроля подключённых к сети устройств на предмет условий, которые требуют внимания администратора. Разберем специализированный инструментарий для работы с SNMP-протоколом: onesixtyone и snmpwalk.

Читать далее Тестирование на проникновение SNMP-устройств

Эксплуатация XSS уязвимостей с использованием XSStrike
, , ,

XSS (Cross Site Scripting) — тип атаки, заключающийся во внедрении в выдаваемую веб-приложением страницу вредоносного кода, который будет выполнен на стороне пользователя при открытии им этой страницы. Являясь одним из наиболее популярных нарушением безопасности веб-приложений, атаки с использованием XSS вектора позволяют внедрять на страницу произвольное содержимое, перехватывать cookie и сессии других пользователей, получать доступ в закрытые раздела сайта и даже привелегии администратора веб-ресурса

Существует несколько видов XSS:

  • Хранимые — вредоносный код сохраняется на сервере и загружается с него каждый раз, когда пользователи запрашивают отображение той или иной страницы;
  • Отображаемые — вредоносная строка является частью запроса жертвы к веб-сайту. Сайт принимает и вставляет эту вредоносную строку в отправляемый ответ обратно пользователю;
  • XSS в DOM-модели — представляет собой вариант как хранимой, так и отображаемой XSS-атаки. В этой XSS-атаке вредоносная строка не обрабатывается браузером жертвы, пока настоящий JavaScript веб-сайта не выполнится.

XSStrike — это пакет обнаружения XSS-уязвимостей, оснащенный четырьмя рукописными синтаксическими анализаторами, интеллектуальным генератором полезной нагрузки, мощным механизмом фаззинга и быстрым сканером. Он распознаёт ответ с помощью нескольких анализаторов, и затем обрабатывает полезные данные, которые гарантированно будут работать с помощью контекстного анализа, интегрированного в механизм фаззинга.

Читать далее Эксплуатация XSS уязвимостей с использованием XSStrike

Пентест сетевого периметра с использованием Kali Linux
, , , ,

Внешний сетевой периметр чаще всего подвергается атакам, определяя перед техническими специалистами задачу — сделать его максимально защищенным и неприступным. Для этого необходимо проводить тестирование на проникновение, одним из этапов которого является сканирование периметра на наличие уязвимостей. Если привлечь сторонних специалистов для проведения работ возможности нет, на базовом уровне можно самостоятельно оценить защищенность сетевых ресурсов бесплатно, без регистрации и СМС.

Читать далее Пентест сетевого периметра с использованием Kali Linux

Атака на сайт с WordPress через JavaScript и XSS
, , , , , ,

Недавно Nemesida WAF заблокировал довольно занимательную попытку атаки с использованием XSS и JavaScript. Несмотря на то, что я не являюсь JS-разработчиком, ради интереса решил разобраться в сути атаки. Особенность вектора заключается в специфике работы самого WordPress — возможность редактировать файлы тем через админ-панель, позволяя незаметно для администратора внедрить вредоносный код.

Пейлоад, представленный в виде JS, размещается на сайте через XSS-уязвимость, после чего ждет своего исполнения. Отработанный на стороне администратора веб-ресурса, код модифицирует содержимое файла темы WordPress (header.php), позволяя злоумышленнику закрепиться в системе и полностью скомпрометировать веб-приложение. Читать далее Атака на сайт с WordPress через JavaScript и XSS

Магия Unicode или как взломать пользователя
, ,

Unicode — стандарт кодирования символов, включающий знаки почти всех письменных языков мира. Его использование началось после того, как стало понятно, что для разных языков нужны различные кодировки и поэтому их необходимо собрать воедино. Кодировкой называют представление цифр, букв и всех остальных символов в памяти компьютера и на понятном ему языке. Кодировки бывают разные, такие как, например, cp1251 или ISO-8859-1, но с течением времени их использование стало неудобным т.к. во-первых, для корректного отображения символов разных языков необходимо использовать разные кодировки. А во-вторых, числовое представление того или иного символа может быть одинаковым для разных букв в разных языках. Например, двоичное представление 0b11011111 в кодировке cp1251 — это буква «Я», но в то же время в кодировке ISO-8859-1 это немецкая Eszett. С появлением Unicode ситуация улучшилась и теперь все буквы и символы всех языков мира находятся в одной огромной таблице. Unicode — это стандарт, по которому символы связаны с некоторым числовым значением, а уже для представления этих чисел разработанны Unicode-кодировки, самыми распространенными из которых стали UTF-8 и UTF-16.

Читать далее Магия Unicode или как взломать пользователя