Burp Suite là tiêu chuẩn de facto trong bộ công cụ của bất kỳ chuyên gia bảo mật ứng dụng web nào. Mô-đun proxy của nó cho phép chặn, phân tích và sửa đổi lưu lượng HTTP/HTTPS giữa trình duyệt và máy chủ trong thời gian thực. Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách cấu hình Burp Suite như một proxy, các mô-đun nào nên sử dụng cho pentest cơ bản và cách tránh những sai lầm phổ biến của người mới bắt đầu.
Burp Suite là gì và tại sao nó cần thiết cho pentester
Burp Suite là một nền tảng tích hợp để kiểm tra bảo mật ứng dụng web, được phát triển bởi công ty PortSwigger. Công cụ này có ba phiên bản: Community (miễn phí), Professional và Enterprise. Đối với hầu hết các nhiệm vụ cấp độ cơ bản và trung bình, phiên bản Community là đủ, mặc dù Professional mở ra quyền truy cập vào trình quét lỗ hổng hoạt động và các tính năng nâng cao của Intruder.
Vai trò chính của Burp Suite trong pentest là vai trò của proxy man-in-the-middle. Công cụ này đứng giữa trình duyệt của bạn và ứng dụng web mục tiêu, chặn toàn bộ lưu lượng HTTP/HTTPS. Điều này cho phép:
- Xem các yêu cầu và phản hồi "thô" mà trình duyệt ẩn khỏi người dùng
- Sửa đổi các tham số của yêu cầu ngay lập tức - thay đổi tiêu đề, thân POST, cookie
- Gửi lại các yêu cầu với dữ liệu đã thay đổi mà không cần tải lại trang
- Tự động lặp lại các giá trị tham số để tìm kiếm lỗ hổng
- Xây dựng bản đồ đầy đủ của ứng dụng web (Spider/Crawler)
- Tìm kiếm các lỗ hổng của các lớp SQLi, XSS, IDOR, SSRF và hàng chục lỗ hổng khác
Burp Suite được sử dụng bởi cả các pentester chuyên nghiệp trong các dự án thương mại và các thành viên của các chương trình Bug Bounty (HackerOne, Bugcrowd). Đây là công cụ đầu tiên mà họ cài đặt trên máy làm việc khi bắt đầu sự nghiệp trong lĩnh vực Bảo mật Ứng dụng.
⚠️ Quan trọng:
Chỉ sử dụng Burp Suite để kiểm tra các ứng dụng mà bạn có sự cho phép bằng văn bản từ chủ sở hữu, hoặc cho các môi trường học tập (DVWA, WebGoat, HackTheBox, TryHackMe). Kiểm tra không được phép là hành vi phạm tội.
Cách hoạt động của việc chặn proxy trong Burp Suite
Khi bạn khởi động Burp Suite và kích hoạt mô-đun Proxy, một máy chủ proxy cục bộ sẽ được khởi động trên máy của bạn. Theo mặc định, nó lắng nghe tại địa chỉ 127.0.0.1:8080. Trình duyệt được cấu hình để sử dụng địa chỉ này như một proxy HTTP/HTTPS.
Sơ đồ hoạt động trông như sau:
Trình duyệt │ │ Yêu cầu HTTP/HTTPS ▼ Burp Suite Proxy (127.0.0.1:8080) │ │ ← Tại đây Burp chặn, hiển thị, cho phép thay đổi │ ▼ Máy chủ web mục tiêu (example.com) │ │ Phản hồi HTTP/HTTPS ▼ Burp Suite Proxy │ │ ← Tại đây Burp chặn phản hồi từ máy chủ │ ▼ Trình duyệt (nhận phản hồi)
Đối với lưu lượng HTTPS, Burp Suite tạo ra các chứng chỉ TLS riêng cho mỗi miền ngay lập tức. Để trình duyệt không hiển thị cảnh báo về kết nối không an toàn, bạn cần cài đặt chứng chỉ CA gốc của Burp vào các trung tâm chứng nhận đáng tin cậy của trình duyệt hoặc hệ điều hành. Chính điều này cho phép giải mã lưu lượng HTTPS - nếu không có bước này, bạn chỉ thấy dữ liệu đã được mã hóa.
Chế độ chặn (Intercept) có thể được bật hoặc tắt. Khi Intercept được bật - mỗi yêu cầu sẽ "đóng băng" trong Burp và chờ quyết định của bạn: cho phép như hiện tại, thay đổi hoặc bỏ qua. Khi tắt - Burp sẽ cho phép lưu lượng đi qua một cách minh bạch, nhưng vẫn ghi lại nó trong Lịch sử HTTP.
Cấu hình trình duyệt và cài đặt chứng chỉ CA
Đây là bước quan trọng nhất để bắt đầu. Chúng ta sẽ xem xét hai tùy chọn: sử dụng trình duyệt tích hợp của Burp và cấu hình thủ công Chrome/Firefox.
Tùy chọn 1: Trình duyệt tích hợp của Burp Suite (được khuyến nghị cho người mới)
Bắt đầu từ phiên bản 2021.x, Burp Suite đi kèm với trình duyệt Chromium tích hợp, đã được cấu hình sẵn để làm việc với proxy và chứa chứng chỉ CA. Đây là cách nhanh nhất để bắt đầu:
- Mở Burp Suite → chuyển đến phần Proxy
- Nhấn nút Open Browser
- Trình duyệt Chromium sẽ mở ra, đã được cấu hình cho proxy Burp
- Đi đến trang web cần thiết - lưu lượng sẽ ngay lập tức được chặn
Tùy chọn 2: Cấu hình thủ công Firefox
Firefox được ưa chuộng cho việc cấu hình thủ công, vì nó có kho lưu trữ chứng chỉ riêng (không phụ thuộc vào hệ thống):
Bước 1. Cấu hình proxy trong Firefox:
- Mở Firefox → Cài đặt → Máy chủ proxy (hoặc sử dụng tiện ích FoxyProxy)
- Chọn "Cấu hình proxy thủ công"
- HTTP proxy:
127.0.0.1, Cổng:8080 - Đánh dấu "Sử dụng proxy này cho HTTPS"
- Nhấn OK
Bước 2. Cài đặt chứng chỉ CA của Burp:
- Đảm bảo rằng Burp Suite đang chạy và proxy đã được kích hoạt
- Trong trình duyệt, truy cập địa chỉ:
http://burpsuitehoặchttp://127.0.0.1:8080 - Nhấn "CA Certificate" - một tệp
cacert.dersẽ được tải xuống - Trong Firefox: Cài đặt → Quyền riêng tư và bảo mật → Chứng chỉ → Xem chứng chỉ
- Tab "Trung tâm chứng nhận" → Nhập khẩu → chọn tệp đã tải xuống
- Đánh dấu "Tin tưởng CA này để xác thực các trang web"
- Nhấn OK
Sau các bước này, Firefox sẽ tin tưởng vào các chứng chỉ mà Burp tạo ra cho các trang web HTTPS, và bạn sẽ có thể chặn lưu lượng được mã hóa mà không có cảnh báo.
Chặn và phân tích lưu lượng HTTP/HTTPS
Sau khi cấu hình trình duyệt, bạn có thể bắt đầu làm việc với lưu lượng. Chúng ta sẽ xem xét các khả năng chính của tab Proxy trong Burp Suite.
Lịch sử HTTP - nhật ký tất cả các yêu cầu
Tab HTTP History (Proxy → HTTP History) là nhật ký tất cả các yêu cầu đã đi qua Burp. Tại đây bạn sẽ thấy:
- Phương thức yêu cầu (GET, POST, PUT, DELETE, v.v.)
- URL và các tham số
- Tiêu đề HTTP (bao gồm Cookie, Authorization, User-Agent)
- Thân yêu cầu (đối với POST/PUT)
- Mã phản hồi của máy chủ (200, 302, 403, 500...)
- Kích thước và thời gian phản hồi
Nhấp chuột phải vào bất kỳ yêu cầu nào → bạn sẽ nhận được menu ngữ cảnh với các tùy chọn: gửi đến Repeater, Intruder, Scanner, Decoder và các mô-đun khác. Đây là quy trình làm việc chính trong Burp.
Intercept - chế độ chặn chủ động
Bật Intercept (nút "Intercept is on/off") - và yêu cầu tiếp theo từ trình duyệt sẽ "đóng băng" trong Burp. Bạn sẽ thấy nội dung của nó và có thể:
- Forward - cho phép yêu cầu mà không thay đổi
- Drop - bỏ qua yêu cầu (máy chủ sẽ không nhận được nó)
- Thay đổi dữ liệu thủ công - chỉnh sửa bất kỳ trường nào và nhấn Forward
- Action → Send to Repeater - gửi đến Repeater để phân tích thêm
Ví dụ thực tế: bạn chặn yêu cầu POST của biểu mẫu đăng nhập. Trong thân yêu cầu, bạn thấy các tham số username=admin&password=12345. Bạn có thể thay đổi các giá trị ngay trong Burp và nhấn Forward - máy chủ sẽ nhận được dữ liệu đã thay đổi.
Các mô-đun chính: Repeater, Intruder, Scanner
Burp Suite không chỉ là một proxy. Đây là một hệ sinh thái công cụ hoàn chỉnh. Chúng ta hãy xem xét ba mô-đun được sử dụng nhiều nhất.
Repeater - kiểm tra thủ công các yêu cầu
Repeater là công cụ chính của pentester. Bạn gửi một yêu cầu từ Lịch sử HTTP (nhấp chuột phải → Send to Repeater), sau đó bạn có thể:
- Thay đổi bất kỳ tham số nào của yêu cầu
- Gửi lại yêu cầu bằng nút Send
- Xem phản hồi của máy chủ trong bảng bên phải
- So sánh các phản hồi cho các biến thể khác nhau của yêu cầu
- Lưu lịch sử tất cả các biến thể đã gửi
Kịch bản sử dụng điển hình của Repeater: bạn đã tìm thấy tham số id=5 trong yêu cầu GET. Bạn gửi yêu cầu đến Repeater và bắt đầu kiểm tra: điều gì sẽ xảy ra khi id=1, id=0, id=-1, id=999999? Đây là kiểm tra cơ bản về IDOR (Insecure Direct Object Reference).
Intruder - lặp lại tự động
Intruder cho phép tự động lặp lại các giá trị tham số theo từ điển hoặc mẫu đã cho. Các chế độ tấn công chính:
| Chế độ | Mô tả | Ứng dụng |
|---|---|---|
| Sniper | Một tham số, một từ điển | Brute force một trường |
| Battering Ram | Nhiều tham số, một giá trị | Khi cần giá trị giống nhau ở nhiều nơi |
| Pitchfork | Nhiều tham số, nhiều từ điển (đồng bộ) | Lặp lại tên đăng nhập + mật khẩu từ các cặp đã chuẩn bị |
| Cluster Bomb | Nhiều tham số, tất cả các tổ hợp | Lặp lại tất cả các tổ hợp |
Trong phiên bản Community, tốc độ của Intruder bị giới hạn nhân tạo (khoảng 1 yêu cầu mỗi giây). Trong phiên bản Professional, không có giới hạn nào. Để vượt qua giới hạn này trong Community, người dùng thường sử dụng các tiện ích mở rộng bên ngoài hoặc công cụ ffuf/wfuzz kết hợp với Burp.
Scanner - tìm kiếm lỗ hổng tự động (Pro)
Scanner chỉ có sẵn trong phiên bản Professional. Nó tự động phân tích các yêu cầu đã chặn và tìm kiếm các lỗ hổng: SQL injection, XSS, XXE, SSRF, Path Traversal và nhiều lỗ hổng khác. Trong phiên bản Community, có quét thụ động - Burp phân tích lưu lượng và làm nổi bật các điểm nguy hiểm tiềm ẩn mà không cần tấn công chủ động.
Tìm kiếm các lỗ hổng phổ biến qua Burp Suite
Chúng ta sẽ xem xét các kịch bản thực tế để tìm kiếm các lỗ hổng phổ biến nhất bằng cách sử dụng Burp Suite.
SQL Injection (SQLi)
Kiểm tra cơ bản về SQLi qua Repeater:
- Chặn yêu cầu với tham số gửi đến cơ sở dữ liệu (ví dụ:
id=5hoặcsearch=test) - Gửi đến Repeater
- Thêm một dấu nháy đơn vào giá trị:
id=5' - Nhấn Send và kiểm tra phản hồi - nếu máy chủ trả về lỗi SQL hoặc hành vi đã thay đổi - có dấu hiệu của SQLi
- Kiểm tra tiêm boolean:
id=5 AND 1=1so vớiid=5 AND 1=2- nếu phản hồi khác nhau, có lỗ hổng SQLi
Reflected XSS
Kiểm tra về XSS phản chiếu:
- Tìm tham số có giá trị hiển thị trên trang phản hồi
- Gửi yêu cầu đến Repeater
- Chèn tải thử nghiệm:
<script>alert(1)</script> - Kiểm tra phản hồi - nếu tải đã vào HTML mà không được thoát, có lỗ hổng XSS
- Kiểm tra xem thẻ script có bị lọc không: thử
<img src=x onerror=alert(1)>
IDOR (Insecure Direct Object Reference)
Một trong những lớp lỗ hổng phổ biến nhất trong các ứng dụng web hiện đại:
- Tìm các yêu cầu truy cập đến các đối tượng qua ID số:
/api/user/profile?id=1234 - Gửi đến Repeater
- Thay đổi ID thành giá trị khác:
id=1235,id=1 - Nếu máy chủ trả về dữ liệu của người dùng khác mà không có lỗi xác thực - đây là IDOR
Kiểm tra xác thực và quản lý phiên
Burp Suite cho phép dễ dàng kiểm tra các cơ chế xác thực:
- Sao chép yêu cầu đến tài nguyên bảo vệ vào Repeater
- Xóa hoặc thay đổi giá trị cookie phiên
- Kiểm tra xem máy chủ có trả về lỗi xác thực hay vẫn cung cấp dữ liệu
- Kiểm tra xem các JWT token có hoạt động khi thay đổi thuật toán thành
nonekhông
Burp Suite + proxy bên ngoài: tại sao cần thiết
Burp Suite là một công cụ proxy cục bộ. Nhưng trong một số kịch bản, pentester cần chuyển lưu lượng Burp qua một proxy bên ngoài. Chúng ta hãy xem khi nào và tại sao điều này là cần thiết.
Kịch bản 1: Kiểm tra từ địa chỉ IP thực
Một số ứng dụng web có bảo vệ dựa trên định vị địa lý hoặc danh tiếng IP. Nếu ứng dụng mục tiêu chặn lưu lượng từ các trung tâm dữ liệu hoặc từ các IP VPN nổi tiếng, pentester có thể sử dụng proxy cư trú - chúng có địa chỉ IP của các người dùng thực và trông giống như một khách truy cập bình thường đối với máy chủ.
Kịch bản 2: Vượt qua giới hạn tần suất khi kiểm tra chủ động
Khi quét chủ động hoặc làm việc với Intruder, máy chủ mục tiêu có thể chặn IP của bạn do số lượng yêu cầu lớn. Việc xoay vòng qua một nhóm proxy cho phép phân phối tải qua các địa chỉ IP khác nhau. Đối với những nhiệm vụ này, proxy trung tâm dữ liệu rất phù hợp - chúng cung cấp tốc độ cao và độ ổn định của kết nối, điều này rất quan trọng trong kiểm tra tự động.
Cách cấu hình proxy upstream trong Burp Suite
Burp Suite hỗ trợ proxy upstream (proxy cấp trên). Cấu hình:
- Mở Burp Suite → Cài đặt (hoặc Tùy chọn người dùng trong các phiên bản cũ)
- Chuyển đến phần Mạng → Kết nối → Máy chủ Proxy cấp trên
- Nhấn Thêm
- Trong trường Máy chủ đích, nhập
*(cho tất cả các máy chủ) hoặc miền cụ thể - Nhập địa chỉ và cổng của proxy bên ngoài
- Chọn loại: HTTP, SOCKS4 hoặc SOCKS5
- Nếu cần, nhập tên người dùng và mật khẩu
- Nhấn OK
# Ví dụ cấu hình proxy upstream trong Burp Suite: Destination host: * Proxy host: proxy.example.com Proxy port: 8888 Auth type: Basic Username: your_login Password: your_password Proxy type: SOCKS5
Sau khi cấu hình này, toàn bộ lưu lượng mà Burp gửi đến các máy chủ mục tiêu sẽ đi qua proxy upstream đã chỉ định. Trình duyệt vẫn kết nối với Burp tại 127.0.0.1:8080, và Burp sẽ tự động chuyển tiếp các yêu cầu qua proxy bên ngoài.
So sánh các loại proxy cho pentest
| Loại proxy | Tốc độ | Ẩn danh | Ứng dụng trong pentest |
|---|---|---|---|
| Trung tâm dữ liệu | Cao | Trung bình | Quét chủ động, Intruder |
| Cư trú | Trung bình | Cao | Vượt qua geo-blocking, giả lập người dùng |
| Di động | Trung bình | Rất cao | Kiểm tra API di động, vượt qua WAF nghiêm ngặt |
Mẹo và lỗi thường gặp khi làm việc với Burp Suite
Trong nhiều năm làm việc với Burp Suite, cộng đồng pentester đã tích lũy một danh sách các lỗi điển hình của người mới và các mẹo đã được kiểm chứng. Dưới đây là những điều quan trọng nhất.
Lỗi thường gặp của người mới
- Quên cài đặt chứng chỉ CA. Triệu chứng: Các trang HTTPS hiển thị cảnh báo về kết nối không an toàn, lưu lượng không được chặn. Giải pháp: cài đặt chứng chỉ theo hướng dẫn ở trên.
- Intercept vẫn còn bật. Trình duyệt "đứng hình" - không tải được trang. Giải pháp: chuyển đến Proxy → Intercept và nhấn "Intercept is on" để tắt chế độ chặn.
- Không thêm ngoại lệ cho lưu lượng hệ thống. Burp chặn lưu lượng cập nhật Windows, antivirus, v.v. Cấu hình bộ lọc trong Proxy → Options → Intercept Client Requests để chỉ chặn các miền cần thiết.
- Kiểm tra máy chủ sản xuất mà không có sự cho phép. Điều này là bất hợp pháp. Chỉ sử dụng các môi trường thử nghiệm hoặc ứng dụng với sự cho phép rõ ràng.
- Bỏ qua tab Target → Site Map. Tại đây Burp xây dựng bản đồ của toàn bộ ứng dụng - tất cả các endpoint, tham số và phản hồi đã phát hiện. Đây là nguồn thông tin quý giá trong giai đoạn thu thập thông tin.
Các mẹo hữu ích
- Match and Replace. Trong Proxy → Options → Match and Replace, bạn có thể cấu hình tự động thay thế các giá trị trong yêu cầu. Ví dụ, tự động thêm tiêu đề hoặc thay đổi User-Agent thành di động.
- Decoder. Mô-đun Decoder cho phép nhanh chóng giải mã/mã hóa dữ liệu: Base64, URL-encoding, HTML-entities, Hex. Không thể thiếu trong việc phân tích token và tham số.
- Comparer. Cho phép so sánh hai phản hồi của máy chủ theo byte. Gửi hai yêu cầu tương tự đến Comparer và ngay lập tức thấy sự khác biệt.
- BApp Store. Burp Suite hỗ trợ các tiện ích mở rộng (BApp Store). Các tiện ích phổ biến: Autorize (kiểm tra xác thực), Logger++ (ghi log mở rộng), Turbo Intruder (lặp lại nhanh trong Community), JWT Editor.
- Lưu dự án. Trong phiên bản Professional, bạn có thể lưu dự án. Trong Community, sử dụng Export → Save state để không mất Lịch sử HTTP khi đóng.
- Sử dụng Scope. Trong Target → Scope, thêm miền của ứng dụng mục tiêu. Điều này sẽ cho phép Burp lọc lưu lượng không liên quan và không làm rối Lịch sử HTTP với các yêu cầu đến Google, CDN, v.v.
Các nguồn tài nguyên hữu ích để thực hành
| Nguồn tài nguyên | Loại | Dành cho ai |
|---|---|---|
| PortSwigger Web Security Academy | Phòng thí nghiệm miễn phí + lý thuyết | Người mới và trình độ trung bình |
| DVWA (Damn Vulnerable Web App) | Môi trường cục bộ | Thực hành không rủi ro |
| HackTheBox / TryHackMe | Nền tảng CTF trực tuyến | Thực hành các kịch bản thực tế |
| WebGoat (OWASP) | Môi trường cục bộ với các bài học | Học OWASP Top 10 |
Kết luận
Burp Suite là một công cụ mạnh mẽ và dễ tiếp cận để kiểm tra bảo mật ứng dụng web. Mô-đun proxy của nó cung cấp cái nhìn toàn diện về lưu lượng HTTP/HTTPS, và sự kết hợp giữa Proxy → Repeater → Intruder bao phủ hầu hết các nhiệm vụ pentest thủ công. Bạn có thể bắt đầu miễn phí với phiên bản Community và các phòng thí nghiệm miễn phí của PortSwigger Web Security Academy - đây là cách tốt nhất để làm quen với công cụ này trong thực tế.
Các bước chính để bắt đầu: cài đặt Burp Suite, cấu hình trình duyệt qua FoxyProxy, cài đặt chứng chỉ CA, thêm miền mục tiêu vào Scope - và bạn đã sẵn sàng làm việc. Sau khi làm quen với các mô-đun cơ bản, hãy chuyển sang tìm hiểu các tiện ích mở rộng từ BApp Store: Autorize, Turbo Intruder và JWT Editor sẽ mở rộng đáng kể khả năng của bạn.
Nếu trong quá trình pentest của bạn cần kiểm tra các ứng dụng với định vị địa lý không chuẩn, vượt qua các chặn IP hoặc giả lập lưu lượng của người dùng thực, chúng tôi khuyên bạn nên cấu hình proxy upstream trong Burp Suite. Đối với các nhiệm vụ mà độ ẩn danh cao và vượt qua các bảo vệ dựa trên danh tiếng IP là quan trọng, các proxy cư trú rất phù hợp - chúng cung cấp lưu lượng từ các địa chỉ IP của người dùng thực và giảm thiểu rủi ro bị chặn khi kiểm tra.
```