Uncovering CloudFlare

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Загальні техніки для розкриття Cloudflare

  • Ви можете скористатися сервісом, який надає історичні DNS-записи домену. Можливо, веб-сторінка працює на IP-адресі, який використовувався раніше.

  • Те ж саме можна досягти, перевіряючи історичні SSL-сертифікати, які можуть вказувати на IP-адресу походження.

  • Також перевірте DNS-записи інших піддоменів, що вказують безпосередньо на IP-адреси, оскільки можливо, що інші піддомени вказують на той самий сервер (можливо, для надання FTP, поштових або будь-яких інших послуг).

  • Якщо ви знаходите SSRF всередині веб-застосунку, ви можете зловживати цим, щоб отримати IP-адресу сервера.

  • Шукайте унікальний рядок веб-сторінки в браузерах, таких як shodan (і можливо google та подібні?). Можливо, ви зможете знайти IP-адресу з цим вмістом.

  • Аналогічно, замість пошуку унікального рядка, ви можете шукати іконку фавікону за допомогою інструменту: https://github.com/karma9874/CloudFlare-IP або за допомогою https://github.com/pielco11/fav-up

  • Це не працюватиме дуже часто, оскільки сервер повинен надсилати той самий відповідь, коли до нього звертаються за допомогою IP-адреси, але ви ніколи не знаєте.

Інструменти для розкриття Cloudflare

# You can check if the tool is working with
prips 1.0.0.0/30 | hakoriginfinder -h one.one.one.one

# If you know the company is using AWS you could use the previous tool to search the
## web page inside the EC2 IPs
DOMAIN=something.com
WIDE_REGION=us
for ir in `curl https://ip-ranges.amazonaws.com/ip-ranges.json | jq -r '.prefixes[] | select(.service=="EC2") | select(.region|test("^us")) | .ip_prefix'`; do
echo "Checking $ir"
prips $ir | hakoriginfinder -h "$DOMAIN"
done

Розкриття Cloudflare з хмарних машин

Зверніть увагу, що навіть якщо це було зроблено для машин AWS, це може бути зроблено для будь-якого іншого постачальника хмарних послуг.

Для кращого опису цього процесу перегляньте:

# Find open ports
sudo masscan --max-rate 10000 -p80,443 $(curl -s https://ip-ranges.amazonaws.com/ip-ranges.json | jq -r '.prefixes[] | select(.service=="EC2") | .ip_prefix' | tr '\n' ' ') | grep "open"  > all_open.txt
# Format results
cat all_open.txt | sed 's,.*port \(.*\)/tcp on \(.*\),\2:\1,' | tr -d " " > all_open_formated.txt
# Search actual web pages
httpx -silent -threads 200 -l all_open_formated.txt -random-agent -follow-redirects -json -no-color -o webs.json
# Format web results and remove eternal redirects
cat webs.json | jq -r "select((.failed==false) and (.chain_status_codes | length) < 9) | .url" | sort -u > aws_webs.json

# Search via Host header
httpx -json -no-color -list aws_webs.json -header Host: cloudflare.malwareworld.com -threads 250 -random-agent -follow-redirects -o web_checks.json

Обхід Cloudflare через Cloudflare

Автентифіковані походження даних

Цей механізм ґрунтується на клієнтських SSL-сертифікатах, щоб автентифікувати з'єднання між обертовими проксі-серверами Cloudflare та сервером походження, який називається mTLS.

Замість налаштування власного сертифіката, клієнти можуть просто використовувати сертифікат Cloudflare для дозволу будь-якого з'єднання від Cloudflare, незалежно від орендаря.

Отже, зловмисник може просто встановити домен в Cloudflare, використовуючи сертифікати Cloudflare та спрямувати його на IP-адресу жертви. Таким чином, налаштувавши свій домен абсолютно незахищеним, Cloudflare не буде захищати відправлені запити.

Додаткова інформація тут.

Дозволити IP-адреси Cloudflare

Це дозволить відхиляти з'єднання, які не походять від IP-адрес Cloudflare. Це також вразливо до попередньої настройки, де зловмисник просто спрямовує свій власний домен в Cloudflare на IP-адреси жертви та атакує його.

Додаткова інформація тут.

Обхід Cloudflare для парсингу

Кеш

Іноді вам просто потрібно обійти Cloudflare, щоб лише парсити веб-сторінку. Є деякі варіанти для цього:

  • Використовуйте кеш Google: https://webcache.googleusercontent.com/search?q=cache:https://www.petsathome.com/shop/en/pets/dog

  • Використовуйте інші служби кешу, такі як https://archive.org/web/

Розв'язувачі Cloudflare

Було розроблено кілька розв'язувачів Cloudflare:

Підсилені безголові браузери

Використовуйте безголовий браузер, який не виявляється як автоматизований браузер (можливо, вам потрібно налаштувати його для цього). Деякі варіанти:

  • Puppeteer: Плагін stealth для puppeteer.

  • Playwright: Плагін stealth незабаром з'явиться у Playwright. Слідкуйте за розвитком тут та тут.

  • Selenium: undetected-chromedriver оптимізований патч для Selenium Chromedriver.

Розумний проксі з вбудованим обхідом Cloudflare

Розумні проксі постійно оновлюються спеціалізованими компаніями з метою обійти заходи безпеки Cloudflare (оскільки це їх бізнес).

Деякі з них:

Для тих, хто шукає оптимізоване рішення, виділяється ScrapeOps Proxy Aggregator. Ця служба інтегрує понад 20 постачальників проксі в один API, автоматично вибираючи найкращий та найбільш ефективний проксі для ваших цільових доменів, пропонуючи таким чином перевагу для обходу захисту Cloudflare.

Реверсна інженерія захисту від ботів Cloudflare

Реверсна інженерія заходів проти ботів Cloudflare - це тактика, яку використовують розумні постачальники проксі, яка підходить для обширного парсингу веб-сторінок без високих витрат на запуск багатьох безголових браузерів.

Переваги: Цей метод дозволяє створити надзвичайно ефективний обхід, спрямований саме на перевірки Cloudflare, ідеально підходить для операцій великого масштабу.

Недоліки: Недолік полягає в складності розуміння та обману намагань Cloudflare усунути ботів, що вимагає постійних зусиль для тестування різних стратегій та оновлення обходу при покращенні захисту Cloudflare.

Дізнайтеся більше про це в оригінальній статті.

Посилання

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Last updated