Report
PostSwigger
Cách cài đặt Burp Certificate:
Các chức năng cơ bản của BurpSuite:
Target

Mục đích của Target: giúp pentester có cái nhìn tổng quan về mục tiêu và lập kế hoạch tấn công hiệu quả
Các thành phần trong Target:
1 - Site map: Nơi hiển thị toàn bộ domain, subdomain, structure đã được scan/tương tác thông qua proxy
2 - Scope: Quản lí các site (List, Unlist) để đưa vào trong quá trình kiểm thử
3 - Issues: Liệt kê các lỗ hổng mà BurpSuite đã từng phát hiện trong khi scan
4 - Panel Site tree: Hiển thị cấu trúc cây các site và API endpoint, source
5 - Contents: Hiển thị chi tiết các request đã được thu thập
6 - Request/Response: Cửa sổ xem chi tiết từng request - response tương ứng tại mục Contents
7 - Issues list: Tổng hợp chi tiết các issue, đi kèm severity, confidence, URL,...
8 - Issues detail: Mô tả chi tiết vấn đề bảo mật, giải thích lý do, nguy cơ, cách thức khai thác và giải pháp tạm thời
9 - Crawl paths view: Đây là chức năng scan nhưng ở dạng live (real time), có thể xem lần lượt từng location/target được discovered (Ảnh bên dưới)
10 - Search / filter: Cho phép tìm filter nhanh trong sitemap, giúp truy xuất thông tin/nội dung muốn kiểm tra/chứng minh dễ dàng.

Proxy

Tab Proxy hiển thị chi tiết các request đi qua Burp Proxy. Tại đây, có các tùy chọn Forward, Drop, Chỉnh sửa hay chuyển sang các action khác (repeater, intruder, etc...)
Các thành phần trong Proxy Tab:
1 - Intercept: đây là tab chính của chức năng proxy, nơi có thể bật/tắt chức năng Intercept (chặn, sửa và chuyển tiếp HTTP request/response).
2 - HTTP History: Liệt kê tất cả các HTTP request/response đã đi qua proxy của Burp, giúp xem lại lịch sử tương tác giữa trình duyệt và server.
3 - WebSockets History: Lưu lại lịch sử các kết nối WebSockets (giao tiếp thời gian thực) đã đi qua Burp Proxy.
4 - Match and Replace: hỗ trợ tìm kiếm (match) và thay thế (replace) tự động các chuỗi trong HTTP/S request hoặc response đi qua proxy.
5 - Proxy Settings
Thiết lập cấu hình proxy: cổng, địa chỉ lắng nghe, chế độ hoạt động, các rule forward, drop,…
Cho phép kiểm soát chi tiết việc chuyển tiếp traffic giữa browser và server.
Intruder

Intruder : cho phép test ứng dụng web bằng cách gửi các payloads đã được định nghĩa trước lên server, sau đó xem xét kết quả trả về
Các thành phần của Intruder
Attack Types:
Sniper: Dò từng vị trí một với toàn bộ payloads (có thể áp dụng fuzz cho từng parameter riêng lẻ).
Battering Ram: Sử dụng cùng một payload cho tất cả các vị trí cùng lúc.
Pitchfork: Kết hợp nhiều list payload, mỗi list cho từng vị trí, gửi đồng thời, cùng lúc và theo thứ tự.
Cluster Bomb: Kết hợp mọi hoán vị giữa các list payloads ở tất cả các vị trí, tạo ra số lượng request rất lớn
Request Template(1): đây là mẫu HTTP request mà bạn sẽ thực hiện tấn công. Các vị trí muốn chèn payload sẽ được đánh dấu bằng cặp ký tự đặc biệt: § (ví dụ:
$p1val$,$p2val$…).Payload: chứa nhiều loại payload khác nhau tùy vào từng endpoint và tùy vào từng loại payload sẽ có các cách config khác nhau
Resource pool: ccho phép tạo, cấu hình và cấp phát resource pool riêng biệt cho từng cuộc tấn công (ví dụ: số lượng thread đồng thời, tốc độ gửi request).
Settings: nơi cấu hình chi tiết toàn bộ các tùy chọn liên quan đến hoạt động của Intruder.
Bao gồm các cài đặt như:
Định nghĩa kiểu attack mặc định;
Cách xử lý lỗi và timeout;
Cấu hình phản hồi với các điều kiện nhất định (filter kết quả đáp ứng điều kiện nào mới lưu...);
Thiết lập encoding, kỹ thuật xử lý đầu vào/đầu ra;
Các tùy chọn nâng cao khác liên quan đến giao thức, proxy, cookie,...
Repeater

