
모든 유틸리티에서 전역적으로 작동하는 Portswigger Burp용 Match & Replace 규칙
글로벌 매치 & 리플레이스(GMR)는 Burp Suite에 매치/리플레이스 규칙을 추가하여 전역적으로 또는 선택한 여러 도구(Repeater, Intruder, Proxy 등)에 적용할 수 있게 합니다. 요청 및 응답별 diff를 제공하여 정확히 무엇이 변경되었는지 확인할 수 있습니다.
이 확장 프로그램은 Burp Montoya API를 사용합니다.
burp-global-match-replace-*.jar를 다운로드합니다../gradlew clean jar
JAR는 build/libs/에 생성됩니다.
참고: 이 프로젝트는 Burp 호환성을 위해 Java 21 바이트코드를 대상으로 합니다. 빌드를 실행하려면 Java 21+를 사용하세요(JAVA_HOME도 그에 맞게 설정).
각 규칙에는 다음 속성이 있습니다:
.는 줄바꿈과 일치하지 않습니다..는 줄바꿈과 일치합니다(DOTALL).^와 $는 항상 줄 단위로 동작합니다(MULTILINE 활성화).단순 규칙은 리터럴 텍스트를 선택적 와일드카드로 매칭합니다:
* → 임의 개수의 문자? → 정확히 한 문자기본적으로(multiline이 꺼져 있음) 와일드카드는 줄바꿈을 넘지 않습니다. multiline이 켜져 있으면 *와 ?는 줄바꿈을 넘을 수 있습니다.
리터럴 * 또는 ?를 매칭하려면 백슬래시로 이스케이프하세요:
\\* → 리터럴 *\\? → 리터럴 ?\\\\ → 리터럴 백슬래시예제(단일 라인): User-Agent 변경.
Match: User-Agent: *
Replace: User-Agent: Mozilla/5.0 (...) Chrome/123
RegEx 규칙은 표준 Java 정규식입니다. 엔진은 항상 MULTILINE을 사용하며 Multiline이 활성화된 경우에만 DOTALL을 사용합니다. 즉:
^와 $는 기본적으로 줄 경계와 일치합니다.는 multiline이 활성화되지 않는 한 줄바꿈과 일치하지 않습니다예제(단일 라인): 헤더 제거.
Match: ^X-Test:.*$\r?\n
Replace:
참고: 끝의 $\r?\n은 헤더 줄과 줄 끝을 함께 제거합니다. $만 사용하면 줄바꿈이 그대로 남습니다.
예제(멀티라인): HTML 주석 제거.
Match: <!--.*?-->
Replace:
Multiline: ON
Suite 탭은 전체 규칙 관리 및 테스트 기능을 제공합니다:
열:
테스트 출력은 다음 항목을 강조 표시합니다:
규칙이 요청이나 응답을 수정하면 요청/응답 편집기(Proxy, Repeater, Intruder 등)에 “GMR Diff” 탭이 나타납니다.
수정된 요청/응답은 노란색으로 강조 표시되고 메모는 “Global Match & Replace”로 설정됩니다.
GMR Diff 탭은 규칙이 실제로 메시지를 수정한 경우에만 표시됩니다. 변경 사항이 적용되지 않으면 탭이 나타나지 않습니다. 예를 들어 요청에만 또는 응답에만 GMR Diff가 있는 경우에는 다소 혼란스러울 수 있습니다.
<, >)으로 변경 사항을 순환합니다확장 프로그램 설정 페이지에는 다음이 포함됩니다:
$1 또는 역참조를 해석하지 않습니다.$1, $2 등을 지원합니다.GPL v3