# 클라우드플레어 발견하기
htARTE (HackTricks AWS Red Team Expert)를 통해 **제로부터 영웅까지 AWS 해킹 배우기**!
HackTricks를 지원하는 다른 방법:
* **회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드**하려면 [**구독 요금제**](https://github.com/sponsors/carlospolop)를 확인하세요!
* [**공식 PEASS & HackTricks 스왜그**](https://peass.creator-spring.com)를 구매하세요
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요, 당사의 독점 [**NFTs**](https://opensea.io/collection/the-peass-family) 컬렉션
* **💬 [디스코드 그룹](https://discord.gg/hRep4RUj7f)** 또는 [텔레그램 그룹](https://t.me/peass)에 **가입**하거나 **트위터** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**를 팔로우**하세요.
* **HackTricks** 및 **HackTricks Cloud** github 저장소에 PR을 제출하여 **해킹 트릭을 공유**하세요.
## 클라우드플레어 발견하는 일반적인 기술
* 도메인의 **과거 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 주소로 액세스될 때 동일한 응답을 보내야 하기 때문에 매우 자주 작동하지 않을 수 있지만, 알 수 없습니다.
## 클라우드플레어 발견하는 도구
* [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
```
## 클라우드 인프라에서 Cloudflare 노출
AWS 기계를 위해 수행되었더라도 다른 클라우드 제공업체에 대해서도 수행할 수 있습니다.
이 프로세스에 대한 더 나은 설명을 위해 다음을 확인하십시오:
{% embed url="https://trickest.com/blog/cloudflare-bypass-discover-ip-addresses-aws/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
```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/)를 활용하여 **클라우드플레어의 리버스 프록시** 서버와 **오리진** 서버 간의 연결을 인증하는데 사용됩니다. 이를 **mTLS**라고 합니다.
고객은 자체 인증서를 구성하는 대신 클라우드플레어의 인증서를 사용하여 클라우드플레어로부터의 모든 연결을 허용할 수 있습니다. **임차인에 관계없이**.
{% hint style="danger" %}
따라서 공격자는 클라우드플레어의 인증서를 사용하여 클라우드플레어에 **도메인을 설정하고** 해당 도메인을 **피해자** 도메인 **IP 주소로 지정**할 수 있습니다. 이렇게 하면 공격자의 도메인이 완전히 무방비 상태가 되어 클라우드플레어가 보낸 요청을 보호하지 않습니다.
{% endhint %}
자세한 정보는 [**여기**](https://socradar.io/cloudflare-protection-bypass-vulnerability-on-threat-actors-radar/)에서 확인할 수 있습니다.
### 클라우드플레어 IP 주소 허용 목록
이는 클라우드플레어의 IP 주소 범위에서 비롯하지 않은 연결을 **거부**합니다. 이는 공격자가 클라우드플레어에 자신의 도메인을 **피해자 IP** 주소로 지정하고 공격하는 이전 설정에도 취약합니다.
자세한 정보는 [**여기**](https://socradar.io/cloudflare-protection-bypass-vulnerability-on-threat-actors-radar/)에서 확인할 수 있습니다.
## 스크래핑을 위한 클라우드플레어 우회
### 캐시
가끔은 클라우드플레어를 우회하여 웹 페이지를 스크래핑하고 싶을 때가 있습니다. 이를 위한 몇 가지 옵션이 있습니다:
* Google 캐시 사용: `https://webcache.googleusercontent.com/search?q=cache:https://www.petsathome.com/shop/en/pets/dog`
* [https://archive.org/web/](https://archive.org/web/)와 같은 다른 캐시 서비스 사용
### 도구
다음과 같은 도구들은 클라우드플레어의 스크래핑에 대한 보호를 우회할 수 있었거나 우회할 수 있습니다:
* [https://github.com/sarperavci/CloudflareBypassForScraping](https://github.com/sarperavci/CloudflareBypassForScraping)
### 클라우드플레어 솔버
다음과 같은 여러 클라우드플레어 솔버가 개발되었습니다:
* [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)의 [stealth 플러그인](https://github.com/berstend/puppeteer-extra/tree/master/packages/puppeteer-extra-plugin-stealth).
* **Playwright:** [stealth 플러그인](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:** [undetected-chromedriver](https://github.com/ultrafunkamsterdam/undetected-chromedriver)는 최적화된 Selenium Chromedriver 패치입니다.
### 클라우드플레어 내장 우회 기능이 있는 스마트 프록시
**스마트 프록시**는 클라우드플레어의 보안 조치를 뛰어넘기 위해 전문 회사에 의해 지속적으로 업데이트되며, 이는 그들의 비즈니스입니다.
일부는 다음과 같습니다:
* [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)은 독점적인 클라우드플레어 우회 메커니즘으로 유명합니다.
최적화된 솔루션을 찾는 사람들을 위해 [ScrapeOps Proxy Aggregator](https://scrapeops.io/proxy-aggregator/)가 두드러집니다. 이 서비스는 20개 이상의 프록시 제공업체를 단일 API로 통합하여 대상 도메인에 대해 최상의 및 가장 비용 효율적인 프록시를 자동으로 선택하므로 클라우드플레어의 방어에 대한 우수한 옵션을 제공합니다.
### 클라우드플레어 안티-봇 보호 역공학
클라우드플레어의 안티-봇 조치를 역공학하는 것은 스마트 프록시 제공업체가 사용하는 전략으로, 많은 헤드리스 브라우저를 실행하는 높은 비용 없이 광범위한 웹 스크래핑에 적합합니다.
**장점:** 이 방법은 클라우드플레어의 체크를 특정 대상으로 하는 매우 효율적인 우회 생성을 가능하게 하며 대규모 작업에 이상적입니다.
**단점:** 클라우드플레어의 의도적으로 모호한 안티-봇 시스템을 이해하고 속이는 복잡성이 있으며, 클라우드플레어가 보호를 강화함에 따라 다양한 전략을 테스트하고 우회를 업데이트하는 지속적인 노력이 필요합니다.
이에 대한 자세한 정보는 [원문 기사](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/)