Repeater: có thể tùy ý thay đổi và gửi lại những request khác nhau tới server. Đồng thời sẽ nhận về response từ server để có thể phân tích được gói tin
Các thành phần trong tab Repeater:
Inspector: Nó sẽ liệt kê các thành phân trong request và response
Notes: ĐƯợc sử dụng để ghi chú cho từng request
Custom actions: Nơi có thể custom BurpSuite để thực hiện các minitask cho từng request.
Collaborator

Collaborator: giúp phát hiện các lỗ hổng bảo mật như Server Side Request Forgery (SSRF), External Service Interaction, và các vấn đề liên quan đến việc giao tiếp với các dịch vụ bên ngoài.
Sequencer

Sequencer: công cụ chuyên dụng để kiểm tra, phân tích mức độ ngẫu nhiên (randomness) của các giá trị token quan trọng như session ID, CSRF token, reset password token… mà ứng dụng web sinh ra.
Quy trình cơ bản sử dụng Sequencer
Gửi request tạo ra token (ví dụ login, đăng ký, gửi form…) sang Sequencer.
Chọn vị trí token cần phân tích (auto hoặc custom).
Start live capture để Burp tự động thu thập nhiều giá trị token.
Bấm Analyze now để hệ thống chạy kiểm tra.
Đọc kết quả tại từng tab phân tích: entropy, pattern, khuyến nghị chi tiết.
Decoder/Comparer/Logger
Đây là 3 công cụ để thực hiện các minitask như là decode/encode và so sánh 2 request-response và xem toàn bộ HTTP traffic sinh ra bởi các công cụ của BurpSuite



Organizer

Organizer:
Lưu trữ, gắn nhãn, quản lý các request/response quan trọng: ta có thể gửi (send) các request từ các tool khác (Repeater, Logger, Proxy…) đến Organizer để “bookmark” lại, phục vụ phân tích chuyên sâu hoặc báo cáo.
được dùng như một “todo list”, cho phép bạn dán nhãn trạng thái từng request (New, In progress, Postponed, Done, Ignored), ghi chú (notes) liên quan, tô màu (highlight) để dễ nhận diện mức quan trọng
Cấu trúc HTTP Request Response
HTTP Request

Request Line
Request Headers: https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers
A blank line để kết thúc phần header.
Request Message Body - dữ liệu gửi lên server (POST, PUT, …)
HTTP Response

Status Line:
<VERSION> <STATUS-CODE> <REASON-PHRASE>1xx (Informational): Các status code loại này dùng để đơn giản thông báo với client rằng server đã nhận được request.
2xx (Sucess): Các status code loại này có ý nghĩa rằng request được server và xử lý thành công.
3xx (Redirect): Các status code loại này có ý nghĩa rằng server sẽ chuyển tiếp request hiện tại sang một request khác và client cần thực hiện việc gửi request tiếp theo đó để có thể hoàn tất.
4xx (Client error): Các status code loại này có ý nghĩa rằng đã có lỗi từ phía client trong khi gửi request.
5xx (Server error): Các status code loại này có ý nghĩa rằng đã có lỗi từ phía server trong khi xử lý request.
Response Headers
A blank line
Response Message Body
Nếu không có blank line thì server sẽ không phân tách được Body và Header nên request hay response sẽ bị hỏng
HTTP Method
GET
Lấy dữ liệu từ server. Dữ liệu gửi lên (nếu có) nằm trên URL.

POST
Gửi dữ liệu mới lên server (thường để tạo mới tài nguyên). Dữ liệu nằm trong phần body request nên an toàn hơn GET về mặt hiển thị.

PUT
Cập nhật hoặc thay thế toàn bộ thông tin của một tài nguyên đã có trên server. Khi gửi PUT, toàn bộ thông tin sẽ bị ghi đè bởi dữ liệu mới (nếu thiếu field nào sẽ bị mất field đó)

