💬 #заметки #web #offense
➡️Прочитала статью и вспомнились подобные случаи из своей практики; Но мне нельзя такое рассказывать, поэтому просто раздам непрошеные советы 👋
🧩 ‟Службы поддержки: где искать баги и получать награды” (@kosecchannel)
1️⃣ Входные точки
Правильно говорят: подумайте, откуда поддержка принимает обращения и как их регистрирует;
➖Встроенный самописный чат?
➖Встроенный third-party чат?
➖Мессенджеры / Соц. сети?
➖Электронная почта?
➖Звонки? (заявки могут регистрироваться ботом)
2️⃣ Связь пользователь-заявка
В случае встроенных чатов: не забывайте про ошибки логики; В частности — Improper Access Control и Mass Assignment!
▪️Гляньте, как авторизуются обращения:
▪️Что в cookie?
▪️Что в заголовке Authorization?
▪️А если использовать чужие cookie / заголовок?
▪️А если удалить что-то одно / всё вместе?
▪️Гляньте, как обращения привязываются к пользователю:
▪️Что если переписать данные в обращении?
▪️Что если дописать к имеющимся параметрам: телефон, почту, ФИО, юзернейм, идентификатор пользователя, идентификатор тикета, ещё одно обращение?
➖Как элемент объекта-словаря:
{"name": "Ivan", "phone": "12345", "phone": 🚩, "email": "ivan@gmail.com", "text": "test"}
{"name": "Ivan", "phone": "12345", "email": "ivan@gmail.com", "text": "test", "clientId": 🚩}
➖Как значение внутри массива:
{"name": "Ivan", "phone": "12345", "email": ["ivan@gmail.com", "🚩"], "text": "test"}
➖Как доп. объект:
[{"name": "Ivan", "phone": "12345", "email": "ivan@gmail.com", "text": "test"}, {"name": "🚩", "phone": "🚩", "email": "🚩", "text": "test"}]
▪️Отправляются ли такие сообщения / Вызывают ошибку?
▪️Если есть возможность проверить: к какому пользователю привязалось обращение?
➖К тому, чьи данные были указаны в обращении;
➖К тому, кому принадлежат куки / заголовки в рамках запроса;
3️⃣ Информация ОТ поддержки ДЛЯ вас
Обратите внимание на информацию, предоставляемую пользователю в интерфейсе обращения / в самом ответе!
4️⃣ Вектора атак
В зависимости от сервиса, обрабатывающего обращения, подумайте над векторами атак, например:
▪Data Leak
Извлечение информации о пользователях приложения;
▪XSS
Взаимодействие с другими обращениями, эксфильтрация информации из интерфейса оператора, ...;
▪HTML Injection
Площадка для соц. инженерии, потенциальные UI Redressing➡️Clickjacking;
▪E-mail Injection
Потенциальные имперсонация➡️спуфинг / XSS через ошибки парсинга;
➡️ Рекомендую почитать наш материал на эту тему!
▪DoS
Крупные (или маленькие!) письма и файлы, которые могли бы остановить работу конкретного оператора или сервиса в целом;
➡️ Рекомендую посмотреть пост на эту тему!
▪SSTI
А если содержимое писем подставляется в шаблон? Можно попробовать получить отстук на свой хост, чтобы убедиться;
▪Prompt Injection
А если на том конце формы прячется ИИ-агент? 🤔
5️⃣ Информация ОТ вас ДЛЯ поддержки
@HaHacking 🐇
➡️Прочитала статью и вспомнились подобные случаи из своей практики; Но мне нельзя такое рассказывать, поэтому просто раздам непрошеные советы 👋
🧩 ‟Службы поддержки: где искать баги и получать награды” (@kosecchannel)
1️⃣ Входные точки
Правильно говорят: подумайте, откуда поддержка принимает обращения и как их регистрирует;
➖Встроенный самописный чат?
➖Встроенный third-party чат?
➖Мессенджеры / Соц. сети?
➖Электронная почта?
➖Звонки? (заявки могут регистрироваться ботом)
2️⃣ Связь пользователь-заявка
В случае встроенных чатов: не забывайте про ошибки логики; В частности — Improper Access Control и Mass Assignment!
▪️Гляньте, как авторизуются обращения:
▪️Что в cookie?
▪️Что в заголовке Authorization?
▪️А если использовать чужие cookie / заголовок?
▪️А если удалить что-то одно / всё вместе?
▪️Гляньте, как обращения привязываются к пользователю:
▪️Что если переписать данные в обращении?
▪️Что если дописать к имеющимся параметрам: телефон, почту, ФИО, юзернейм, идентификатор пользователя, идентификатор тикета, ещё одно обращение?
➖Как элемент объекта-словаря:
{"name": "Ivan", "phone": "12345", "phone": 🚩, "email": "ivan@gmail.com", "text": "test"}
{"name": "Ivan", "phone": "12345", "email": "ivan@gmail.com", "text": "test", "clientId": 🚩}
➖Как значение внутри массива:
{"name": "Ivan", "phone": "12345", "email": ["ivan@gmail.com", "🚩"], "text": "test"}
➖Как доп. объект:
[{"name": "Ivan", "phone": "12345", "email": "ivan@gmail.com", "text": "test"}, {"name": "🚩", "phone": "🚩", "email": "🚩", "text": "test"}]
▪️Отправляются ли такие сообщения / Вызывают ошибку?
▪️Если есть возможность проверить: к какому пользователю привязалось обращение?
➖К тому, чьи данные были указаны в обращении;
➖К тому, кому принадлежат куки / заголовки в рамках запроса;
3️⃣ Информация ОТ поддержки ДЛЯ вас
Обратите внимание на информацию, предоставляемую пользователю в интерфейсе обращения / в самом ответе!
💬 В моём случае однажды служба поддержки переслала мне цитату из моего обращения, где чётко читались заголовки письма (см. прикреплённую картинку-пример) – они могут быть встроены почтовым сервисом / сервисом тикетов – это помогло понять, на какой параметр опирается сервис для образования связи пользователь-заявка;
4️⃣ Вектора атак
В зависимости от сервиса, обрабатывающего обращения, подумайте над векторами атак, например:
▪Data Leak
Извлечение информации о пользователях приложения;
💬 В примере на картинке: если заявка отправлялась без входа в аккаунт, она привязывалась к указанному номеру телефона, ответы приходили на почту из заявки ➡️ в ответах раскрывались настоящие данные пользователя, если указанный телефон был зарегистрирован в приложении; оставалось автоматизировать ⚡️
▪XSS
Взаимодействие с другими обращениями, эксфильтрация информации из интерфейса оператора, ...;
▪HTML Injection
Площадка для соц. инженерии, потенциальные UI Redressing➡️Clickjacking;
▪E-mail Injection
Потенциальные имперсонация➡️спуфинг / XSS через ошибки парсинга;
➡️ Рекомендую почитать наш материал на эту тему!
▪DoS
Крупные (или маленькие!) письма и файлы, которые могли бы остановить работу конкретного оператора или сервиса в целом;
➡️ Рекомендую посмотреть пост на эту тему!
▪SSTI
А если содержимое писем подставляется в шаблон? Можно попробовать получить отстук на свой хост, чтобы убедиться;
▪Prompt Injection
А если на том конце формы прячется ИИ-агент? 🤔
5️⃣ Информация ОТ вас ДЛЯ поддержки
💬 Смешно, но работает:
Некоторые службы поддержки могут [полу-]автоматически отзываться на сообщения вида "тест" / "test" / "ping" — попробуйте как-нибудь!😊
@HaHacking 🐇