Penetration Testing Step 3 – Bộ ba “er” Sequencer, Decoder và Comparer của Burp Suite

Kết thúc nội dung Penetration Testing Step 3 – Bắn tỉa mục tiêu với Sniper attack  của Burp Suite Intruder, dù còn khá nhiều điều lý thú của Intruder chưa đề cập nhưng tôi xin tạm gác lại để tránh sa đà quá lâu vào cái đầm lấy ấy. Trong kỳ này tôi sẽ chuyển các đối tượng còn lại trong dòng họ “er” của Burp SuiteSequencer, DecoderComparer.

Lưu ý: Thật ra dòng họ “er” của Burp Suite sẽ còn có LoggerExtender nữa. Tuy nhiên do tính chất nó hơi khác nên tôi sẽ tách ra giới thiệu sau.

#1. Burp Suite Sequencer là cái vẹo gì?

Trả lời: Sequencer là công cụ của Burp Suite để kiểm tra độ ngẫu nhiên của dữ liệu.

Câu hỏi kế tiếp, đang bàn vụ pentest, bảo mật sao tự nhiên chuyển hướng sang vấn đề độ ngẫu nhiên làm “quờ quờ” gì?

Trả lời: Độ ngẫu nhiên là tính chất rất quan trọng với bảo mật, cụ thể là với các thể loại như session IDs, anti-CSRF token, password reset token,…Và nhiệm vụ của mấy ông bảo vệ hệ thống là phải xác định xem với lượng mẫu token phù hợp, liệu độ ngẫu nhiên của token đã đủ trâu trước các đòn tấn công chưa.

Lưu ý: Vấn đề múc bao nhiêu mẫu token cũng là thứ cần xem xét kỹ tùy thuộc vào đối tượng được đánh giá.

Để test thử hàng, bạn có thể gọi Context Menu bằng chuột phải vô một cái request rồi chọn Send to Sequencer như sau.

Send to Sequencer
Send to Sequencer

Sau đó di chuyển sang Sequencer tab. Ở đây, bạn sẽ thấy Sequencer đã tự động phân tích request và lựa chọn SessionId trong cookie.

Sequencer tab
Sequencer tab

Bạn có thể múc cái token này để phân tích chỉ số sức mạnh của nó. Để bắt đầu kiểm tra, bạn chỉ cần chọn Start live capture và lúc này sẽ xuất hiện một cửa sổ mới như sau.

Live capture
Live capture

Quá trình hốt hàng live capture sẽ bắt đầu và bạn có thể dừng/phục hồi bất kỳ lúc nào. Tuy nhiên cần lưu ý, khi kích thước mẫu token bắt được lớn một tí (ví dụ trên 100) thì bạn hãy tiến hành phân tích thì mới có ý nghĩa. Đừng mới tóm được vài cái token bạn đã cắm đầu phân tích thì sẽ chẳng ra gì.

Để phân tích thử, bạn có thể chọn vào Analyze now. Sau quá trình phân tích, bạn sẽ thấy thông báo kết quả tóm lược về độ ngẫu nhiên của token như sau.

Sequencer analysis result
Sequencer analysis result

Lưu ý:

  • Như bạn thấy, ở trên mới chỉ là phần tóm lược. Bạn có thể xem dạng Character-level analysis hoặc Bit-level analysis cũng như thay đổi Analysis Options;
  • Bên trong phần kết quả tóm lược, bạn cũng thấy một số thứ hơi kỳ quái ví dụ như Effective Entropy. Tôi sẽ sắp xếp quay lại bàn kỹ về vấn đề này trong một nội dung khác;
  • Bạn cũng có thể chỉnh lại các tùy chọn với Live Capture Options như bên dưới.
Live capture options
Live capture options

Ngoài phương án “bắt và ăn sống” như trên, bạn cũng có thể “ăn nguội” bằng cách hốt đám token từ đâu đó về rồi load thủ công vô cho Sequencer xử lý. Với cách này, bạn cần di chuyển qua Manual load tab như sau.

Sequencer manual load
Sequencer manual load

Sau đó copy/paste đám mẫu token vào rồi chạy phân tích với Analyze now.

#2. Làm được gì với Decoder của Burp Suite