PATCH
Sửa/mở rộng một phần thông tin của tài nguyên. Khác PUT ở chỗ chỉ thay đổi phần muốn cập nhật, không ghi đè toàn bộ thông tin

DELETE
Xóa tài nguyên trên server. Khi gọi DELETE đúng, tài nguyên đó sẽ bị xóa, có thể gọi lại nhiều lần nhưng sau lần đầu sẽ báo không tìm thấy (idempotent)

OPTIONS
là phương thức dùng để hỏi server: "Tài nguyên này hỗ trợ những method HTTP nào?"

TRACE
Khi gửi TRACE request, server sẽ phản hồi lại toàn bộ nội dung request đã gửi, giúp kiểm tra xem request có bị thay đổi trên đường đi (qua proxy, firewall,...) không.

CONNECT, HEAD
Ngoài ra ta còn 2 method khác đó là Connect và Head
Connect: Thiết lập kết nối tới server theo URI cụ thể
HEAD: giống với GET nhưng không trả về body mà chỉ có phần header của 1 request.
HTTP Header
Host
Header này chỉ định và lưu trữ host và port của server.
X-Forwarded-Host
Đây không phải 1 header chuẩn, Version chuẩn của nó là Forwarded
Header X-Forwarded-Host này được dựa trên header Forwarded trên, được dùng để xác định original host requested bởi client trong Host HTTP request header
X-Forwarded-For
Tương tự như trên nhưng header này được sử dụng để xác định Original IP address của client mà kết nối đến Web Server thông qua proxy server.
Referer
Header này chứa absolute hoặc partial address mà người dùng đã đến từ đó, giúp máy chủ đã biết được nguồn truy cập. Header này dùng để phân tích, tối ưu hóa nhưng có thể làm lộ thông tin người dùng nên cần kiểm soát bằng Referer-Policy.
Origin
Header này chứa các thông tin như trên để cho biết origin request. Tức là url "cha". Khác với Referer, Origin không chứa path chi tiết.
Cookie
Header này chứa giá trị cookie liên quan đến server. (Ví dụ như lưu trữ giá trị của Set-Cookie response header)
Accept / Content-Type
Header này được sử dụng để thông báo cho server loại nội dung (MIME types) mà client có thể hiểu và chấp nhận trong phản hồi. Nó hỗ trợ đàm phán nội dung, giúp server chọn định dạng phù hợp
Còn header có thể xuất hiện trong cả HTTP req - res. Nó chỉ định loại nội dung (MIME type) của dữ liệu đang được gửi, giúp bên nhận biết cách xử lý dữ liệu
X-Frame-Options
Là một header HTTP quan trọng, được sử dụng để bảo vệ trang web khỏi các cuộc tấn công clickjacking bằng cách kiểm soát việc hiển thị nội dung trong <frame>, <iframe>, <object> hoặc <embed>
Content-Security-Policy (CSP)
Header này được sử dụng để nâng cao bảo mật cho các trang web bằng cách kiểm soát nguồn gốc của tài nguyên được tải và thực thi để ngăn chặn các cuộc tấn công như cross-site scripting (XSS), clickjacking
Các policy directive chính:
default-src: Quy tắc mặc định cho tất cả tài nguyên nếu không có directive cụ thể khác (ví dụ: default-src 'self' chỉ cho phép từ cùng nguồn gốc)
script-src: Kiểm soát nguồn của script JavaScript (ví dụ: script-src 'self' https://trusted.com)
style-src: Kiểm soát nguồn của CSS.
img-src: Kiểm soát nguồn của hình ảnh.
frame-ancestors: Ngăn chặn clickjacking bằng cách chỉ định nguồn được phép nhúng trang (tương tự X-Frame-Options nhưng linh hoạt hơn).
report-to hoặc report-uri: Gửi báo cáo vi phạm để theo dõi (ví dụ: report-to csp-endpoint)
Các giá trị phổ biến bao gồm 'self' (cùng nguồn), 'none' (không cho phép), hoặc URL cụ thể
<Thêm>
Location
Header này chứa giá trị url được chỉ định để chuyển hướng khi gặp Status code 302
User-Agent
Header này được gửi kèm mỗi lần thực hiện HTTP request. Giá trị của header cho phép máy chủ nhận diện trình duyệt, hệ điều hành, thiết bị hoặc bot đang truy cập
Authorization
Header dùng để gửi thông tin xác thực (credentials) từ client tới server nhằm truy cập tài nguyên được bảo vệ. Header này thường chỉ xuất hiện sau khi client đã nhận phản hồi 401 Unauthorized kèm WWW-Authenticate, nhưng cũng có thể được gửi ngay nếu client đã có sẵn thông tin xác thực.
Basic
Username:Password được Base64-encode; đơn giản nhưng phải đi kèm HTTPS để tránh lộ thông tin.
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Bearer
Mang token (thường JWT hoặc OAuth 2.0 access token); token đại diện quyền truy cập của chủ sở hữu.
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…
Digest
Client gửi hash (MD5/SHA-256) của thông tin đăng nhập cùng nonce do server cấp; giảm rủi ro gửi mật khẩu thô.
Authorization: Digest username="maria", realm="site", nonce="abc", uri="/api", response="dcd98b…"
AWS4-HMAC-SHA256
Dành cho dịch vụ AWS; client ký chuỗi canonical bằng secret key để tạo chữ ký.
Authorization: AWS4-HMAC-SHA256 Credential=AKIA…/20250724/... , SignedHeaders=host;x-amz-date, Signature=...
Cookies
Sau khi đăng nhập, server sinh session ID (JSESSIONID, PHPSESSID) -> Gửi trong Set-Cookie. Mỗi request kết tiếp trình duyệt tự gửi cookie này; server tra session table để xác thực người dùng nên ta không cần phải đăng nhập lại
Các Flag của Cookies
Expires / Max-Age
Thời gian sống (phiên đăng nhập được “ghi nhớ”).
Domain, Path
Phạm vi gửi cookie.
Secure
Chỉ gửi qua HTTPS.
HttpOnly
JavaScript không truy cập được (giảm XSS).
SameSite
Giới hạn gửi cookie theo nguồn (giảm CSRF).
Cấu trúc URL
scheme://[user[:pass]@]host[:port][/path][?query][#fragment]
scheme: giao thức (
http,https,ftp…).user:pass@ (tùy chọn): thông tin đăng nhập.
host: tên miền hay địa chỉ IP.
port: cổng (mặc định 80 / 443 nếu bỏ qua).
path: tài nguyên.
query: cặp tham số
name=valuesau dấu ?; nhiều cặp cách nhau &.fragment: thẻ # cho client-side, không gửi lên server.
Web Functionality
Server-side
Xử lý request, tạo dynamic content (JSP, ASP.NET, PHP…).
Giao tiếp back-end: CSDL, SOAP/REST, dịch vụ e-mail.
Duy trì state bằng session token (cookie, URL-rewrite).
Client-side
HTML/CSS hiển thị; JavaScript thao tác DOM, kiểm dữ liệu.
Ajax(Asynchronous JavaScript and XML)/XHR(XMLHttpRequest) thực thi request.
Extension: Flash, Java Applet, Silverlight – mở rộng khả năng hiển thị tại client-side nhưng tăng bề mặt tấn công.
State & Session
HTTP không có trạng thái → ứng dụng tạo session giữ thông tin giỏ hàng, login, v.v.
Token yếu, dự đoán được hoặc lộ qua URL/log sẽ dẫn đến chiếm phiên.
Encoding Schemes
URL-encoding
Cho phép ký tự “lạ” đi qua HTTP (space → %20)
/search?q=red%20team
Trong URL hoặc trong Request's Body
Unicode / UTF-8
Hỗ trợ đa ngôn ngữ, có thể né lọc đầu vào
%u2215 (/)
Trong HTML hoặc Request's Body để hiển thị đa ngôn ngữ
HTML-encoding
Hiển thị ký tự đặc biệt an toàn, ngừa XSS
<script>
Trong HTML
Base64
Truyền dữ liệu nhị phân qua ASCII
TWFuIGlzIGRpc3...
Trong text-base request hoặc response
Hex-encoding
Chủ yếu cho dữ liệu nhị phân, debug
\x4d\x5a…
Trong các network packets
Last updated
Was this helpful?

