Bug bounty core · 35–50 phút · Bug Bounty

: nghĩ bằng

Học tìm lỗi logic bằng câu hỏi 'điều gì tuyệt đối không được xảy ra?' thay vì săn tên lỗ hổng hoặc payload có sẵn.

SAU BÀI NÀY ÔNG SẼ
  • Giải thích : nghĩ bằng bằng ngôn ngữ của chính mình
  • Dùng để tách quan sát khỏi kết luận
  • Hoàn thành lab : nghĩ bằng an toàn và nêu được /
LÀM CÙNG NHAU · SAFE LAB

Làm cùng nhau: hiểu : nghĩ bằng

Tập suy luận theo trong lab, hoặc dữ liệu synthetic của khóa học.

  1. Bước 1: Đọc tình huống và nói lại bằng lời của mình: Học tìm lỗi logic bằng câu hỏi 'điều gì tuyệt đối không được xảy ra?' thay vì săn tên lỗ hổng hoặc payload có sẵn.

    Kết quả cần thấy: Bạn xác định được hành vi bình thường và câu hỏi cần trả lời trước khi dùng công cụ.

    Vì sao: Khi biết , bạn sẽ không nhầm một chi tiết lạ với kết luận chắc chắn.

    Đừng nhầm: Đừng lao vào command hoặc payload chỉ vì thấy một thuật ngữ quen thuộc.

  2. Bước 2: Thực hiện bài lab an toàn: Chọn ba Lab trong /bounty/, tự viết trước khi mở review. Với mỗi case, tạo một positive test hợp lệ và một negative test thay đúng một dimension.

    Kết quả cần thấy: Bạn có một quan sát cụ thể để so với và ghi thành FACT trong note.

    Vì sao: Chỉ thay một biến giúp bạn biết điều gì thật sự làm kết quả thay đổi.

    Đừng nhầm: Không thử trên website, tài khoản hay hệ thống ngoài phạm vi được phép.

  3. Bước 3: Nêu lại control phù hợp: Enforce phía server tại -of-truth, dùng transaction/ khi cần và kiểm tra ở mỗi state transition.

    Kết quả cần thấy: Bạn mô tả được một positive case hợp lệ và một negative case phải bị từ chối.

    Vì sao: Một bài security chỉ hoàn chỉnh khi bạn hiểu cả cách phòng thủ và .

    Đừng nhầm: Đừng coi thay thông báo lỗi hoặc chặn một chuỗi đơn lẻ là sửa root cause.

01

Bức tranh lớn

Học tìm lỗi logic bằng câu hỏi 'điều gì tuyệt đối không được xảy ra?' thay vì săn tên lỗ hổng hoặc payload có sẵn. Chủ đề này quan trọng vì là tập quy tắc biến trạng thái nghiệp vụ: ai được làm gì, ở state nào, với số lượng/giá trị nào và transition nào phải atomic. là quy tắc phải luôn đúng, ví dụ một coupon one-time không tạo benefit lặp, một invoice không vượt organization boundary, hoặc một item không được commit thành hai purchase. Khi đi , hoặc , phần khó thường không phải nhớ tên công cụ mà là nhận ra mô hình này trong một biến thể mới. Ở Hunter track, lợi thế không đến từ bắn nhiều request hơn. Hãy đọc policy trước, hiểu feature như , viết , dùng tài khoản test để kiểm tra /, giữ nhỏ và chỉ submit điều đã có . AI là copilot cho đọc code, tổ chức notes và review report; researcher vẫn là người chịu trách nhiệm xác minh. thêm yêu cầu policy: chỉ test in-, giảm tối đa dữ liệu/tác động và viết report đủ để triager tái hiện mà không cần đoán. Trước khi sang phần tiếp theo, hãy tự nói lại chủ đề “: nghĩ bằng ” bằng hai câu: hệ thống đang cố làm gì, và quyết định nào có thể tạo ra rủi ro nếu sai.

02

Mental model & từ khóa

là tập quy tắc biến trạng thái nghiệp vụ: ai được làm gì, ở state nào, với số lượng/giá trị nào và transition nào phải atomic. là quy tắc phải luôn đúng, ví dụ một coupon one-time không tạo benefit lặp, một invoice không vượt organization boundary, hoặc một item không được commit thành hai purchase. Các thuật ngữ trọng tâm của bài là: , , , , . Hãy liên kết chúng với luồng dữ liệu và quyết định bảo mật thay vì học định nghĩa rời rạc. Các từ khóa cần nối thành một mô hình duy nhất gồm: , , , , . Đừng học chúng như flashcard rời rạc. Hãy chỉ ra dữ liệu đi từ đâu tới đâu, thành phần nào giữ state, thành phần nào ra quyết định và đâu là . Khi mô hình đúng, bạn có thể dự đoán một thay đổi nhỏ sẽ làm output thay đổi thế nào. là tập quy tắc biến trạng thái nghiệp vụ: ai được làm gì, ở state nào, với số lượng/giá trị nào và transition nào phải atomic.

03

Quy trình quan sát có kiểm chứng