Như bạn đã biết (nếu chưa thì bây giờ biết), web application thường sẽ dùng nhiều dạng encoding như Ascii, HTML, Base64,… Và Decoder là công cụ hỗ trợ thực hiện việc encoding/decoding dữ liệu trong Burp Suite. Để thử nghiệm nhanh, bạn có thể chọn đại một đoạn text trong Burp Suite rồi bật Context Menu và click Send to Decoder như sau.

Send to Decoder
Send to Decoder

Di chuyển qua Decoder tab, bạn sẽ thấy các tùy chọn Decode/Encode tương ứng. Ví dụ tôi chọn thử Encode Base 64 sẽ thấy kiểu như sau.

Decoder tab
Decoder tab

Bạn cũng có thể dùng Decoder để chuyển đổi thủ công các đối tượng khác thu lượm được trong quá trình Pentest ví dụ như tôi thử decode Json Web Token header với dạng Base64 như sau.

Manual decoder
Manual decoder

#3. Thoát kiếp nạn căng mắt soi response với Comparer của Burp Suite

Comparer có thể giúp bạn so sánh nội dung các response và highlight các vị trí khác biệt. Thứ này sẽ cực kỹ hữu ích cho tình huống bản thử nghiệm các phương án tấn công khác nhau (ví dụ đổi request parameter và headers trong Repeater). Kết quả có thể chỉ có vài khác biệt nhỏ nhưng đôi khi lại là điểm ăn tiền. Ví dụ như khi bạn phát hiện application phản hồi với 2 tình huống là valid username + invalid passwordinvalid username + invalid password khác nhau thì bạn có thể tận dụng để thực hiện dò tìm các valid username.

Lưu ý: Nếu bạn chưa biết Repeater là gì thì bơi vào nội dung Penetration Testing Step 3 – Thủ thuật chọc ngoáy HTTP/WebSockets message với Burp Suite Repeater.

Một ví dụ khác là với Blind SQL injection (tôi sẽ giới thiệu kỹ sau, giờ nếu chưa biết thì bạn cứ tạm hình dung là một phương án tấn công vào Database thôi cũng được), khác biệt trong các response thường sẽ rất nhỏ. Nếu không chơi Comparer bạn phải ngồi soi toét mắt mới mong kiếm ăn được.

Để gửi hàng đến Comparer, bạn cũng bật Context Menu trên response tương ứng và chọn Send to Comparer như sau.

Send to Comparer
Send to Comparer

Tiếp tục, sau khi mông má cái request và chạy lại, bạn chuyển tiếp cái response thứ 2 cần so sánh đến Comparer rồi di chuyển sang đấy.

Comparer tab
Comparer tab

Với Comparer, bạn có thể so sánh response dạng Words hoặc Bytes. Hiển nhiên dạng Bytes xử lý đẳng cấp cao hơn nên sẽ cần tài nguyên hơn để xử lý do vậy bạn nên thử với Words trước. Khi nào có lý do đặc biệt để phân tích sâu hơn hãy sử dụng dạng Byte.

Comparer result
Comparer result

Lưu ý: Hình trên tôi múa lửa để thể hiện tính năng thôi. Bạn có thể tự thử nghiệm với các dạng tấn công (ví dụ dùng Repeater) rồi sử dụng Comparer so thử kết quả.

Ở đây bạn cũng sẽ thấy có mã màu hiển thị thông tin cho biết chỗ nào là Modified – bị chỉnh sửa, Deleted – xóa hoặc Added – thêm vào cũng như thông tin tóm lược về các điểm khác biệt ngay trên chỗ title để tiện theo dõi.

Rồi, đến đây tôi xin tạm dừng nội dung giới thiệu về bộ ba Sequencer, DecoderComparer. Bạn cần lưu ý chi tiết về bộ ba này sẽ còn cả đống thứ cần nói. Tuy nhiên, phần chi tiết sẽ dễ hình dung hơn nếu có bối cảnh tấn công cụ thể. Do vậy, kỳ này tôi sẽ chỉ giới thiệu tính năng cơ bản. Những phần rối rắm tôi sẽ nghiên cứu bàn kỹ thêm sau.

1 thought on “Penetration Testing Step 3 – Bộ ba “er” Sequencer, Decoder và Comparer của Burp Suite”

Leave a Reply

Your email address will not be published. Required fields are marked *