Uncovering CloudFlare

Support HackTricks

Common Techniques to Uncover Cloudflare

  • 도메인의 과거 DNS 기록을 제공하는 서비스를 사용할 수 있습니다. 웹 페이지가 이전에 사용된 IP 주소에서 실행되고 있을 수 있습니다.

  • 과거 SSL 인증서를 확인하여 원본 IP 주소를 가리킬 수 있습니다.

  • IP를 직접 가리키는 다른 서브도메인의 DNS 기록도 확인하세요. 다른 서브도메인이 같은 서버를 가리킬 가능성이 있습니다(FTP, 메일 또는 기타 서비스를 제공하기 위해).

  • 웹 애플리케이션 내에서 SSRF를 찾으면 이를 악용하여 서버의 IP 주소를 얻을 수 있습니다.

  • shodan과 같은 브라우저에서 웹 페이지의 고유 문자열을 검색하세요(아마도 구글 및 유사한 서비스도?). 해당 콘텐츠로 IP 주소를 찾을 수 있을지도 모릅니다.

  • 고유 문자열을 찾는 대신, 도구를 사용하여 파비콘 아이콘을 검색할 수 있습니다: https://github.com/karma9874/CloudFlare-IP 또는 https://github.com/pielco11/fav-up

  • 서버가 IP 주소로 접근할 때 동일한 응답을 보내야 하므로 이 방법은 자주 작동하지 않을 수 있지만, 알 수 없습니다.

Tools to uncover 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

Uncovering Cloudflare from Cloud infrastructure

이 과정이 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 우회하기

인증된 오리진 풀

이 메커니즘은 클라이언트 SSL 인증서 를 사용하여 Cloudflare의 리버스 프록시 서버와 오리진 서버 간의 연결을 인증하는 데 의존합니다. 이를 mTLS라고 합니다.

고객은 자체 인증서를 구성하는 대신 Cloudflare의 인증서를 사용하여 Cloudflare에서 오는 모든 연결을 허용할 수 있습니다. 테넌트와 관계없이 말이죠.

따라서 공격자는 Cloudflare의 인증서를 사용하여 Cloudflare에 도메인을 설정하고 이를 피해자 도메인 IP 주소로 포인팅할 수 있습니다. 이렇게 하면 자신의 도메인이 완전히 보호되지 않게 되어 Cloudflare는 전송된 요청을 보호하지 않습니다.

자세한 정보는 여기에서 확인하세요.

Cloudflare IP 주소 허용 목록

이 설정은 Cloudflare의 IP 주소 범위에서 발생하지 않는 연결을 거부합니다. 이는 공격자가 자신의 도메인을 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 솔버가 개발되었습니다:

강화된 헤드리스 브라우저

자동화된 브라우저로 감지되지 않는 헤드리스 브라우저를 사용하세요(이를 위해 사용자 정의가 필요할 수 있습니다). 몇 가지 옵션은 다음과 같습니다:

Cloudflare 내장 우회 기능이 있는 스마트 프록시

스마트 프록시는 전문 회사에 의해 지속적으로 업데이트되어 Cloudflare의 보안 조치를 우회하는 것을 목표로 합니다(그들이 하는 일이죠).

그 중 일부는 다음과 같습니다:

최적화된 솔루션을 찾는 분들을 위해 ScrapeOps Proxy Aggregator가 두드러집니다. 이 서비스는 20개 이상의 프록시 제공업체를 단일 API로 통합하여, 대상 도메인에 대해 가장 좋고 비용 효율적인 프록시를 자동으로 선택하여 Cloudflare의 방어를 우회하는 데 우수한 옵션을 제공합니다.

Cloudflare 안티봇 보호 리버스 엔지니어링

Cloudflare의 안티봇 조치를 리버스 엔지니어링하는 것은 스마트 프록시 제공업체가 사용하는 전술로, 많은 헤드리스 브라우저를 운영하는 높은 비용 없이 대규모 웹 스크래핑에 적합합니다.

장점: 이 방법은 Cloudflare의 검사를 특정적으로 목표로 하는 매우 효율적인 우회를 생성할 수 있습니다. 대규모 작업에 이상적입니다.

단점: 단점은 Cloudflare의 의도적으로 모호한 안티봇 시스템을 이해하고 속이는 데 복잡성이 수반되며, Cloudflare가 보호를 강화함에 따라 다양한 전략을 테스트하고 우회를 업데이트하는 지속적인 노력이 필요하다는 것입니다.

이 방법에 대한 자세한 내용은 원본 기사에서 확인하세요.

참고 문헌

HackTricks 지원하기

Last updated