WAF 우회 플레이북: 시그니처를 흔드는 작은 변형
WAF는 보통 정규식/시그니처 기반으로 요청을 차단합니다. 따라서 우회는 “기능은 유지하되 형태를 바꾸는” 전략이 핵심입니다. 아래는 CTF와 실전 테스트에서 자주 쓰는 변형 패턴입니다.
1) 인코딩/정규화 흔들기
- URL 인코딩 이중화(
%252f), 혼합 인코딩(%2f+/) - 유니코드 호환 문자(
%u2215등)로 슬래시/공백 대체 - 대소문자, 공백, 주석으로 토큰 분리
2) 페이로드 구조 바꾸기
- SQLi:
UNION/**/SELECT,/*!50000UNION*/같은 주석 분할 - XSS: 이벤트 핸들러 분산,
svg/math태그로 컨텍스트 전환 - SSTI: 필터 회피용 속성 체인 분해 (
__class__→attr체인)
3) 요청 경로/헤더 변형
- 동일 리소스를 다른 경로로 접근(
;/,..;/등) - 헤더 기반 우회:
X-Forwarded-For,X-Original-URL활용
방어 관점
- 서버단 정규화 우선 처리(decode → canonicalize) 후 검사
- WAF 룰을 행위 기반(rate/entropy/behavior)으로 보강
우회는 결국 “정규화 이전의 틈”을 찾는 게임입니다. 테스트 환경에서 합법적으로만 검증하세요.