Các tùy chọn này có thể được sử dụng trong các giao diện thư viện chính: fuzz, payload hoặc session một cách rõ ràng.
1.2. Fuzzing một URL
Fuzzing một URL với thư viện wfuzz rất đơn giản. Đầu tiên, import môđun wfuzz:
64
Bây giờ, chúng ta hãy thử fuzz một trang web để tìm nội dung ẩn, chẳng hạn như thư mục. Đối với ví dụ này sử dụng Acunetix’s testphp (http://testphp.vulnweb.com/):
Hình 128. testphp
Bây giờ, chúng ta có một đối tượng FuzzResult được gọi là r. Chúng ta có thể nhận được tất cả thơng tin chúng ta cần từ đối tượng này.
1.3. Đối tượng FuzzSession
Một đối tượng FuzzSession có tất cả các phương thức của API wfuzz chính
Đối tượng FuzzSession cho phép bạn duy trì các thơng số nhất định trong các phiên fuzzing:
Hình 129. Duy trì thơng số trong các phiên fuzzing
ContextFuzzSession cũng có thể được sử dụng làm trình quản lý context:
65
Hình 130. Duy trì thơng số trong các phiên fuzzing
1.4. Get Payload
Hàm get_payload tạo ra một payload Wfuzz từ một tệp có thể lặp lại trong Python. Đó là một cách nhanh chóng và linh hoạt để payload theo lập trình mà khơng cần sử dụng các plugin payload Wfuzz.
Việc tạo một payload mới và bắt đầu chạy thực sự đơn giản như sau:
Hình 131. Tạo 1 payload và chạy
Phương thức get_payloads có thể được sử dụng khi cần nhiều payload khác nhau:
66
1.5. Get Session
Hàm get_session tạo một đối tượng phiên Wfuzz từ dòng lệnh được chỉ định. Đó là một cách nhanh chóng nhận payload theo chương trình từ một chuỗi đại diện cho các tùy chọn CLI:
Hình 133. Sử dụng phương thức get_payloads khi cần nhiều payload khác nhau
1.6. Tương tác với kết quả
Sau khi có kết quả của wfuzz có thể làm việc với kết quả đó trong ngơn ngữ với syntax như sau:
Hình 134. Làm việc với kết quả đó trong ngơn ngữ với syntax
Đối tượng kết quả cũng có một phương thức để đánh giá một biểu thức ngơn ngữ:
67
Hình 135. Phương thức để đánh giá biểu thức ngôn ngữ
IV. Bài demo
Đầu tiên sẽ tải wfuzz về Kali với câu lệnh pip install wfuzz
Hình 136. Cài Wfuzz về máy Kali
Nhập wfuzz -h để được trợ giúp, Wfuzz có thể được sử dụng để tìm kiếm nội dung ẩn, chẳng hạn như tệp và thư mục, trong máy chủ web, cho phép tìm thêm các vectơ tấn công. Cần lưu ý rằng, sự thành công của nhiệm vụ này phụ thuộc rất nhiều vào các từ điển được sử dụng. Theo mặc định, wfuzz chứa các tệp danh sách từ fuzzdb và seclists, một số cách sử dụng cơ bản của wfuzz được đề cập dưới đây:
68
Hình 137. Nhập wfuzz -h để được trợ giúp
1. Fuzzing các đường dẫn và tệp
Trong url trên, từ khóa “FUZZ” phải được chỉ định bởi vì từ khóa “FUZZ” giống như một loại giá đỡ cho công cụ thực hiện ở đâu để FUZZ.
69
2. Tham số Fuzzing trong URL
Bạn thường muốn FUZZ một số loại dữ liệu trong chuỗi truy vấn của URL, điều này có thể đạt được bằng cách chỉ định từ khóa FUZZ trong URL sau dấu chấm hỏi:
Hình 139. Tham số Fuzzing trong URL
3. Fuzzing Cookies
Ví dụ: để gửi cookie của riêng bạn đến máy chủ, để liên kết yêu cầu với các phiên HTTP, bạn có thể sử dụng tham số -b (lặp lại cho các cookie khác nhau):
70
Hình 140. Fuzzing Cookies
4. Verbs HTTP
Các động từ HTTP fuzzing có thể được chỉ định bằng cách sử dụng công tắc -X
71
Trên trang http://www.infosecptit.com/code/login_error.asp
Hình 142. Verbs HTTP trên trang http://www.infosecptit.com/code/login_error.asp
5. Xác thực
Wfuzz có thể đặt tiêu đề xác thực bằng cách sử dụng các khóa chuyển dịng lệnh –basic / ntlm / dig.
Ví dụ: một tài nguyên được bảo vệ sử dụng Xác thực cơ bản có thể được làm mờ bằng lệnh sau:
72
Hình 143. Wfuzz dùng để xác thực
Trên trang http://www.infosecptit.com/code/login_error.asp
Hình 144. Wfuzz dùng để xác thực trên trang http://www.infosecptit.com/code/login_error.asp
73
6. Đệ quy
Cơng tắc -R có thể được sử dụng để chỉ định độ sâu của đệ quy payload. Ví dụ: nếu bạn muốn tìm kiếm các thư mục hiện có và sau đó FUZZ lại các thư mục này bằng cách sử dụng cùng một payload, bạn có thể sử dụng lệnh sau:
74
Chương 3: So sánh, đánh giá
Wfuzz là một ứng dụng hướng dòng lệnh chạy trong Linux Terminal hoặc Windows Command Prompt, có nghĩa là nó khơng chứa GUI tương tác và thay vào đó được cung cấp bởi các cờ dịng lệnh đã nhập. Mặc dù điều này có vẻ hạn chế hơn lúc đầu, nhưng điều này cho thấy mức độ linh hoạt cao hơn vì bạn có thể sử dụng đầy đủ công cụ qua các máy chủ từ xa, cũng như “đường dẫn” (chuyển đến/từ) vào và ra khỏi Wfuzz với các các cơng cụ điều khiển dịng lệnh. Điều này có thể cảm thấy hạn chế lúc đầu, tuy nhiên tơi khuyến khích bạn làm theo hướng dẫn này để tận dụng tối đa Wfuzz và khi bạn trở thành người dùng nâng cao hơn, bạn sẽ có thể tận dụng tối đa tính linh hoạt này. Thơng thường, bạn sẽ nghe Wfuzz so với các công cụ như dirb hoặc dirbuster, mặc dù đúng ở một mức độ nhất định, nhưng không phải là một so sánh rất cơng bằng. Mặc dù Wfuzz có thể được sử dụng để thực hiện hành vi tấn cơng thư mục nhưng sức mạnh thực sự của nó nằm ở tính linh hoạt của nó và một cơng cụ so sánh tốt hơn cho Wfuzz nên được tạo ra để chống lại những thứ như Burp Suite Intruder hoặc Turbo Intruder
Về vấn đề cộng đồng và nguồn tài nguyên để tìm hiểu và khai thác thì Wfuzz vẫn cịn khác nhiều hạn chế, bản thân cộng đồng có thể hỗ trợ Wfuzz khá là ít, cũng như trong cuốn sách của nhà phát triển Wfuzz - Xavier Mendez cũng có nhiều cái thiếu xót ví dụ như lỗi “No plugins found!” khi sử dụng wordlist đã làm hạn chế nhiều khả năng của Wfuzz.
75
76
Chương 4: Kết luận
Như vậy, qua phần tìm hiểu và các bài demo mẫu, bản thân chúng ta có thể thấy rằng Wfuzz là một công cụ vô cùng hữu hiệu trong việc kiểm thử xâm nhập hệ thống, giúp những chuyên gia bảo mật và chuyên viên kiểm thử xâm nhập có thể nhanh chóng phát hiện các lỗ hổng. Bên cạnh đó, wfuzz cũng giúp những người làm bảo mật không chuyên tiếp cận với việc khai thác lỗ hổng dễ dàng với rất nhiều module và payload được tích hợp sẵn. Hơn thế nữa cộng đồng bảo mật trên khắp thế giới không ngừng xây dựng phát triển cơng cụ để có để tạo ra một cơng cụ tồn diện và đạt hiệu quả cao nhất
77
Tài liệu tham khảo
Edge-Security. (2021). Được truy lục từ Edge-Security: http://www.edge-
security.com/wfuzz.php
Git Hub. (2017, July 20). Retrieved from Git Hub:
https://github.com/gwen001/wfuzz/blob/master/README
Kali. (2021, 11 26). Retrieved from Kali: https://www.kali.org/tools/wfuzz/
Mendez, X. (2020). Wfuzz Documentation (2.1.4 ed.).