tốt ghi state trước, action, state sau và actor. Status 200/403 chỉ là một phần; side effect trong , , ownership hoặc audit event mới quyết định có bị phá hay không. Luôn bắt đầu bằng expected behavior rồi mới tìm deviation; như vậy bạn biết mình đang chứng minh điều gì. tốt ghi state trước, action, state sau và actor. Status 200/403 chỉ là một phần; side effect trong , , ownership hoặc audit event mới quyết định có bị phá hay không. Bắt đầu bằng expected behavior và một sạch. Sau đó chỉ thay một biến, ghi input/output, timestamp hoặc state cần thiết rồi lặp lại để loại trừ ngẫu nhiên. Nếu tool đưa ra một nhãn như “open”, “vulnerable”, “failed” hay “suspicious”, quay về field thô tạo ra nhãn đó và xác minh bằng cách thứ hai. Đây là thói quen giúp tránh và cũng giúp report tái hiện được.

04

Case lab: từ dữ kiện tới kết luận

Chọn ba Lab trong /bounty/, tự viết trước khi mở review. Với mỗi case, tạo một positive test hợp lệ và một negative test thay đúng một dimension. Đây là tình huống tổng hợp trong lab của khóa học, không dùng target thật. Bài thực hành trọng tâm là: Chọn ba Lab trong /bounty/, tự viết trước khi mở review. Với mỗi case, tạo một positive test hợp lệ và một negative test thay đúng một dimension. Khi làm, chia note thành bốn cột: FACT (thấy trực tiếp), HYPOTHESIS (giả thuyết), TEST (thay đổi nào sẽ phân biệt các giả thuyết) và RESULT (kết quả). Sau khi có đáp án, tạo ít nhất hai biến thể: đổi identity/context và đổi input/state. Nếu kết luận vẫn đứng vững qua các biến thể, bạn mới có confidence cao hơn.

05

Bẫy tư duy & cách tự debug

Lỗi hay gặp là nhìn thấy một tín hiệu rồi gắn ngay nhãn vulnerability hoặc dùng công cụ trước khi hiểu hệ thống. Với chủ đề này, hãy nhớ: hunting hiệu quả bắt đầu bằng và state transition, không bắt đầu bằng danh sách payload. Với bài này, mệnh đề phải giữ là: hunting hiệu quả bắt đầu bằng và state transition, không bắt đầu bằng danh sách payload. Nếu bị kẹt, đừng tăng số lượng command/payload một cách mù quáng. Quay lại , thu hẹp câu hỏi, kiểm tra assumptions và đọc error/output theo từng lớp. Trong lab hoặc , đặt rồi đổi hướng khi không có mới; trong /, luôn kiểm tra trước khi mở rộng bề mặt thử nghiệm.

06

Phòng thủ, & tiêu chí qua bài

Enforce phía server tại -of-truth, dùng transaction/ khi cần và kiểm tra ở mỗi state transition. UI validation chỉ cải thiện trải nghiệm, không phải . Khi review fix, kiểm tra cả positive case, negative case và một biến thể gần kề để tránh vá đúng một chuỗi kiểm thử. Một tốt phải chỉ ra root cause, control đặt ở đúng và cách . Hãy kiểm tra positive case hợp lệ, negative case bị từ chối và ít nhất một biến thể gần kề để tránh “vá đúng payload”. Bạn có thể coi mình qua bài khi: (1) giải thích : nghĩ bằng không nhìn tài liệu; (2) dự đoán được một output mới; (3) hoàn thành lab bằng ; (4) nêu được cách phòng thủ; và (5) phân biệt được observation với conclusion.

THỰC HÀNH AN TOÀN · GUIDED

Bài tập

Chọn ba Lab trong /bounty/, tự viết trước khi mở review. Với mỗi case, tạo một positive test hợp lệ và một negative test thay đúng một dimension. Deliverable: ghi in-, policy constraint, reproduction tối thiểu, đã , impact và . Tự kiểm tra report bằng câu hỏi: triager có tái hiện được mà không cần hỏi thêm, và mình có thu thập dữ liệu nhiều hơn mức cần thiết không?

Gợi ý: Đừng tìm đáp án ngay. Với : nghĩ bằng , ghi trước, thay đúng một biến rồi giải thích vì sao output đổi hoặc không đổi.
safe-terminal · /home/student/lab
MEMORY ONLY
WhiteHat Safe Terminal v2 · MEMORY-ONLY SIMULATOR · gõ help để bắt đầu.
$
KNOWLEDGE CHECK · CẦN 80%

5 câu kiểm tra

Không trừ điểm. Mục tiêu là giải thích được lý do, không phải đoán đúng.

Câu 1/5

Phát biểu nào đúng nhất về : nghĩ bằng ?

Câu 2/5

Trong một lab về “: nghĩ bằng ”, nào phù hợp nhất để bắt đầu kiểm chứng?

Câu 3/5

Control/ nào bám sát chủ đề “: nghĩ bằng ” nhất?

Câu 4/5

Mental model nào nên giữ khi gặp một biến thể mới của “: nghĩ bằng ”?

Câu 5/5

Nếu bài “: nghĩ bằng ” cần thao tác có tính offensive, môi trường nào phù hợp?

PROGRESS

Đánh dấu hoàn thành

Cần đạt ít nhất 80% quiz trước khi chốt bài.