bobby13689
VIP Members
-
27/04/2017
-
44
-
46 bài viết
Web Pentest - Bài 1: Burp Academy và Giới thiệu về Burp Suite
Chào tất cả mọi người.
Thể theo nhu cầu của các bạn (ở trên trang facebook của Whitehat và trên Whitehat.vn), mình sẽ xây dựng một chuỗi các bài viết về Web Pentest. Nếu bạn là newbie, mới nghe, biết đến Web Pentest, thì đây là chuỗi bài dành cho bạn.
Let's get start.
Ở bài 1 này, chúng ta sẽ thực hiện cài đặt công cụ cơ bản để có thể bắt đầu. Vì mục đích là dành cho các bạn mới tìm hiểu, mình sẽ không ưu tiên việc sử dụng các công cụ dò quét tự động để tìm lỗi. Chúng ta sẽ đi từ những thứ cơ bản nhất, cần thiết nhất, như thế, sẽ hiểu rõ hơn về bản chất, sau đó mới đi đến việc sử dụng công cụ tự động.
Phần 1: Yêu cầu
- Burp Suite (link https://portswigger.net/burp/releases/community/latest)
Các bạn tiến hành cài đặt Burp Suite như một phần mềm bình thường, đi theo các hướng dẫn của ứng dụng là được. - Tạo tài khoản trên: https://portswigger.net/web-security
Phần 2: Giới thiệu Burp Suite 2021
Hiện tại, phiên bản mới nhất của Burp Suite là 2021.4.3, khác biệt rất nhiều so với bản 1.7.x của Burp Suite lúc trước, có một số tính năng đã bị giản lược, giao diện thay đổi và tối ưu nhiều hơn, nên mình sẽ giới thiệu mới, (vì trên diễn đàn đã có bài giới thiệu về Burp bản 1.7)
- Khi mới mở lên, giao diện ban đầu sẽ như hình dưới đây.
- Ở giao diện Dashboard, sẽ có các thông tin về các Task đang được chạy, Event log, phía bên phải là các lỗ hổng đã tìm thấy (chỉ áp dụng cho bản Burp Suite Pro, bản Community chỉ show các demo mà thôi). Lưu ý là các thông tin ở Event Log khá quan trọng, một số trường hợp gặp lỗi, liên quan đến certificate, lỗi kết nối sẽ được hiển thị ở đây, giúp bạn nhanh chóng troubleshoot hơn.
- Tiếp đến là giao diện tab Target
Ở Target, sẽ có thông tin về các sites được truy cập, các request được thực hiện trên các site này, bạn có thể nhấn nút > ở trong mỗi site, để xem dưới dạng cây, sẽ có cái nhìn trực quan hơn về target. Cũng ở trong Target, có subtab Scope, dùng để chỉ định những Site nào thuộc scope, phục vụ việc filter các request nhanh chóng hơn (mình sẽ đề cập phần này ở một bài khác, có thể là nâng cao!).
- Tiếp đến là giao diện tab Proxy, phần quan trọng nhất của Burp Suite. Tab HTTP history sẽ lưu lịch sử các request được thực hiện trong quá trình tương tác với ứng dụng. Bạn sẽ sử dụng các thông tin này để xem chi tiết request, response của ứng dụng.
Từ tab Proxy, bạn có thể chọn một request và gửi request này đến các tool khác trong Burp, như Repeater, Intruder, Comparer, ...
Ở bản mới này, Burp Suite có embed Chromium vào bên trong, cho phép bạn không cần phải tự cấu hình một trình duyệt mới để đẩy request sang Burp nữa, rất tiện lợi.
Cách mở: Ở dưới tab Proxy, bạn chọn subtab Intercept, nhấn Open Browse
Bạn nhớ chọn Intercept is off, để ứng dụng chưa Intercept request của bạn (phần này sẽ được đề cập ở một bài sau, sẽ có lúc chúng ta dùng tới tính năng này).
Khi trình duyệt Chromium được khởi chạy, bạn vào một trang web bất kì, whitehat.vn chẳng hạn, và xem các request được ghi nhận ở trong tab HTTP Proxy.
- Tab tiếp theo là Intruder, được sử dụng để brute force username/password, directory, hoặc dùng để test IDOR,..., phần này rất quan trọng, và khá dài, do đó mình sẽ mô tả ở một bài viết khác.
- Kế bên tab Intruder, là Repeater, thành phần không thể thiếu trong mỗi lần pentest của chúng ta. Các request ở trong tab Target, Proxy khi chọn "Sent request to Repeater" sẽ được hiển thị ở đây. Tại giao diện này, cho phép chúng ta có thể chỉnh sửa bất kì thành phần nào của request, từ method, headers, parameters,... Sau khi chỉnh sửa request xong, bạn nhấn Send để gửi request đến server.
Vì sao mình gọi đây là thành phần không thể thiếu trong mỗi lần pentest, là bởi vì việc tấn công một target, đòi hỏi chúng ta phải gửi những payload khác nhau, ở những vị trí khác nhau của ứng dụng. Bản chất của những công cụ tự động cũng tương tự.
Việc tự thay đổi request như thế này, cho phép chúng ta thử toàn bộ các payload mà chúng ta có, hoặc gửi payload để tìm thêm thông tin về ứng dụng, tìm các input được reflect trong response (khi tìm lỗ hổng XSS), hoặc xem kết quả trả về khi chúng ta nhập payload là SQL injection payload,..., và để làm những tác vụ đó, Repeater là giải pháp tốt nhất để thực hiện.
Khi đi vào các ví dụ cụ thể, các bạn sẽ thấy, chúng ta sử dụng nó rất nhiều.
- Tiếp đến là tab Sequencer, được dùng để phân tích các token trong ứng dụng, được sử dụng nhiều để xem mức độ phức tạp của thuật toán tạo token, xem có dễ bị dò đoán hay không.
- Tiếp đến là tab Decoder, dùng để encode, decode những thông tin mà người dùng nhập vào, ví dụ decode Base64, encode MD5, ..., cũng được sử dụng rất nhiều.
- Tab Comparer, dùng để so sánh các request, response khác nhau, do bạn gửi vào (thông qua Proxy tab hoặc Target tab, bằng việc nhấn chuột phải vào request, và chọn "Sent to Comparer"). Chức năng này rất hữu dụng trong việc tìm điểm khác nhau giữa 2 request, trong trường hợp request quá lớn để xem bằng mắt thường.
- Tab Logger được dùng để log lại tất cả các request được thực hiện trên Burp, các bạn sẽ thắc mắc là vì sao đã có Proxy History rồi, lại cần có Logger? Vì một số extension, scanner (bản Pro) sẽ gửi các request mà không được lưu lại ở trên Proxy History, nên cần có một nơi để log lại, để bạn xem được toàn bộ request, trong trường hợp bạn muốn biết ứng dụng có đang chạy scan gì hay không.
- Tab Extender: Ở tab này, cho phép bạn thêm mới các extension có sẵn của Burp, hoặc thêm những extension do chính bạn phát triển (phần này rất hay, và hỗ trợ chúng ta rất nhiều, mình sẽ dành hẳn 1 bài riêng để hướng dẫn cách viết, các bạn chờ đọc nhé).
- Các extensions này sẽ giúp chúng ta rất nhiều trong việc pentest, ví dụ: làm cho request trông gọn gàng hơn, tự động gửi những request tương tự, thay đổi một tham số nào đó,..
- Các extensions này sẽ giúp chúng ta rất nhiều trong việc pentest, ví dụ: làm cho request trông gọn gàng hơn, tự động gửi những request tương tự, thay đổi một tham số nào đó,..
- Hai tab Project Options và User Options được dùng để cấu hình về xác thực (khi pentest các ứng dụng yêu cầu xác thực mới vào được), hoặc chỉnh Upstream proxy, để đẩy request từ Burp đến các proxy khác (dùng khi tương tác với nhiều thành viên khác nhau, để tập trung các request của nhiều tester về một nơi duy nhất, ..)
- Sau khi tạo tài khoản và đăng nhập thành công, bạn truy cập https://portswigger.net/web-security/learning-path để lựa chọn những thử thách và bắt đầu hacking thôi.
- Ở đây sẽ có khá nhiều loại bug cho bạn bắt đầu luyện tập, họ có tạo learning path cho bạn, để hướng dẫn các hướng đi cho những người mới bắt đầu.
- Lý do mình chọn Burp Academy để giới thiệu cho các bạn, là vì tác giả của khoá này, cũng chính là tác giả của cuốn The Web application hacker handbook, một cuốn sách rất nổi tiếng và được tham khảo rất nhiều bởi các hacker nổi tiếng.
Các lab ở đây đều được cập nhật theo thời gian, có theo các trend, và đặc biệt, cho người học một cái nhìn rất tổng quan, nhưng cũng rất chi tiết về các loại lỗi, cách thức hoạt động, và cách thức khai thác các lỗi này.
Ở trong các bài tới, mình sẽ sử dụng Burp và các bài lab này để làm công cụ training, cũng như đi sâu hơn về một số tính năng như mình có đề cập ở trên, như Intruder, Sequencer, ...
Hẹn các bạn ở các bài tiếp theo.
Happy Hacking!
Các bài khác trong series này:
Bài 2: https://whitehat.vn/threads/web-pen...-force-de-do-tim-duong-dan-va-password.14754/
Bài 3: https://whitehat.vn/threads/web-pentest-bai-3-thu-thap-thong-tin-cua-ung-dung.14792/
Chỉnh sửa lần cuối: