Brup Suite - Scan
Mastering Burp Suite: From Active & Passive Scans to Overcoming Its Limits
In the field of web application security diagnostics, Burp Suite has established itself as more than just a tool; it’s an essential part of any professional’s toolkit. Among its many features, the automated vulnerability scanning functions, Active Scan and Passive Scan, play the most crucial roles.
In this article, we’ll take a deep dive into how these two scanning methods work and what makes them different. Furthermore, we’ll cover the clear limitations of automated tools and explore the approaches that professional penetration testers use to overcome them.
1. Active Scan: The Aggressive Attacker of Web Vulnerabilities
As its name suggests, Active Scan is a feature that actively sends attack payloads to a web application, analyzes the server’s responses, and identifies vulnerabilities. It’s the closest thing to a real attacker’s test, acting like a forward on the front lines of web security.
How It Works
The Active Scan process can be summarized in the following three steps:
- Request Manipulation: Based on normal HTTP requests collected through the proxy, Burp Suite creates numerous variations. It inserts predefined or user-defined attack payloads into all possible input points, such as request parameters, headers, and cookies, and sends them to the server.
- Response Analysis: If the server returns an abnormal response to an attack payload, Burp Suite flags it as evidence of a vulnerability. For example, if a database error message is returned, it suspects SQL Injection. If it sees the contents of an unintended system file, it suspects Path Traversal. It also analyzes minute differences in response times to detect Blind-type vulnerabilities.
- Issue Reporting: All detected potential vulnerabilities are recorded under the “Issues” section. Each issue includes the URL where it was found, the type of vulnerability, the payload used in the attack, and a Severity and Confidence rating to help prioritize analysis.
Since Active Scan can cause a direct load on the server, it’s a rule to perform it in an isolated test environment rather than in a live production environment.
Major Detected Vulnerabilities
Active Scan effectively detects most of the technical vulnerabilities included in the OWASP Top 10.
Vulnerability Type | Description | Example Payload |
---|---|---|
SQL Injection | An attack that manipulates database queries to steal data or bypass authentication. | 1' OR '1'='1 |
Cross-Site Scripting (XSS) | An attack that injects malicious scripts into a web page to be executed in other users’ browsers. | <script>alert('XSS')</script> |
Command Injection | An attack that injects operating system (OS) commands to try to control the server system. | & ls -l or | id |
Path Traversal | An attack that manipulates file paths to access unauthorized files (e.g., /etc/passwd ). | ../../../../etc/passwd |
XXE (XML External Entity) | An attack that exploits XML external entity references to read local files on the server or scan the internal network. | <!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]> |
SSRF (Server-Side Request Forgery) | An attack that makes the server send requests to a URL specified by the attacker, thereby attacking internal systems. | http://localhost/admin or http://169.254.169.254/ |
Tips for Effective Use
- Define a precise scan scope: Scanning an entire site is inefficient. It’s better to limit the scan scope to key features where user input interacts with the server, such as login, search, and forums.
- Utilize Resource Pools: When running multiple scans simultaneously, you can set up resource pools to manage the load between scan jobs and optimize testing time.
- Verify False Positives: The results of automated scanners are not 100% accurate. It’s essential to manually reproduce and verify all detected vulnerabilities.
2. Passive Scan: The Silent Detective of Traffic
If Active Scan is the attacker, then Passive Scan is the silent detective. It doesn’t send any additional requests to the server; instead, it analyzes only the existing traffic (requests and responses) that passes through the Burp proxy to find security weaknesses. Since it’s non-intrusive, it can be safely run in a production environment and is a fundamental and important first step in any security assessment.
How It Works
Passive Scan automatically works in the background from the moment you enable the Burp Proxy.
- Request Analysis: It looks for insecure patterns in the requests sent by the browser. For example, it can detect cases where sensitive information like passwords or API keys is sent in plaintext through the URL’s query string.
- Response Analysis: The server’s response is a treasure trove of information. Passive Scan scours the response headers and body to find the following issues:
- Information Disclosure: It identifies any information that could be a clue for an attacker, such as commented-out source code, developer debug messages, or detailed server version information.
- Insecure Cookie Settings: It warns if session cookies are not set with the
Secure
orHttpOnly
flags, making them vulnerable to hijacking. - Vulnerable Security Headers: It points out when security headers that defend against attacks like XSS or clickjacking, such as
Content-Security-Policy
(CSP) orStrict-Transport-Security
(HSTS), are missing. - Potential XSS: It identifies points where user input is reflected in the response body without any filtering, and reports them as potential XSS vulnerabilities. This doesn’t mean it’s a confirmed vulnerability, but rather a “suspicious point” that requires manual verification.
Major Detected Issues
Issue Type | Description |
---|---|
Sensitive Information Disclosure | API keys, internal IPs, stack traces, etc., are included in the URL of a GET request or in the server response. |
Insecure Cookies | Cookies are set without the Secure (sent only over HTTPS) or HttpOnly (inaccessible to scripts) flags. |
Missing Security Headers | Headers that enhance browser-side security, such as X-Content-Type-Options and X-Frame-Options , are missing. |
Potential Cross-Site Scripting | User input is directly reflected in the response, making it potentially exploitable for XSS attacks. |
3. The Synergy of Active and Passive Scans
Active Scan and Passive Scan are not mutually exclusive; they have a complementary relationship. An effective web vulnerability diagnosis starts with using both scans in harmony.
- Start with Passive Scan: First, use Passive Scan to get a quick and safe overview of the application’s overall structure and identify low-risk vulnerabilities and attack surfaces, such as information disclosure.
- Deepen with Active Scan: Based on the information gathered from Passive Scan, run Active Scan in a test environment to conduct in-depth exploration for high-severity vulnerabilities like SQL Injection and Command Injection.
This step-by-step approach is the optimal strategy for securing both the depth and breadth of a diagnosis while using time and resources efficiently.
4. The Limits of Burp Suite and the Role of the Penetration Tester
Burp Suite is undoubtedly a powerful tool, but it’s by no means a silver bullet. Automated scanners have clear limitations, and overcoming them depends entirely on the skills of the penetration tester.
Burp’s Major Limitations
- Business Logic Vulnerabilities: Vulnerabilities inherent in an application’s unique business flow, such as price manipulation in an e-commerce site, modifying another user’s posts, or flaws in the password reset logic, can never be found by automated pattern matching.
- Complex Authentication and Session Management: Logical flaws in complex authentication mechanisms like multi-factor authentication (MFA), OAuth, and JSON Web Tokens (JWT) are difficult for Burp to identify automatically.
- Non-Standard Protocols and Asynchronous Communication: Asynchronous communication with complex data structures, such as WebSockets or GraphQL, is a tricky area for traditional request-response model-based scanners to analyze.
- False Positives and False Negatives: Scanners often have the inherent problem of reporting safe code as a vulnerability (false positive) or missing an actual vulnerability (false negative).
The Penetration Tester’s Approach to Overcoming Limitations
A true professional doesn’t blindly trust the results of a tool; they use the tool to maximize their own analytical abilities.
- Manual Analysis and Testing: Manual verification is the core of penetration testing, whether it’s modifying a request hundreds of times with Repeater, designing a scenario to attack business logic with Intruder, or analyzing the randomness of session tokens with Sequencer. It requires a creative mindset to fully understand the normal flow of an application and then exploit it.
- Active Use of Extensions: Burp’s BApp Store has numerous extensions that complement its basic functions. You can add depth to your analysis by using extensions specialized for specific technology stacks or vulnerability types, such as GraphQL Scanner, Logger++, and Autorize.
- Integration with External Tools: Burp can’t do everything. You can expand your attack surface and increase the accuracy of your analysis by integrating it with external specialized tools, such as
subfinder
for subdomain discovery,nuclei
for large-scale pattern-based scanning, andPostman
for API testing.
Bonus Tip: Eliminating Noise with the Scope Feature
When you turn on the Burp Proxy and start Browse a website, you’ll see that the Proxy > HTTP history
tab gets filled with a lot of traffic that has nothing to do with your target. It’s easy to miss the traffic you actually need to analyze because of requests to third-party domains like Google Analytics, ad servers, and font libraries.
This is where the Scope feature comes in handy to dramatically increase the efficiency of your analysis.
How to Set the Scope
- Add to scope: In the
Target > Site map
tab or theProxy > HTTP history
tab, right-click on the domain you want to analyze (e.g.,https://my-target-app.com
) and selectAdd to scope
. The added domain will now be recognized as a “target for analysis” in all of Burp’s features. - Exclude from scope: Conversely, if there are third-party domains that you don’t need to analyze (e.g.,
google-analytics.com
), you can add them directly to theExclude from scope
list in theTarget > Scope
tab. You can also use wildcards (*
) to exclude all subdomains with a specific pattern, such as*.google.com
. - Apply filtering: The real power of the Scope setting comes from the filter. In the filter bar at the top of the
Proxy > HTTP history
tab, check theShow only in-scope items
checkbox. The moment you do this, only the traffic included in the set Scope will remain on the screen, creating an environment where you can focus solely on analysis.
Burp Suite 완전 정복: Active & Passive Scan부터 한계 극복까지
웹 애플리케이션 보안 진단 분야에서 Burp Suite는 단순한 도구를 넘어, 전문가의 필수품으로 자리 잡았습니다. 수많은 기능 중에서도 자동화된 취약점 스캐닝을 담당하는 Active Scan과 Passive Scan은 가장 핵심적인 역할을 수행합니다.
이 글에서는 Burp Suite의 두 가지 스캔 방식이 어떻게 작동하며 어떤 차이가 있는지 심층적으로 알아보고, 나아가 자동화된 도구의 명백한 한계와 이를 극복하기 위한 전문적인 펜테스터의 접근 방식까지 함께 다루어 보겠습니다.
1. Active Scan: 웹 취약점을 향한 적극적인 공격수
Active Scan은 이름 그대로 웹 애플리케이션에 능동적으로 공격 페이로드를 전송하여 서버의 반응을 분석하고 취약점을 찾아내는 기능입니다. 실제 공격자가 수행하는 테스트와 가장 유사한 방식으로, 웹 보안의 최전선에서 활동하는 공격수와 같습니다.
작동 원리
Active Scan의 프로세스는 다음 세 단계로 요약할 수 있습니다.
- 요청 변조 (Request Manipulation): Burp Suite는 프록시를 통해 수집된 정상적인 HTTP 요청을 기반으로 수많은 변형을 만들어냅니다. 요청의 파라미터, 헤더, 쿠키 등 모든 입력 가능한 지점에 사전에 정의된, 혹은 사용자가 정의한 공격 페이로드(Payload)를 삽입하여 서버로 전송합니다.
- 응답 분석 (Response Analysis): 서버가 공격 페이로드에 대해 비정상적인 응답을 반환하면, Burp Suite는 이를 취약점의 증거로 포착합니다. 예를 들어, 데이터베이스 에러 메시지가 반환되면 SQL Injection을, 의도치 않은 시스템 파일 내용이 보이면 Path Traversal을 의심하는 식입니다. 응답 시간의 미세한 차이를 분석하여 Blind 계열 취약점을 탐지하기도 합니다.
- 취약점 보고 (Issue Reporting): 탐지된 모든 잠재적 취약점은 ‘Issue’ 항목에 기록됩니다. 각 Issue에는 발견된 URL, 취약점 유형, 공격에 사용된 페이로드, 그리고 심각도(Severity)와 신뢰도(Confidence) 등급이 함께 제공되어 분석의 우선순위를 정하는 데 도움을 줍니다.
Active Scan은 서버에 직접적인 부하를 유발하므로, 실제 운영 환경보다는 격리된 테스트 환경에서 수행하는 것이 원칙입니다.
주요 탐지 취약점
Active Scan은 OWASP Top 10에 포함된 대부분의 기술적 취약점을 효과적으로 탐지합니다.
취약점 유형 | 설명 | 예시 페이로드 |
---|---|---|
SQL Injection | 데이터베이스 쿼리를 조작하여 데이터를 탈취하거나 인증을 우회하는 공격입니다. | 1' OR '1'='1 |
Cross-Site Scripting (XSS) | 악성 스크립트를 웹 페이지에 주입하여 다른 사용자의 브라우저에서 실행시키는 공격입니다. | <script>alert('XSS')</script> |
Command Injection | 운영체제(OS) 명령어를 주입하여 서버 시스템을 제어하려는 공격입니다. | & ls -l 또는 | id |
Path Traversal | 파일 경로를 조작하여 비인가된 파일(예: /etc/passwd )에 접근하는 공격입니다. | ../../../../etc/passwd |
XXE (XML External Entity) | XML 외부 개체 참조를 악용해 서버의 로컬 파일을 읽거나 내부 네트워크를 스캔하는 공격입니다. | <!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]> |
SSRF (Server-Side Request Forgery) | 공격자가 지정한 URL로 서버가 대신 요청을 보내게 하여 내부 시스템을 공격하는 취약점입니다. | http://localhost/admin 또는 http://169.254.169.254/ |
효과적인 사용을 위한 팁
- 정교한 스캔 범위 설정: 전체 사이트를 스캔하는 것은 비효율적입니다. 로그인, 검색, 게시판 등 파라미터를 통해 사용자의 입력이 서버와 상호작용하는 핵심 기능 위주로 스캔 범위를 한정하는 것이 좋습니다.
- 리소스 풀(Resource Pool) 활용: 여러 개의 스캔을 동시에 실행할 때 리소스 풀을 설정하여 스캔 작업 간의 부하를 조절하고 테스트 시간을 최적화할 수 있습니다.
- 오탐(False Positive) 검증: 자동화된 스캐너의 결과는 100% 정확하지 않습니다. 탐지된 모든 취약점은 반드시 수동으로 재현하고 검증하는 과정이 필수적입니다.
2. Passive Scan: 트래픽을 관찰하는 조용한 탐정
Active Scan이 공격수라면, Passive Scan은 조용한 탐정입니다. 서버에 어떠한 추가 요청도 보내지 않고, Burp 프록시를 통과하는 기존의 트래픽(요청과 응답)만을 분석하여 보안상의 약점을 찾아냅니다. 비침습적(Non-intrusive)이므로 운영 환경에서도 안전하게 사용할 수 있으며, 모든 보안 평가의 가장 기본적이고 중요한 첫 단계입니다.
작동 원리
Passive Scan은 Burp Proxy를 활성화하는 순간부터 백그라운드에서 자동으로 동작합니다.
- 요청 분석: 브라우저가 보내는 요청에서 보안상 좋지 않은 패턴을 찾습니다. 예를 들어, URL의 쿼리 문자열을 통해 비밀번호나 API 키 같은 민감 정보가 평문으로 전송되는 경우를 탐지합니다.
- 응답 분석: 서버의 응답은 정보의 보고입니다. Passive Scan은 응답 헤더와 본문을 샅샅이 뒤져 다음과 같은 문제점을 찾아냅니다.
- 정보 노출: 주석 처리된 소스코드, 개발자의 디버그 메시지, 상세한 서버 버전 정보 등 공격자에게 단서가 될 수 있는 모든 정보를 식별합니다.
- 안전하지 않은 쿠키 설정: 세션 쿠키에
Secure
나HttpOnly
플래그가 설정되지 않아 탈취 위험이 있는 경우 경고합니다. - 취약한 보안 헤더:
Content-Security-Policy
(CSP),Strict-Transport-Security
(HSTS) 등 XSS나 클릭재킹 같은 공격을 방어하는 보안 헤더가 누락된 경우를 알려줍니다. - 잠재적 XSS: 사용자의 입력 값이 응답 본문에 어떠한 필터링도 없이 그대로 반사되는 지점을 찾아내, 잠재적인 XSS 취약점으로 보고합니다. 이는 확정된 취약점이 아닌, 수동 검증이 필요한 ‘의심 지점’을 의미합니다.
주요 탐지 항목
문제 유형 | 설명 |
---|---|
민감 정보 노출 | GET 요청의 URL이나 서버 응답에 API 키, 내부 IP, 스택 트레이스 등이 포함됩니다. |
안전하지 않은 쿠키 | 쿠키가 Secure (HTTPS에서만 전송) 또는 HttpOnly (스크립트 접근 불가) 플래그 없이 설정되어 있습니다. |
보안 헤더 미설정 | X-Content-Type-Options , X-Frame-Options 등 브라우저 단의 보안을 강화하는 헤더가 누락되어 있습니다. |
잠재적 Cross-Site Scripting | 사용자 입력 값이 응답에 그대로 반영되어 XSS 공격에 악용될 가능성이 있습니다. |
3. Active와 Passive Scan의 시너지
Active Scan과 Passive Scan은 서로를 대체하는 관계가 아닌, 상호 보완적인 관계입니다. 효과적인 웹 취약점 진단은 두 가지 스캔을 조화롭게 활용하는 데서 시작됩니다.
- Passive Scan으로 시작: 먼저 Passive Scan을 통해 애플리케이션의 전반적인 구조를 파악하고, 정보 노출과 같은 저위험도의 취약점과 공격 표면을 빠르게 식별합니다.
- Active Scan으로 심화: Passive Scan으로 파악된 정보를 바탕으로, 테스트 환경에서 Active Scan을 실행하여 SQL Injection, Command Injection과 같이 심각도가 높은 취약점을 심층적으로 탐색합니다.
이러한 단계적 접근은 시간과 자원을 효율적으로 사용하면서도 진단의 깊이와 범위를 모두 확보하는 최적의 전략입니다.
4. Burp Suite의 한계와 펜테스터의 역할
Burp Suite는 의심할 여지 없이 강력한 도구이지만, 결코 만능은 아닙니다. 자동화된 스캐너는 명백한 한계를 가지며, 이를 극복하는 것은 전적으로 펜테스터의 역량에 달려있습니다.
Burp의 주요 한계점
- 비즈니스 로직 취약점: 쇼핑몰의 가격 조작, 다른 사용자의 게시물 수정, 비밀번호 재설정 로직의 허점 등 애플리케이션의 고유한 비즈니스 흐름에 내재된 취약점은 자동화된 패턴 매칭으로는 절대 찾아낼 수 없습니다.
- 복잡한 인증 및 세션 관리: 다단계 인증(MFA), OAuth, JWT(JSON Web Token) 등 복잡한 인증 메커니즘의 논리적 결함은 Burp가 자동으로 식별하기 어렵습니다.
- 비표준 프로토콜 및 비동기 통신: WebSockets이나 GraphQL과 같이 복잡한 데이터 구조를 가진 비동기 통신은 전통적인 요청-응답 모델 기반의 스캐너가 분석하기 까다로운 영역입니다.
- 오탐(False Positive)과 미탐(False Negative): 스캐너는 종종 안전한 코드를 취약점으로 보고하거나(오탐), 실제 취약점을 놓치고 지나가는(미탐) 문제를 안고 있습니다.
한계를 극복하는 펜테스터의 접근 방식
진정한 전문가는 도구의 결과를 맹신하지 않고, 도구를 활용하여 자신의 분석 능력을 극대화합니다.
- 수동 분석 및 테스트: Repeater로 요청을 수백 번 변조해 보거나, Intruder로 비즈니스 로직을 공격할 시나리오를 설계하고, Sequencer로 세션 토큰의 무작위성을 분석하는 등 수동 검증은 펜테스팅의 핵심입니다. 애플리케이션의 정상 흐름을 완벽히 이해하고, 이를 역이용하는 창의적인 사고가 필요합니다.
- 확장(Extensions)의 적극적 활용: Burp의 BApp Store에는 기본 기능을 보완하는 수많은 확장 프로그램이 있습니다. GraphQL Scanner, Logger++, Autorize 등 특정 기술 스택이나 취약점 유형에 특화된 확장을 활용하여 분석의 깊이를 더합니다.
- 외부 도구와의 연계: Burp가 모든 것을 할 수는 없습니다. 서브도메인 검색을 위한
subfinder
, 대규모 패턴 기반 스캐닝을 위한nuclei
, API 테스트를 위한Postman
등 외부 전문 도구와 연계하여 공격 표면을 넓히고 분석의 정확도를 높입니다.
Scope 기능으로 노이즈 제거하기
Burp Proxy를 켜고 웹 사이트를 탐색하다 보면, 진단 대상과 전혀 관련 없는 수많은 트래픽이 Proxy > HTTP history
탭을 가득 채우는 것을 보게 됩니다. 구글 애널리틱스, 광고 서버, 폰트 라이브러리 등 제3자(3rd-party) 도메인으로 향하는 요청들 때문에 정작 분석해야 할 트래픽을 놓치기 쉽습니다.
이때 Scope(범위) 기능을 사용하면 분석의 효율을 극적으로 높일 수 있습니다.
Scope 설정 방법
- 분석 대상 추가 (Include in scope):
Target > Site map
탭이나Proxy > HTTP history
탭에서 분석하려는 도메인(예:https://my-target-app.com
)을 마우스 오른쪽 버튼으로 클릭한 뒤,Add to scope
를 선택합니다. 이렇게 추가된 도메인은 앞으로 Burp의 모든 기능에서 ‘분석 대상’으로 인지됩니다. - 분석 제외 대상 추가 (Exclude from scope): 반대로 분석할 필요가 없는 제3자 도메인(예:
google-analytics.com
)이 있다면,Target > Scope
탭의Exclude from scope
목록에 직접 추가할 수 있습니다. 와일드카드(*
)를 사용해.*.google.com
과 같이 특정 패턴을 가진 모든 하위 도메인을 제외하는 것도 가능합니다. - 필터링 적용: Scope 설정의 진정한 힘은 필터에서 나옵니다.
Proxy > HTTP history
탭 상단의 필터 바(Filter bar)에서Show only in-scope items
체크박스를 활성화하세요. 이 순간, 설정된 Scope에 포함된 트래픽만 화면에 남아 분석에만 온전히 집중할 수 있는 환경이 만들어집니다.