Email Injections
Last updated
Last updated
Використовуйте Trickest, щоб легко створювати та автоматизувати робочі процеси, які підтримуються найсучаснішими інструментами спільноти. Отримайте доступ сьогодні:
Повідомлення буде надіслано на облікові записи отримувача та отримувача1.
Повідомлення буде надіслано оригінальному отримувачу та обліковому запису зловмисника.
Фальшива тема буде додана до оригінальної теми і в деяких випадках замінить її. Це залежить від поведінки поштового сервісу.
Вставте два переноси рядка, а потім напишіть своє повідомлення, щоб змінити тіло повідомлення.
Цей розділ буде базуватися на тому, як зловживати цим параметром, припускаючи, що зловмисник контролює його.
Цей параметр буде додано до командного рядка, який PHP буде використовувати для виклику бінарного файлу sendmail. Однак він буде очищений за допомогою функції escapeshellcmd($additional_parameters)
.
Зловмисник може впроваджувати додаткові параметри для sendmail в цьому випадку.
sendmail інтерфейс надається програмним забезпеченням MTA для електронної пошти (Sendmail, Postfix, Exim тощо), встановленим на системі. Хоча базова функціональність (така як параметри -t -i -f) залишається такою ж з причин сумісності, інші функції та параметри значно варіюються в залежності від встановленого MTA.
Ось кілька прикладів різних сторінок man команди/інтерфейсу sendmail:
Sendmail MTA: http://www.sendmail.org/~ca/email/man/sendmail.html
Postfix MTA: http://www.postfix.org/mailq.1.html
Exim MTA: https://linux.die.net/man/8/eximReferences
В залежності від походження бінарного файлу sendmail були виявлені різні опції для зловживання ними та витоку файлів або навіть виконання довільних команд. Перевірте, як це зробити в https://exploitbox.io/paper/Pwning-PHP-Mail-Function-For-Fun-And-RCE.html
Зверніть увагу, що якщо вам вдасться створити обліковий запис у сервісі з довільним доменним ім'ям (як-от Github, Gitlab, CloudFlare Zero trust...) і підтвердити його, отримавши електронний лист для підтвердження на вашу адресу електронної пошти, ви можете отримати доступ до чутливих місць компанії жертви.
Символи: +, - та {} рідко можуть використовуватися для тегування та ігноруються більшістю серверів електронної пошти.
Наприклад, john.doe+intigriti@example.com → john.doe@example.com
Коментарі в дужках () на початку або в кінці також будуть ігноруватися.
Наприклад, john.doe(intigriti)@example.com → john.doe@example.com
Ви також можете використовувати IP-адреси як доменні імена в квадратних дужках:
john.doe@[127.0.0.1]
john.doe@[IPv6:2001:db8::1]
Як пояснено в цьому дослідженні, імена електронної пошти також можуть містити закодовані символи:
PHP 256 переповнення: функція PHP chr
буде продовжувати додавати 256 до символу, поки він не стане позитивним, а потім виконати операцію %256
.
String.fromCodePoint(0x10000 + 0x40) // 𐁀 → @
Мета цього трюку полягає в тому, щоб закінчити з впровадженням на кшталт RCPT TO:<"collab@psres.net>collab"@example.com>
який надішле електронний лист для підтвердження на іншу адресу електронної пошти, відмінну від очікуваної (отже, щоб ввести іншу адресу електронної пошти всередині імені електронної пошти та зламати синтаксис при надсиланні електронної пошти).
Різні кодування:
Payloads:
Github: =?x?q?collab=40psres.net=3e=00?=foo@example.com
Зверніть увагу на закодований @
як =40, закодований >
як =3e
і null
як =00
Він надішле електронний лист для підтвердження на collab@psres.net
Zendesk: "=?x?q?collab=22=40psres.net=3e=00==3c22x?="@example.com
Та ж сама хитрість, але з додаванням звичайної лапки на початку та закодованої лапки =22
перед закодованим @
, а потім відкриттям і закриттям деяких лапок перед наступною електронною адресою, щоб виправити синтаксис, що використовується всередині Zendesk
Він надішле електронний лист для підтвердження на collab@psres.net
Gitlab: =?x?q?collab=40psres.net_?=foo@example.com
Зверніть увагу на використання підкреслення як пробілу для розділення адреси
Він надішле електронний лист для підтвердження на collab@psres.net
Punycode: Використовуючи Punycode, було можливим впровадити тег <style
в Joomla і зловживати ним для викрадення токена CSRF через ексфільтрацію CSS.
Є скрипт Burp Suite Turbo Intruder, щоб протестувати такі комбінації для спроби атаки на формати електронної пошти. Скрипт вже має потенційно робочі комбінації.
Також можливо використовувати Hackvertor для створення атаки на розділення електронної пошти
Деякі сервіси, такі як github або salesforce, дозволяють вам створити електронну адресу з XSS payloads на ній. Якщо ви можете використовувати цих постачальників для входу в інші сервіси і ці сервіси не очищають електронну пошту належним чином, ви можете викликати XSS.
Якщо SSO сервіс дозволяє вам створити обліковий запис без перевірки наданої електронної адреси (як salesforce) і потім ви можете використовувати цей обліковий запис для входу в інший сервіс, який довіряє salesforce, ви можете отримати доступ до будь-якого облікового запису. &#xNAN;Note, що salesforce вказує, чи була надана електронна адреса перевірена, але так само програма повинна враховувати цю інформацію.
Ви можете надіслати електронний лист, використовуючи From: company.com і Replay-To: attacker.com, і якщо будь-яка автоматична відповідь буде надіслана через те, що електронний лист був надісланий з внутрішньої адреси, зловмисник може отримати цю відповідь.
Деякі сервіси, такі як AWS, реалізують поріг, відомий як Hard Bounce Rate, зазвичай встановлений на 10%. Це критичний показник, особливо для сервісів доставки електронної пошти. Коли цей показник перевищується, сервіс, такий як електронна пошта AWS, може бути призупинений або заблокований.
Hard bounce відноситься до електронної пошти, яка була повернена відправнику, оскільки адреса отримувача недійсна або неіснуюча. Це може статися з різних причин, таких як електронна пошта, надіслана на неіснуючу адресу, домен, який не є реальним, або відмова сервера отримувача приймати електронні листи.
У контексті AWS, якщо ви надсилаєте 1000 електронних листів і 100 з них призводять до hard bounces (через такі причини, як недійсні адреси або домени), це означатиме 10% hard bounce rate. Досягнення або перевищення цього показника може призвести до блокування або призупинення можливостей надсилання електронної пошти AWS SES (Simple Email Service).
Важливо підтримувати низький показник hard bounce rate, щоб забезпечити безперебійну службу електронної пошти та підтримувати репутацію відправника. Моніторинг і управління якістю електронних адрес у ваших списках розсилки можуть значно допомогти в досягненні цього.
Для отримання більш детальної інформації можна звернутися до офіційної документації AWS щодо обробки відмов і скарг AWS SES Bounce Handling.
Use Trickest to easily build and automate workflows powered by the world's most advanced community tools. Get Access Today:
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)