Виявлення CloudFlare
Reading time: 7 minutes
tip
Вивчайте та практикуйте 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.
Загальні техніки для виявлення 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
- Шукайте домен на http://www.crimeflare.org:82/cfs.html або https://crimeflare.herokuapp.com. Або використовуйте інструмент CloudPeler (який використовує це API)
- Шукайте домен на https://leaked.site/index.php?resolver/cloudflare.0/
- CloudFlair - це інструмент, який буде шукати, використовуючи сертифікати Censys, що містять ім'я домену, потім він шукатиме IPv4 всередині цих сертифікатів і, нарешті, спробує отримати доступ до веб-сторінки на цих IP-адресах.
- CloakQuest3r: CloakQuest3r - це потужний інструмент Python, ретельно розроблений для виявлення справжньої IP-адреси веб-сайтів, захищених Cloudflare та іншими альтернативами, широко використовуваною службою безпеки вебу та підвищення продуктивності. Його основна місія - точно визначити фактичну IP-адресу веб-серверів, які приховані за захисним щитом Cloudflare.
- Censys
- Shodan
- Bypass-firewalls-by-DNS-history
- Якщо у вас є набір потенційних IP-адрес, де розташована веб-сторінка, ви можете використовувати https://github.com/hakluke/hakoriginfinder
# 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, незалежно від орендатора.
caution
Отже, зловмисник може просто налаштувати домен у 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
Було розроблено кілька розв'язувачів Cloudflare:
- FlareSolverr
- cloudscraper Посібник тут
- cloudflare-scrape
- CloudflareSolverRe
- Cloudflare-IUAM-Solver
- cloudflare-bypass [Архівовано]
- CloudflareSolverRe
Посилені безголові браузери
Використовуйте безголовий браузер, який не виявляється як автоматизований браузер (можливо, вам потрібно буде налаштувати його для цього). Деякі варіанти:
- Puppeteer: плагін stealth для puppeteer.
- Playwright: плагін stealth незабаром з'явиться в Playwright. Слідкуйте за розвитком тут і тут.
- Selenium: undetected-chromedriver - оптимізований патч для Selenium Chromedriver.
Розумний проксі з вбудованим обходом Cloudflare
Розумні проксі постійно оновлюються спеціалізованими компаніями, які прагнуть обійти заходи безпеки Cloudflare (оскільки це їхній бізнес).
Деякі з них:
- ScraperAPI
- Scrapingbee
- Oxylabs
- Smartproxy відомі своїми власними механізмами обходу Cloudflare.
Для тих, хто шукає оптимізоване рішення, ScrapeOps Proxy Aggregator виділяється. Ця служба інтегрує понад 20 постачальників проксі в один API, автоматично вибираючи найкращий і найекономічніший проксі для ваших цільових доменів, пропонуючи таким чином вищий варіант для обходу захисту Cloudflare.
Реверс-інжиніринг захисту Cloudflare від ботів
Реверс-інжиніринг заходів захисту Cloudflare від ботів є тактикою, яку використовують постачальники розумних проксі, що підходить для масштабного веб-скрапінгу без високих витрат на запуск багатьох безголових браузерів.
Переваги: Цей метод дозволяє створити надзвичайно ефективний обхід, який спеціально націлений на перевірки Cloudflare, ідеально підходить для масштабних операцій.
Недоліки: Недоліком є складність, пов'язана з розумінням і обманом навмисно заплутаної системи захисту Cloudflare від ботів, що вимагає постійних зусиль для тестування різних стратегій і оновлення обходу, оскільки Cloudflare покращує свої заходи захисту.
Знайдіть більше інформації про те, як це зробити, в оригінальній статті.
Посилання
tip
Вивчайте та практикуйте 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.