Kiểm tra xác thực bị hỏng
Khi các chức năng xác thực liên quan đến ứng dụng không được triển khai đúng cách, nó cho phép tin tặc xâm phạm mật khẩu hoặc ID phiên hoặc khai thác các lỗi triển khai khác bằng thông tin đăng nhập của người dùng khác.
Hãy cho chúng tôi hiểu Tác nhân đe dọa, Vectơ tấn công, Điểm yếu về bảo mật, Tác động kỹ thuật và Tác động kinh doanh của lỗ hổng này với sự trợ giúp của sơ đồ đơn giản.
Thí dụ
An e-commerce application supports URL rewriting, putting session IDs in the URL −
http://example.com/sale/saleitems/jsessionid=2P0OC2JSNDLPSKHCJUN2JV/?item=laptop
Người dùng được xác thực của trang web sẽ chuyển tiếp URL cho bạn bè của họ để biết về việc giảm giá. Anh ta gửi e-mail liên kết trên mà không biết rằng người dùng cũng đang cung cấp ID phiên. Khi bạn bè của anh ấy sử dụng liên kết, họ sử dụng phiên và thẻ tín dụng của anh ấy.
BẬT tay
Step 1- Đăng nhập vào Webgoat và điều hướng đến Phần 'Quy tắc quản lý phiên'. Hãy để chúng tôi vượt qua xác thực bằng cách giả mạo cookie. Dưới đây là ảnh chụp nhanh của kịch bản.
Step 2 - Khi chúng tôi đăng nhập bằng thông tin xác thực webgoat / webgoat, chúng tôi nhận thấy từ Burp Suite rằng ID JSESSION là C8F3177CCAFF380441ABF71090748F2E trong khi AuthCookie = 65432ubphcfx khi xác thực thành công.
Step 3 - Khi chúng tôi đăng nhập bằng khía cạnh / khía cạnh thông tin xác thực, chúng tôi thấy từ Burp Suite rằng ID JSESSION là C8F3177CCAFF380441ABF71090748F2E trong khi AuthCookie = 65432udfqtb khi xác thực thành công.
Step 4- Bây giờ chúng ta cần phân tích các mẫu AuthCookie. Nửa đầu '65432' là chung cho cả hai lần xác thực. Do đó, chúng tôi hiện đang quan tâm đến việc phân tích phần cuối cùng của các giá trị authcookie như - ubphcfx cho người dùng webgoat và udfqtb cho người dùng khía cạnh tương ứng.
Step 5- Nếu chúng ta xem xét sâu các giá trị AuthCookie, phần cuối cùng có cùng độ dài với tên người dùng. Do đó, rõ ràng là tên người dùng được sử dụng với một số phương pháp mã hóa. Sau khi dùng thử và các cơ chế lỗi / brute force, chúng tôi thấy rằng sau khi đảo ngược tên người dùng, webgoat; chúng ta kết thúc với taogbew và sau đó ký tự trước bảng chữ cái là ký tự được sử dụng làm AuthCookie. tức là ubphcfx.
Step 6- Nếu chúng tôi chuyển giá trị cookie này và cho chúng tôi xem điều gì sẽ xảy ra. Sau khi xác thực là webgoat của người dùng, hãy thay đổi giá trị AuthCookie để chế nhạo người dùng Alice bằng cách tìm AuthCookie cho giống nhau bằng cách thực hiện bước # 4 và bước # 5.
Cơ chế ngăn chặn
Phát triển kiểm soát xác thực và quản lý phiên mạnh mẽ để đáp ứng tất cả các yêu cầu xác thực và quản lý phiên được xác định trong Tiêu chuẩn xác minh bảo mật ứng dụng của OWASP.
Các nhà phát triển nên đảm bảo rằng họ tránh được các lỗi XSS có thể được sử dụng để lấy cắp các ID phiên.