# CloudFlare 드러내기
{{#include ../../banners/hacktricks-training.md}}
## Cloudflare를 드러내기 위한 일반적인 기술
- 도메인의 **과거 DNS 기록**을 제공하는 서비스를 사용할 수 있습니다. 웹 페이지가 이전에 사용된 IP 주소에서 실행되고 있을 수 있습니다.
- **과거 SSL 인증서**를 확인하여 원래 IP 주소를 가리키고 있을 수 있습니다.
- **IP를 직접 가리키는 다른 서브 도메인의 DNS 기록**도 확인하세요. 다른 서브 도메인이 같은 서버를 가리키고 있을 가능성이 있습니다(FTP, 메일 또는 기타 서비스를 제공하기 위해).
- 웹 애플리케이션 내에서 **SSRF를 찾으면** 이를 악용하여 서버의 IP 주소를 얻을 수 있습니다.
- shodan과 같은 브라우저에서 웹 페이지의 고유 문자열을 검색하세요(아마도 google 및 유사한 사이트에서도?). 해당 콘텐츠로 IP 주소를 찾을 수 있을지도 모릅니다.
- 고유 문자열을 찾는 대신 도구를 사용하여 파비콘 아이콘을 검색할 수 있습니다: [https://github.com/karma9874/CloudFlare-IP](https://github.com/karma9874/CloudFlare-IP) 또는 [https://github.com/pielco11/fav-up](https://github.com/pielco11/fav-up)
- 서버가 IP 주소로 접근할 때 동일한 응답을 보내야 하므로 이 방법은 자주 작동하지 않을 수 있지만, 알 수 없습니다.
## Cloudflare를 드러내기 위한 도구
- [http://www.crimeflare.org:82/cfs.html](http://www.crimeflare.org:82/cfs.html) 또는 [https://crimeflare.herokuapp.com](https://crimeflare.herokuapp.com)에서 도메인을 검색하세요. 또는 [CloudPeler](https://github.com/zidansec/CloudPeler) 도구를 사용하세요(해당 API를 사용합니다).
- [https://leaked.site/index.php?resolver/cloudflare.0/](https://leaked.site/index.php?resolver/cloudflare.0/)에서 도메인을 검색하세요.
- [**CloudFlair**](https://github.com/christophetd/CloudFlair)는 도메인 이름이 포함된 Censys 인증서를 사용하여 검색한 후, 해당 인증서 내의 IPv4를 검색하고 마지막으로 해당 IP에서 웹 페이지에 접근하려고 시도하는 도구입니다.
- [**CloakQuest3r**](https://github.com/spyboy-productions/CloakQuest3r): CloakQuest3r는 Cloudflare 및 기타 대안으로 보호된 웹사이트의 실제 IP 주소를 드러내기 위해 정교하게 제작된 강력한 Python 도구입니다. 이 도구의 핵심 임무는 Cloudflare의 보호막 뒤에 숨겨진 웹 서버의 실제 IP 주소를 정확하게 식별하는 것입니다.
- [Censys](https://search.censys.io/)
- [Shodan](https://shodan.io/)
- [Bypass-firewalls-by-DNS-history](https://github.com/vincentcox/bypass-firewalls-by-DNS-history)
- 웹 페이지가 위치할 가능성이 있는 IP 세트가 있다면 [https://github.com/hakluke/hakoriginfinder](https://github.com/hakluke/hakoriginfinder)를 사용할 수 있습니다.
```bash
# 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
```
## Cloud 인프라에서 Cloudflare 드러내기
이 과정이 AWS 머신을 위해 수행되었더라도, 다른 클라우드 제공업체에 대해서도 수행될 수 있음을 유의하세요.
이 프로세스에 대한 더 나은 설명은 다음을 확인하세요:
{{#ref}}
https://trickest.com/blog/cloudflare-bypass-discover-ip-addresses-aws/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks
{{#endref}}
```bash
# 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
```
## 클라우드플레어 우회하기
### 인증된 오리진 풀
이 메커니즘은 **클라이언트** [**SSL 인증서**](https://socradar.io/how-to-monitor-your-ssl-certificates-expiration-easily-and-why/) **를 사용하여** **Cloudflare의 리버스 프록시** 서버와 **오리진** 서버 간의 연결을 인증하는 데 의존합니다. 이를 **mTLS**라고 합니다.
고객은 자체 인증서를 구성하는 대신 Cloudflare의 인증서를 사용하여 **테넌트와 관계없이** Cloudflare에서 오는 모든 연결을 허용할 수 있습니다.
> [!CAUTION]
> 따라서 공격자는 **Cloudflare의 인증서를 사용하여 Cloudflare에 도메인을 설정하고** 이를 **피해자** 도메인 **IP** 주소로 지정할 수 있습니다. 이렇게 하면 자신의 도메인이 완전히 보호되지 않게 되어 Cloudflare는 전송된 요청을 보호하지 않습니다.
자세한 정보는 [**여기**](https://socradar.io/cloudflare-protection-bypass-vulnerability-on-threat-actors-radar/)에서 확인하세요.
### 허용 목록 Cloudflare IP 주소
이 설정은 **Cloudflare의** IP 주소 범위에서 발생하지 않는 연결을 **거부**합니다. 이는 공격자가 **Cloudflare에서 자신의 도메인을** 피해자의 IP 주소로 지정하고 공격하는 이전 설정에 취약합니다.
자세한 정보는 [**여기**](https://socradar.io/cloudflare-protection-bypass-vulnerability-on-threat-actors-radar/)에서 확인하세요.
## 스크래핑을 위한 Cloudflare 우회
### 캐시
때때로 웹 페이지를 스크래핑하기 위해 Cloudflare를 우회하고 싶을 수 있습니다. 이를 위한 몇 가지 옵션이 있습니다:
- Google 캐시 사용: `https://webcache.googleusercontent.com/search?q=cache:https://www.petsathome.com/shop/en/pets/dog`
- [https://archive.org/web/](https://archive.org/web/)와 같은 다른 캐시 서비스 사용
### 도구
다음과 같은 도구는 Cloudflare의 스크래핑 방어를 우회할 수 있습니다(또는 우회할 수 있었습니다):
- [https://github.com/sarperavci/CloudflareBypassForScraping](https://github.com/sarperavci/CloudflareBypassForScraping)
### Cloudflare 솔버
여러 가지 Cloudflare 솔버가 개발되었습니다:
- [FlareSolverr](https://github.com/FlareSolverr/FlareSolverr)
- [cloudscraper](https://github.com/VeNoMouS/cloudscraper) [가이드 여기](https://scrapeops.io/python-web-scraping-playbook/python-cloudscraper/)
- [cloudflare-scrape](https://github.com/Anorov/cloudflare-scrape)
- [CloudflareSolverRe](https://github.com/RyuzakiH/CloudflareSolverRe)
- [Cloudflare-IUAM-Solver](https://github.com/ninja-beans/cloudflare-iuam-solver)
- [cloudflare-bypass](https://github.com/devgianlu/cloudflare-bypass) \[아카이브됨\]
- [CloudflareSolverRe](https://github.com/RyuzakiH/CloudflareSolverRe)
### 강화된 헤드리스 브라우저
자동화된 브라우저로 감지되지 않는 헤드리스 브라우저를 사용하세요(이를 위해 사용자 정의가 필요할 수 있습니다). 몇 가지 옵션은 다음과 같습니다:
- **Puppeteer:** [puppeteer](https://github.com/puppeteer/puppeteer)용 [스텔스 플러그인](https://github.com/berstend/puppeteer-extra/tree/master/packages/puppeteer-extra-plugin-stealth).
- **Playwright:** [스텔스 플러그인](https://www.npmjs.com/package/playwright-stealth)이 곧 Playwright에 추가됩니다. 개발 상황은 [여기](https://github.com/berstend/puppeteer-extra/issues/454)와 [여기](https://github.com/berstend/puppeteer-extra/tree/master/packages/playwright-extra)에서 확인하세요.
- **Selenium:** 최적화된 Selenium Chromedriver 패치인 [undetected-chromedriver](https://github.com/ultrafunkamsterdam/undetected-chromedriver).
### Cloudflare 내장 우회 기능이 있는 스마트 프록시
**스마트 프록시**는 전문 회사에 의해 지속적으로 업데이트되어 Cloudflare의 보안 조치를 우회하는 것을 목표로 합니다(이것이 그들의 비즈니스입니다).
그 중 일부는 다음과 같습니다:
- [ScraperAPI](https://www.scraperapi.com/?fp_ref=scrapeops)
- [Scrapingbee](https://www.scrapingbee.com/?fpr=scrapeops)
- [Oxylabs](https://oxylabs.go2cloud.org/aff_c?offer_id=7&aff_id=379&url_id=32)
- [Smartproxy](https://prf.hn/click/camref:1100loxdG/[p_id:1100l442001]/destination:https%3A%2F%2Fsmartproxy.com%2Fscraping%2Fweb)는 독점적인 Cloudflare 우회 메커니즘으로 주목받고 있습니다.
최적화된 솔루션을 찾는 사람들을 위해 [ScrapeOps Proxy Aggregator](https://scrapeops.io/proxy-aggregator/)가 두드러집니다. 이 서비스는 20개 이상의 프록시 제공업체를 단일 API로 통합하여 대상 도메인에 대해 가장 좋고 비용 효율적인 프록시를 자동으로 선택하여 Cloudflare의 방어를 탐색하는 데 우수한 옵션을 제공합니다.
### Cloudflare 안티봇 보호 리버스 엔지니어링
Cloudflare의 안티봇 조치를 리버스 엔지니어링하는 것은 스마트 프록시 제공업체가 사용하는 전술로, 많은 헤드리스 브라우저를 운영하는 높은 비용 없이 대규모 웹 스크래핑에 적합합니다.
**장점:** 이 방법은 Cloudflare의 검사를 특정적으로 목표로 하는 매우 효율적인 우회를 생성할 수 있어 대규모 작업에 이상적입니다.
**단점:** 단점은 Cloudflare의 의도적으로 불투명한 안티봇 시스템을 이해하고 속이는 데 복잡성이 수반되며, Cloudflare가 보호를 강화함에 따라 다양한 전략을 테스트하고 우회를 업데이트하는 지속적인 노력이 필요하다는 것입니다.
이 방법에 대한 자세한 정보는 [원본 기사](https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/)에서 확인하세요.
## 참고 문헌
- [https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/](https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/)
{{#include ../../banners/hacktricks-training.md}}