Professional Documents
Culture Documents
B2: Burp Site sẽ load lịch sử khi ta thực hiện trên browser, tại “Proxy” tiến hành gửi
request “send to intruder”.
B3: Tiến hành crack username và password trên burp suite với “Attrack type: Cluster
bomb”.
Thêm các username dự đoán có khả năng là đúng tại “Payload set 1”:
- Thêm các password ở “Payload set 2”, dự đoán có khả năng là đúng:
Tiến hành “Start attrack”
- Ta thấy có hai hàng 1 và 3, có số “Length” khác với các số còn lại. Mà username
và password đã crack trùng với dữ liệu trong database.
1.5. Cách khắc phục
Việc khắc phục để tránh bị brute-force thì có thể làm theo cách sau:
- Không sử dụng thông tin liên quan đến bản thân mà có thể lấy được trên mạng như
tên, ngày sinh, vv...
- Có càng nhiều ký tự càng tốt: việc sử dụng từ 10 ký tự trở lên có thể khiến cho
việc brute-force tốn rất nhiều thời gian, thời gian có thể lên cả năm trời.
- Kết hợp các chữ cái, số và các ký hiệu đặc biệt.
- Tránh sử dụng những mật khẩu đơn giản như: 123456, password, admin ...
- Bên cạnh đó việc không sử dụng cùng 1 mật khẩu trên nhiều tài khoản khác nhau
có thể tránh tối đa hậu quả khi bị mất mật khẩu.
- Với level = Medium, đã lọc đầu vào ta không thể dir được các file trong server.
3.2. Demo tân công trên DVWA với công cụ Burp Site
B1: Tại DVWA, chọn mức level = low, và thay đổi mật khẩu với:
New password: diem2001, Confirm new password: diem2001
B2: Tại Burp Site -> Proxy, chuyển Intercept is on, thay đổi mật khẩu và xác nhận lại với
mật khẩu mới: boy@123
B3: Sau đó nhấn Forward để gửi yêu cầu đến server, nhấn Intercept is off để tắt
B4: Logout DVWA, login bằng mật khẩu ta yêu cầu trên Burp Site là: Boy@123 thành
công.
3.3. Cách Phòng chống
- Yêu cầu xác thực password hiện tại là gì. Khi đó cho dù gửi yêu cầu thay đổi
password như ví dụ trên được gửi cũng cần phải có password hiện tại. Chức năng
này cũng có rất nhiều trong facebook khi mà bạn thay đổi bất kỳ thông tin gì của
cá nhân sẽ có yêu cầu password hiện tại.
Với trường hợp để cả password hiện tại thì Burp Site vẫn có thể thay đổi được.
- Dùng csrf_token: token này sẽ thay đổi liên tục trong phiên làm việc, và khi thay
đổi thông tin gửi kèm thông tin token này. Như vậy nếu token được sinh ra và
token được gửi lên ko trùng nhau thì loại bỏ request. Việc làm này sẽ chống được
100% có khi lên tới 1000% lỗ hổng csrf. csrf_token thường là bảng băm hash của
đầu vào random. Quá trình kiểm tra như sau:
B1: Start the session, generate a random token, and embed it into the HTML form
B2: When the form is submitted, cross-check the submitted token against the session
- Khi xác nhận đổi mật khẩu thành công, tương đương với việc sẽ load
session[“token”] mới. Ta thấy token lúc gửi đi, khác hoàn toàn với khi xác nhận
thành công đổi mật khẩu.
Vì vậy nếu ta thay đổi mật khẩu và gửi yêu cầu đi sẽ không thể. Với
“Diem@@23”
Sẽ nhận được thông báo là mật khẩu cũ không đúng, vì đã thay đổi trước đó, với
token khác.
4. File Upload:
4.1. Giới thiệu:
a) Khái niệm:
Trong thực tế thì dạng tấn công thường gặp nhất là tấn công thông qua các đường
dẫn input mà chủ yếu là phần upload file của các trang web. Những hacker hay kẽ tấn
công rất thích khai thác loại tấn công này. Ví nếu như một mã độc (Upload sell) được
thuận lợi gửi lên máy chủ thì hacker có thể dễ dàng kiểm soát tất cả các người dùng
cuối của hệ thống, hacker sẽ có toàn quyền trên hệ thống.
Rủi ro bảo mật từ Upload file luôn là vấn đề được bảo mật kỷ càng nhất đối với
một website. Hacker thường tận dụng lỗ hổng bảo mật này để gửi các file độc hại, lỗ
sâu đến server. Thông qua lỗ sâu Hacker có thể truy vấn trực tiếp đến database và điều
này là cực kỳ nguy hiểm. Ở mức bình thường thì có thể sẽ bị lộ dữ liệu hoặc mất cắp
thông tin, ở mức độ nguy hiểm cao hơn, Hacker sẽ có toàn quyền điều khiển hệ thống
hoặc xóa hết tất cả hệ thống.
Hình thức tìm kiếm lỗ hổng của File upload khá dễ mô tả, Hacker sẽ tìm kiếm các
website có phần upload như các trang làm bài có đuôi edu, các trang bán hàng, trang
sản giao dịch, trang thay đổi ảnh cá nhân, hay thậm chí trang quản lí sản phẩm...
Thử trên Burp Site để upload file .php, thêm extention để vượt qua
Ta thấy ở mức này, chỉ cho phép người dùng lựa chọn id, có nghĩa trong source code, khi
input vào đã được lược bỏ kí tự đặc biệt.
Test bên đề tài:
- Kết quả:
6. Bảo mật bởi mã hóa đối xứng thông tin khách hàng (email và số điện thoại)
bằng Encript/Decript với duy nhất một khóa để tiến hành giải mã
- Nói qua về tại sao cần bảo mật: tránh để lộ thông tin khách hàng khi có thể bị
hack, thì đã được thiết lập bởi khóa.
- Khi Customer đăng kí thành công, sẽ mã hóa email và tel
7.4.2. Với cookie hacker có thể khai thác được qua các hình thức lỗ hổng CSRF hoặc
XSS để chiếm đoạt cookies của người sử dụng. Do vậy chúng ta cần thêm Flag
HTTP Only để thực hiện bổ sung bảo mật cho hệ thống ứng dụng và máy chủ
web.
Flag HTTP Only: Cookie có flag này sẽ không thể truy cập thông qua hàm
document.cookie. Do đó, dù web có bị lỗi XSS thì hacker không thể đánh cắp được nó.
Được thêm trước khi khởi tạo 1 phiên session. Cân nhắc đánh dấu cookie là chỉ HTTP,
nghĩa là trình duyệt sẽ nhận, lưu trữ và gửi cookie nhưng JavaScript không thể sửa đổi
hoặc đọc.
- Khi đăng nhập thì chắc chắn sẽ chuyển qua trang google.com
Để khắc phục: cùng kết hợp với sql injection lúc đăng nhập với phương pháp bên
DVWA mức level: impossible
Kết quả: Tên username chính là đoạn mã script không được thực thi
- Diễn đàn hoặc Bảng tin. Blog bình luận của bất kỳ bài viết
- Trang Hồ sơ Người dùng: ứng dụng cho phép người dùng chỉnh sửa/thay đổi các
chi tiết hồ sơ như họ, tên, biệt hiệu, ảnh đại diện, ảnh, địa chỉ, v.v.
- Trình quản lý tệp: ứng dụng cho phép tải tệp lên
- Nhật ký: nếu ứng dụng lưu trữ thông tin nhập của một số người dùng vào nhật ký.
Như vậy bất cứ khi nào ta vô phần XXS stored, thì sẽ đều có thông báo kia hiện
lên, vì trang nó xuất thông tin của bảng.
B2: Ở mức level: medium, tên thì được kí tự thay thế mã script (bị loại bỏ), message thì
được chuyển các phần tử mã script thành các kí tự.
By pass: inpsect website để kiểm tra, thay đổi maxlength từ 10 thành 100, ấn enter
B4: ở mức impossible, tất cả đều bị khóa, và các phần từ đều thành kí tự
Như vậy mỗi lần truy cập vào profile thì sẽ hiện thông báo: