Ajax chiếm đoạt password

Một phần của tài liệu tìm hiểu về tấn công ứng dụng web (Trang 47)

- Các biện pháp đối phó: Hành động có thể được thựchiện bởi người dùng và tổ chức để hạn chế rủi do Internet Explorer và Firefox hiện chiếm đến 95% trong tổng số các trình duyệt đang được sử dụng Tự động

5.1.2Ajax chiếm đoạt password

5. Tấn công quản lý Password trong IE và Firefo

5.1.2Ajax chiếm đoạt password

Assumption: Kẻ tấn công sử dụng để truy cập tới một web proxy, hoặc hướng người dùng tới một proxy. Attack Result: Kẻ tấn công có thể thêm, hay bớt, hoặc chỉnh sửa nội dung của trang web tích hợp đoạn mã JavaScript có khả năng chiếm đoạt mật khẩu của toàn bộ các kết nối sử dụng HTTP. Và được sử dụng trong các lần sau khi người dùng truy cập vào các trang web khác sẽ đều bị lưu lại mật khẩu và tài khoản.

Collateral damage: Tiềm ẩn của vấn đề này sử dụng một phương pháp tương tự như quá trình đăng nhập vào máy tính của người dùng và sau đó có thể sử dụng tài khoản đó để đăng nhập vào các trang web khác nhau với cùng một tài khoản và mật khẩu.

Trong trường hợp này thể hiện ở hình 4 phía dưới, có một người dùng sử dụng mở một trình duyệt web và muốn truy cập vào tài khoản trong ngân hàng của mình từ một máy chủ từ xa. Client yêu cầu trang chủ của nhà cung cấp dịch vụ ví như (American Express). Máy chủ của công ty trả lời lại yêu cầu, tuy nhiên thông tin trả lời đã bị thay đổi khi thông tin đó đi qua một Proxy. Proxy server là một dạng sử dụng để bảo vệ đảm bảo tính xác thực của địa chỉ IP, lọc nội dung và sau đó cung cấp cho người dùng; nó được làm việc ở giữa máy client và các máy chủ. Bằng việc chèn một máy chủ Proxy vào quá trình truy cập web của người dùng có thể được thực hiện và khi đó toàn bộ thông tin người dùng sẽ đi qua máy chủ Proxy và có thể thông tin đó được chỉnh sửa.

Hình 4 4. Ajax Chiếm đoạt password.

Khi các kẻ tấn công điều khiển từ Proxy, anh ta có thể tích hợp một đoạn JavaScript rất đơn giản và từ đó có thể khai thác mật khẩu và tài khoản người dùng trong quá trình đăng nhập với yêu cầu dạng "asynchronous" tới máy chủ (XMLHttpRequest). Tài khảon và mật khẩu có thể bị khai thác bởi các đoạn JavaScript được viết một cách đơn giản (với tác dụng lọc các ký tự được trao đổi với các ứng dụng Web). Quá trình này được chia làmcác giai đoạn, giai đoạn chờ đợi tới một thời gian cụ thể khi người dùng đăng nhập vào các ứng dụng Web (username, password) và sau đó đoạn JavaScript được chạy và gửi các thông tin đó cho kẻ tấn công. Hình 4 miêu tả quá trình, trình duyệt Web yêu cầu XML chứa các thông tin đăng nhập của họ (bobpassword). Máy chủ sẽ bỏ qua quá trình yêu cầu đó bởi nó bị lỗi, nhưng kẻ tấn công đã lấy được thông tin của người dùng khi đăng nhập lần đầu tiên (Để khắc phục tấn công Ajax người dùng nên đánh tài khoản và mật khẩu lần đầu tiên sai, và tốt nhất nên đánh 3 lần và đúng 1).

Nó là một vấn đề rất quan trọng để nhận biết sự khác nhau trong quá trình log in của người dùng vào máy chủ, và khi có những đoạn mã độc hại được tích hợp, người dùng đánh tài khỏan và mật khẩu lần đầu tiên thấy máy chủ báo lỗi nhưng không ai nghĩ rằng tài khoản và mật khẩu lần đầu tiên đăng nhập đó đã gửi cho kẻ tấn công. Nhưng nếu nói vậy thì toàn bộ các trang web nổi tiếng như Yahoo, và Google quá dễ dàng tấn công vậy sao? Không hoàn toàn như vậy các trang web hiện nay sử dụng các kết nối SSL, dù các thông tin có bị các kẻ tấn công tóm được, nhưng với các thuật toán mã hóa khác nhau khi thông tin trước khi truyền trên internet chúng được (hash-băm chặt và thay đổi theo một thuật toán phức tạp nào đó – và kẻ khai thác sẽ ít có cơ hội để giải mã những đoạn mã được mã hóa). Hiện nay đa số các trang web đều sử dụng qúa trình xác thực với các thông tin được mã hóa, và chỉ thực hiện được quá trình đó khi trang chủ chính thức của web site được load về đầy đủ và không có các đoạn mã tích hợp thì khi đó một kết nối ảo sẽ được thực hiện giữa người dùng và máy chủ không có sự chen ngang của các loại tấn công. Nên việc sử dụng tấn công thay đổi thông tin hiện nay ít được sử dụng và đơn giản với những người có hiểu biết.

Tính năng Internet Explorer 7 Firefox 2.0

Storage of usernames, passwords, and URLs yes yes Password access via JavaScript yes yes Password access via software program yes yes Password Protection (not tied to user account) yes Password Prompt when starting session to use

stored web passwords yes Easily Exportable username/password data yes

Encrypted yes yes

Encoded yes

Password Manager option to "Show Passwords"

in the clear (*see note below) yes

Với các thành phần trong bảng này có thể gây ra tranh cãi như tính xác thực của các tính năng hay các nguy cơ tiềm ẩn về bảo mật, tuy nhiên thỉnh thoảng sẽ không có một phương pháp nào có thể thực hiện để xem lại tài khoản và mật khẩu mà người dùng đã quên khi đăng nhập vào một web site.

Một phần của tài liệu tìm hiểu về tấn công ứng dụng web (Trang 47)