Pentest & Offsec Một số vấn đề xung quanh tính xác thực (Authentication) - Phần 2

duynp

Moderator
Thành viên BQT
Ăn lễ Quốc khánh 2/9 no say rồi tiếp tục với phần 1 tại https://securityzone.vn/t/mot-so-van-e-xung-quanh-tinh-xac-thuc-authentication-phan-1.12573/
Phía bên dưới tôi có đưa ra một số từ viết tắt được sử dụng trong bài là gì, còn về cụ thể nó là gì thì tôi trông chờ ở bạn.

4. Sử dụng thông tin xác thực mặc định (default credential)
Có thể tham khảo password list tại một số nguồn:

5. Chức năng "Remember me"
  • Browser cache
Ví dụ có một đoạn code mà cách hoạt động của nó có thể dẫn đến nhiều rủi ro: <input type='password' autocomplete='on'>
Giải pháp ta có thể sử dụng là tắt nó đi, tức autocomplete='off'.

  • Web storage
Sử dụng local storage để chứa tài khoản mật khẩu (credential), cách này sẽ thường được các developer sử dụng để gọi API nhưng cách này cũng tiềm tàng nhiều rủi ro.
Họ có thể sẽ sử dụng localStorage.setItem() để thêm dữ liệu tài khoản mật khẩu vào local web storage hoặc sessionStorage
Để giải quyết thì chúng ta có thể cân nhắc đến sử dụng mã hoá.

  • Cookie
Ví dụ: Một cookie có thể được lưu trữ trong 30 ngày.
Thì cookie sẽ chứa thông tin về tài khoản, mật khẩu (credential) nhưng phải được mã hoá

6. Chức năng "Forget password"
  • Đường dẫn có thể đoán được password
Giải pháp ở đây có thể là sử dụng con dấu (token) trên đường dẫn thay vì truyền password phía sau biến (Để hạn chế các cuộc tấn công MITM)

  • Sử dụng token dễ đoán
Hướng giải quyết là có thể sử dụng token một cách ngẫu nhiên, khó (không) đoán được, độ dài của nó phải dài hơn 6 ký tự, và có thời gian hết hạn ngắn.

  • Tái sử dụng đường dẫn để thực hiện chức năng quên mật khẩu
Huỷ sau khi đã thực hiện chức năng hoặc có thời gian hết hạn.

7. Chức năng logout
Ứng dụng web cần phải luôn "dọn dẹp" những tài nguyên đã sử dụng trong phiên (session) sau khi người dùng đã logout.
Đảm bảo các nội dung/dữ liệu trong phiên được xoá (bao gồm cả sessionID)

8. CAPTCHA
Phần CAPTCHA này tôi sẽ cung cấp một số CVE và tool có thể hữu ích cho việc "crack" CAPTCHA.

Có thể tham khảo một số CVE:







Một số công cụ có thể hữu ích trong mảng CAPTCHA:




**Giải thích một số thuật ngữ/từ viết tắt được sử dụng bên trên:
MITM: Man-In-The-Middle
CVE: Common Vulnerabilities and Exposures
 
Back
Top