Pentest Web với Wfuzz

Pentest Web là quá trình kiểm thử một trang web có an toàn hay không. Để thực hiện pentest ta cần có kiến thức về các lỗ hổng, một bộ não vừa phải cũng như các công cụ cần thiết. Với trình độ của một sờ-cờ-ríp-kít-bát-tồ (gọi vui của: script kiddie + battle) thì việc biết và sử dụng công vụ là điều quan trọng. Sử dụng công cụ gì vào công đoạn nào cũng như dùng như thế nào cho đúng cách sẽ giúp công cuộc bát-tồ trở nên dễ thở hơn. Nhưng không phải cứ có công cụ xịn là ta sẽ thắng trong mọi cuộc chơi. Ví như mình đi đánh nhau được anh chỉ huy cho khẩu tiểu liên còn thằng địch nó chỉ có phi tiêu nhưng với trình độ của Uchiha Itachi.

Sau màn giới thiệu đầy màu mè thì bây giờ đi vào nội dung chính của bài chia sẻ: Sử dụng Wfuzz cho pentest web.

Wfuzz là gì?

Theo như mô tả từ trang chủ:

Wfuzz provides a framework to automate web applications security assessments and could help you to secure your web applications by finding and exploiting web application vulnerabilities.

Hiểu đơn giản Wfuzz là một công cụ giúp ta kiểm thử ứng dụng web.

Cài đặt Wfuzz

Wfuzz được tích hợp sẵn cùng với Kali. Nếu bản kali, ubuntu nào chưa có thì cài đặt theo hướng dẫn bên dưới.

sudo apt update -y
sudo apt install wfuzz -y

Hiện tại máy kali của mình đã được cài wfuzz

Sử dụng Wfuzz

Thao tác thường dùng

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 thì: --sc 200,301,...

Fuzzing POST request

Wfuzz có thể được dùng trong việc fuzzing POST request. Tùy từng trường hợp mà sử dụng cho hợp lý.

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

Fuzzing Basic Authentication

Sử dụng wfuzz tấn công basic authen

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

Wfuzz kết hợp với proxy

Wfuzz hỗ trợ proxy để tiện cho việc phân tích requests.

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

Sử dụng nhiều proxy

wfuzz -c -w wordlist/dict.txt -u http://target.domain/FUZZ.php --sc 200 -p localhost:8080:HTTP -p localhost:2222:HTTP

Ngoài HTTP proxy, Wfuzz còn hỗ trợ proxy: SOCKS4 ,SOCKS5

Để sử dụng chỉ việc thay HTTP bằng SOCKS4 ,SOCKS5 tương ứng.

Fuzzing HTTP header

Để fuzzing HTTP header ta sử dụng tham số -H

wfuzz -c -w wordlist/dict.txt -u http://target.domain/admin.php -H "User-Agent: FUZZ" -H "Other-Header: Value"

Muốn sửa nhiều HTTP header thì ta sử dụng nhiều tham số -H

Sử dụng nhiều param fuzzing

Wfuzz cho phép ta sử dụng nhiều param từ các word list khác nhau. Wfuzz cho phép ta sử dụng nhiều param từ các word list khác nhau. Để làm việc này ta sử dụng: FUZZ, FUZ2Z, FUZ3Z,...

wfuzz -c -z file,wordlist/param.txt -z file,wordlist/value.txt -u http://target.domain/get.php?FUZZ=FUZ2Z --sc 200

chú ý: FUZZ=FUZ2Z

Đây cũng là phần cuối của bài chia sẻ. Cảm ơn đã đọc đến phần này!

Tham khảo

Để biết thêm nhiều thông tin cũng như cách dùng khác đọc thêm tại: https://wfuzz.readthedocs.io/

All Rights Reserved