- Tổng đài 24/7: 1800 646 881
- Đăng nhập
- 3
Lỗi XSS là một kiểu lỗi tấn công vào ứng dụng phổ biến nhất hiện nay. Hậu quả của kiểu tấn công này rất nghiêm trọng và ảnh hưởng lớn đến thông tin người dùng. Bài viết sau đây sẽ giải thích chi tiết cho bạn về Cross-site scripting và các loại phổ biến hiện nay. Đồng thời, chúng tôi cũng đề cập đến một số phương pháp tìm kiếm và ngăn chặn Cross-site scripting nhanh chóng và chính xác nhất. Hãy cùng BKHOST tìm hiểu ngay thôi nào.
Cross-site scripting – XSS là một kỹ thuật tấn công bảo mật các trang web nhằm mục đích xâm phạm vào phần chính sách nội dung với tư cách người dùng để truy cập và đánh cắp các dữ liệu quan trọng. Nếu kẻ tấn công lấy được các quyền truy cập riêng tư trong ứng dụng thì mọi chức năng và dữ liệu đều được khai thác toàn bộ.
XSS tự động điều khiển một trang web bất kỳ để chạy mã JavaScript độc hại trong trình duyệt nhằm tấn công các hoạt động trong ứng dụng của người dùng.
Các lỗ hổng XSS được tìm kiếm và phát hiện bằng cách sử dụng hàm alert()
để chạy một số mã JavaScript bất kỳ trên trình duyệt.
Đối với trình duyệt Chrome.92 với iframe có khả năng ngăn chặn lệnh gọi alent()
nên hàm print()
sẽ là một lựa chọn phù hợp hơn.
Có ba loại tấn công XSS chính:
Reflected XSS là một lỗ hổng bảo mật cơ bản bao gồm các tập lệnh đa trang web xảy ra khi ứng dụng nhận dữ liệu yêu cầu HTTP bất kỳ và phản hồi lại theo cách không an toàn.
Xem thêm: reflected xss là gì
Ví dụ:
Một lỗ hổng Reflected XSS:
{{EJS0}}
Nếu ứng dụng không có bất cứ dấu hiệu thực hiện xử lý dữ liệu nào thì quá trình tấn công sẽ tiếp tục:
{{EJS1}}
Lúc này khi người dùng truy cập vào URL độc hại đã được thiết lập thì các tập lệnh tấn công sẽ bắt đầu thực thi trong trình duyệt và thực hiện mọi hành động truy xuất dữ liệu quan trọng.
Stored XSS xảy ra khi ứng dụng nhận các nguồn dữ liệu đáng ngờ và được phản hồi HTTP theo cách không an toàn.
Một số dữ liệu gửi đến ứng dụng thông qua HTTP như chức năng như comment trong blog, nicknames trong messenger hay các thông tin liên hệ khác…Hoặc dữ liệu từ các nguồn đáng ngờ như tin nhắn email trực tuyến qua SMTP, link tiếp thị hoặc các ứng dụng giám sát mạng.
Ví dụ:
Lỗ hổng Store XSS trên ứng dụng gửi tin nhắn:
{{EJS2}}
Nếu ứng dụng không thực hiện xử lý dữ liệu thì kẻ tấn công sẽ tiến hành gửi thông báo đến người dùng khác:
{{EJS3}}
Các lỗ hổng XSS dựa trên nền tảng DOM để xâm nhập vào ứng dụng thông qua các mã JavaScript độc hại từ máy khách.
Ví dụ:
Ứng dụng sử dụng JavaScript để đọc các giá trị trong HTML:
{{EJS4}}
Kẻ tấn công kiểm soát các giá trị này để tạo ra các giá trị độc hại riêng:
{{EJS5}}
Kẻ tấn công sử dụng XSS với mục đích:
Mức độ tấn công XSS sẽ phụ thuộc vào các yếu tố của ứng dụng như chức năng, dữ liệu hoặc trạng thái như:
Công cụ trình quét lỗ hổng web của BurpSuite kết hợp phương pháp phân tích tĩnh và động của JavaScript giúp tự động hoá khả năng tìm kiếm các lỗ hổng XSS nhanh chóng và chính xác.
CSP là chính sách bảo mật nội dung dành cho trình duyệt có khả năng giảm thiểu ảnh hưởng của các lỗ hổng XSS và ngăn chặn hành vi khai thác các dữ liệu bảo mật. Vì thế, kẻ tấn công thường lựa chọn phá vỡ CSP để thực hiện khai thác lỗ hổng cơ bản trên trình duyệt.
Đây là một kỹ thuật thu thập dữ liệu trên nhiều miền được sử dụng trong các trường hợp không thể khai thác XSS do trình duyệt hoặc ứng dụng sử dụng biện pháp lọc đầu vào hoặc bảo vệ nâng cao.
Các thông tin cá nhân, dữ liệu quan trọng và mã thông báo CSRF được khai thác và sử dụng với nhiều mục đích bất hợp pháp.
Việc ngăn chặn XSS phụ thuộc vào độ phức tạp và cách xử lý dữ liệu của ứng dụng, sau đây là một số phương pháp dành cho bạn:
Như vậy, các lỗ hổng XSS là một vấn đề nguy hiểm đối với trang web và ứng dụng. Vì thế hãy cẩn trọng trong việc xử lý các dữ liệu quan trọng tại đầu vào và đầu ra trên trình duyệt của bạn.
Nếu bạn có thắc mắc về Cross-site scripting hoặc muốn tìm hiểu về cách xử lý những trường hợp bị tấn công XSS hoặc những kiểu tấn công khác, hãy để lại ở bên bình luận bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất.
P/s: Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kiến thức về lập trình, quản trị mạng, website, domain, hosting, vps, server, email,… Chúc bạn thành công.
Các câu hỏi thường gặp về XSS
Các lỗ hổng XSS phổ biến như thế nào?
Các lỗ hổng XSS rất phổ biến và thường xuyên xảy ra trên các trình duyệt.
Các cuộc tấn công XSS phổ biến như thế nào?
Các cuộc tấn công XSS thường ít phổ biến hơn vì khả năng khai thác kém hơn so với các lỗ hổng.
Sự khác biệt giữa XSS và CSRF là gì?
XSS chạy các mã JavaScript độc hại trên trình duyệt của người dùng còn CSRF thực hiện các hành động mà người dùng không mong muốn.
Sự khác biệt giữa XSS và SQL injection là gì?
XSS là lỗ hổng phía máy khách tấn công vào người dùng ứng dụng khác, còn SQL injection là lỗ hổng phía máy chủ tấn công vào cơ sở dữ liệu của ứng dụng.
Làm cách nào để ngăn chặn XSS trong PHP?
Lọc đầu vào bằng danh sách trắng gồm các ký tự được phép hoặc các gợi ý loại/nhập truyền. Sau đó thoát đầu ra bằng htmlentities và ENT_QUOTES trên HTML hoặc Unicode JavaScript trên JavaScript.
Làm cách nào để ngăn chặn XSS trong Java?
Lọc đầu vào bằng danh sách trắng gồm các ký tự được phép. Sử dụng các thư viện Google Guava để mã hóa HTML đầu ra trên HTML hoặc sử dụng JavaScript Unicode trên JavaScript.
Mua tên miền .VN tại BKHOST
Giá chỉ từ 750k/năm. Kiểm tra tên miền .VN đẹp và đăng ký ngay hôm nay!