Burp Suite · 2026-02-23

Burp Suite에서 자동화된 인증 우회 테스트 구성

Burp Suite를 활용한 자동화된 인증 우회 테스트의 개념과 구성, 세션 핸들링·매크로·Intruder 설정 및 검사 흐름에 대한 단계별 절차

작성일 : 2026-02-23 ㆍ 작성자 : 관리자
post
목차

개요

인증 우회 취약점은 웹 애플리케이션 보안에서 발견 빈도가 높은 문제다. Burp Suite는 다양한 도구를 결합해 자동화된 인증 우회 테스트를 구성할 수 있다. 이 문서는 초보자가 이해하기 쉬운 흐름으로 구성 요소와 설정 절차, 자동화 시나리오를 설명한다.

핵심 개념

인증 우회의 종류

  • 세션 관리 취약점: 세션 토큰 재사용, 고정 토큰
  • 인증 논리 취약점: 권한 검사 누락, 인가 무시
  • 리플레이·타이밍 취약점: 재전송으로 접근 권한 획득

Burp Suite 역할

Burp는 프록시, Repeater, Intruder, Scanner, Extender와 같은 도구를 제공한다. 이들 조합으로 인증 흐름을 재현하고, 인증 토큰을 갱신하거나 매크로로 로그인 과정을 자동화할 수 있다. 또한 세션 핸들링 규칙을 통해 요청 전후 처리를 일괄 적용한다.

필요한 준비물

  • Burp Suite (Community 또는 Professional; 자동화 고급 기능은 Professional 권장)
  • 테스트 대상의 인증 흐름에 접근 가능한 계정
  • 간단한 스크립트 실행 환경(Python 등) — 확장 자동화가 필요한 경우

구성 요소별 설정

1. 세션 핸들링 규칙(Session Handling Rules)

세션 핸들링 규칙은 자동 로그인, 토큰 추출, 헤더 삽입 같은 전처리를 담당한다. 규칙은 트리거와 액션으로 구성된다. 트리거는 특정 요청·응답 패턴이고, 액션은 매크로 실행, 쿠키 덮어쓰기, 리퀘스트 재작성 등이다.

  • 매크로 생성: 로그인 요청을 매크로로 녹화한다.
  • 응답 파싱: 정규식으로 세션 토큰 값을 추출한다.
  • 토큰 삽입: 추출한 값을 이후 요청의 쿠키나 헤더에 반영한다.

2. 매크로(Macros)

매크로는 여러 요청을 묶어 로그인 과정을 자동화한다. 로그인 폼의 CSRF 토큰을 함께 처리해야 한다. 매크로 실행 후에는 항상 새로운 세션 값을 추출하도록 구성한다.

3. Intruder 자동화

Intruder는 페이로드 주입과 자동화된 반복 요청에 유용하다. 인증 우회 테스트에서는 다음과 같은 패턴이 자주 사용된다.

  • 페이로드 위치: URL, 쿠키, 세션 토큰, Authorization 헤더
  • 페이로드 종류: 세션 변조 값, 공백/널 바이트, 권한 레벨 값 등
  • 세션 갱신 정책: 각 요청 전에 매크로를 실행하거나 세션 핸들링 규칙으로 토큰 갱신

테스트 흐름 설계

자동화된 인증 우회 테스트는 단계적 흐름으로 설계된다. 먼저 정상 로그인 매크로를 녹화한다. 그런 다음 매크로가 반환하는 세션 값 추출 규칙을 만든다. 이후 Intruder를 설정해 각 페이로드 반복 시점에 세션 갱신이 일어나도록 연결한다.

권장 절차

  • 로그인 시나리오 확인 및 매크로 녹화
  • 응답에서 토큰 추출용 정규식 작성
  • 세션 핸들링 규칙에 매크로 연결 및 토큰 삽입 설정
  • Intruder에 요청 템플릿 등록 및 페이로드 위치 지정
  • 스레드·타임아웃 설정으로 부하와 정확성 균형 조정

실전 예시

간단한 로그인 폼과 보호된 엔드포인트를 가정한다. 로그인 응답에서 JSON 형태로 session_id가 반환된다고 가정하면, 정규식으로 값을 추출해 이후 요청의 Authorization 헤더에 삽입할 수 있다.

import requests

# 예시 스크립트: 로그인 후 세션 토큰으로 보호된 엔드포인트 호출
login_url = 'https://example.com/api/login'
protected_url = 'https://example.com/api/protected'

s = requests.Session()
resp = s.post(login_url, json={'username':'test', 'password':'pass'})
if resp.status_code == 200:
    data = resp.json()
    token = data.get('session_id')
    headers = {'Authorization': f'Bearer {token}'}
    r2 = s.get(protected_url, headers=headers)
    print(r2.status_code, r2.text)

위 스크립트는 Burp 자동화의 개념을 단순화해서 보여준다. 실제 Burp 설정에서는 매크로와 세션 핸들링 규칙으로 동일한 흐름을 구성하고, Intruder를 통해 다양한 페이로드를 주입한다.

검증과 결과 해석

자동화 테스트 결과는 응답 코드, 응답 바디, 권한 레벨 변화 등으로 판단한다. 중요한 지표는 다음과 같다.

  • 200번대 응답이 인증 없이 접근 가능한지 여부
  • 권한 상승을 의미하는 데이터(관리자 기능 노출 등)
  • 세션 토큰이 예측 가능하거나 고정인지 여부

결과는 로그로 남기고 재현 절차를 문서화한다. 재현 가능한 최소 사례(PoC)를 만들면 취약점 보고서 품질이 향상된다.

주의사항 및 베스트 프랙티스

  • 테스트는 허가된 범위에서만 수행한다. 무단 테스트는 법적 문제가 발생할 수 있다.
  • 세션 갱신 빈도와 스레드 수 조정으로 서버 부하를 관리한다.
  • 오탐(False Positive)은 수동 검증으로 보완한다.
  • 로그와 캡처 데이터를 안전하게 보관하고 민감 정보는 마스킹한다.

맺음말

Burp Suite를 이용한 자동화된 인증 우회 테스트는 세션 핸들링 규칙과 매크로, Intruder의 조합으로 실현된다. 단계별 구성과 결과 검증이 핵심이다. 초보자도 위 절차를 따라가면 일관된 테스트 흐름을 구성할 수 있다.

Burp 인증 우회 테스트 Burp 자동 인증 우회 Burp 인증 취약점 자동화 Burp Suite 인증 우회 테스트 세션 핸들링 규칙 Intruder 자동화 보안 취약점 스캐닝