- vừa được xem lúc

Tìm hiểu kỹ thuật fuzzing trong pentest và các công cụ hỗ trợ

0 0 10

Người đăng: kan

Theo Viblo Asia

Trong quá trình kiểm thử xâm nhập (pentest), fuzzing là một kỹ thuật quan trọng giúp phát hiện lỗ hổng trong mã nguồn. Bài viết này sẽ cung cấp một số thông tin về fuzzing, cách hoạt động, và giới thiệu về hai công cụ mã nguồn mở phổ biến: wfuzzffuf.

1. Kỹ thuật Fuzzing

  • Fuzzing là một phương pháp kiểm thử hộp đen (blackbox testing) trong đó ứng dụng được kiểm tra từ bên ngoài vào, giống như khi một hacker cố gắng đột nhập mà không có quyền truy cập vào mã nguồn.
  • Kỹ thuật fuzzing tự động tạo ra các đầu vào hoán vị và phân tích kết quả để tìm ra các lỗ hổng bảo mật trong phần mềm.
  • Fuzzing là một phần quan trọng của quy trình kiểm thử bảo mật và giúp cải thiện khả năng phục hồi an ninh mạng.

2. Công cụ Wfuzz

Wfuzz là một công cụ mã nguồn mở giúp tự động hóa kiểm thử bảo mật ứng dụng web. Nó có thể giúp pentester tìm ra và khai thác các lỗ hổng trong ứng dụng web. Dưới đây là hướng dẫn cài đặt và sử dụng Wfuzz:

2.1. Cài đặt Wfuzz:

Wfuzz được tích hợp sẵn trong Kali Linux. Nếu chưa được cài đặt, hãy thực hiện lệnh sau để cài đặt:

sudo apt update -y
sudo apt install wfuzz -y

2.2. Sử dụng Wfuzz:

Dưới đây là một số thao tác thường dùng với Wfuzz:

Tìm URI:

wfuzz -c -w wordlist/dict.txt -u http://target.domain/FUZZ --sc 200

Tìm các file ẩn:

wfuzz -c -w wordlist/dict.txt -u http://target.domain/FUZZ.php --sc 200

Tìm param:

wfuzz -c -w wordlist/dict.txt -u http://target.domain/get.php?FUZZ=test --sc 200

Giải thích:

  • -c: Hiển thị kết quả màu mè.
  • -w: Chỉ định từ điển (word list).
  • --sc: Chỉ hiển thị HTTP status code 200. Nếu có nhiều, sử dụng ví dụ: --sc 200,301,....

2.3. Fuzzing POST request:

Wfuzz cũng có thể dùng trong việc fuzzing POST request. Ví dụ:

wfuzz -c -w wordlist/dict.txt -d "uname=FUZZ&pass=FUZZ" --hc 302 -u http://target.domain/userinfo.php

2.4. Fuzzing Basic Authentication:

Sử dụng Wfuzz tấn công basic authentication:

wfuzz -c -w wordlist/dict.txt --basic FUZZ:FUZZ -u http://target.domain/admin.php --sc 200

3. Công cụ ffuf

Ffuf (Fuzz Faster U Fool) là một công cụ mã nguồn mở được viết bằng Go, được sử dụng cho fuzzing trong quá trình kiểm thử bảo mật. Dưới đây là hướng dẫn cài đặt, cách sử dụng, và một ví dụ về việc sử dụng ffuf.

3.1. Cài đặt

  • Cài đặt Golang:
    Ffuf được viết bằng Go, vì vậy ta cần cài đặt Golang trước. Trên Ubuntu, sử dụng lệnh sau để cài đặt:
sudo apt-get install golang
  • Cài đặt Ffuf: Sau khi đã cài đặt Golang, cài đặt ffuf bằng lệnh:
go get github.com/ffuf/ffuf

Hoặc có thể sao chép mã nguồn từ repository GitHub và biên dịch bằng lệnh:

git clone https://github.com/ffuf/ffuf
cd ffuf
go build

Để kiểm tra xem việc cài đặt đã thành công hay chưa, hãy chạy lệnh:

ffuf -V

3.2. Sử dụng

Các tùy chọn quan trọng:

  • -u hoặc --url: URL mục tiêu.
  • -w hoặc --wordlist: Danh sách từ (wordlist) để fuzz.
  • -X: Phương thức HTTP (mặc định là GET).
  • -H: Header (ví dụ: -H "Authorization: Bearer token").
  • -d: Dữ liệu POST.
  • -o: Lưu kết quả vào tệp.
  • -t: Số luồng (threads) để thực hiện (ví dụ: -t 50).

Ví dụ:
Fuzz các tham số URL:

ffuf -u https://example.com/FUZZ -w common.txt

Trong ví dụ này, ffuf sẽ thay thế từ khóa FUZZ trong URL bằng các từ trong danh sách common.txt.

Kết luận

Trong bài viết này, chúng ta đã tìm hiểu về kỹ thuật fuzzing trong quá trình kiểm thử bảo mật (pentest). Fuzzing là một phương pháp quan trọng giúp phát hiện lỗ hổng bảo mật trong mã nguồn ứng dụng. Ngoài ra, chúng ta cũng đã khám phá cách hoạt động của fuzzing thông qua hai công cụ mã nguồn mở phổ biến: wfuzzffuf.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Linux Hardening and System Auditing (P1)

. Ngày nay, các hệ thống Linux được sử dụng trong suốt quá trình tính toán, từ các hệ thống nhúng đến hầu như tất cả các siêu máy tính, đồng thời đảm bảo một vị trí quan trọng trong các hệ thống máy chủ trên toàn thế giới. Linux đem lại cho người dùng khả năng tùy biến cao, sự ổn định và độ tin cậy

0 0 43

- vừa được xem lúc

Tìm bug với Eyewitness

. Chào các bạn, trong bài này mình sẽ viết về tool Eyewitness. Eyewiteness có tính năng chính là chụp hình lại giao diện trang web sau đó tạo một report thông qua file .

0 0 35

- vừa được xem lúc

Tôi đã debug code PHP như nào!

. Nhân dịp đầu xuân năm mới, mình xin gửi lời chúc an lành tới tất cả thành viên của viblo.asia.

0 0 56

- vừa được xem lúc

OAuth 2.0 và vài vấn đề bảo mật liên quan (Phần 2)

III. Demo một số tấn công vào cơ chế OAuth. Trong phần này mình sẽ demo một số kiểu tấn công của OAuth dựa trên các bài lab được thiết kế bởi Portswigger. a.

0 0 97

- vừa được xem lúc

OAuth 2.0 và vài vấn đề bảo mật liên quan (Phần 1)

Trong thời đại công nghệ ngày nay, việc đăng nhập bằng các tài khoản của các nền tảng khác không phải điều gì xa lạ đối với mỗi người dùng chúng ta. Việc này khả thi nhờ một vài cơ chế khác nhau, một trong số đó là OAuth 2.

0 0 50

- vừa được xem lúc

Hành trình pass OSCP trong lần thi đầu tiên (2020)

Vào một chiều đông 17/12/2020, tôi nhận được cái email thông báo đã pass OSCP ngay lần thử đầu tiên. Sau đó, tôi bắt đầu tìm hiểu về Security và quyết định học cái gì đó cho riêng mình.

0 0 195