Google vá lỗ hổng XSS của Gmail

Security4年前 (2019)发布 do
107.127 0

Google mới đây đã vá một lỗ hổng XSS nghiêm trọng ảnh hưởng đến tính năng email động của Gmail. Các nhà nghiên cứu đã coi lỗ hổng này là một phiên bản khai thác thực tế của DOM Clobbering.


Lỗ hổng XSS trong tính năng email động của Gmail


Trong một bài đăng trên blog của Securitum, nhà nghiên cứu bảo mật Michał Bentkowski đã chia sẻ các phát hiện của mình liên quan đến lỗ hổng XSS trong Gmail. Được biết, lỗ hổng nằm trong tính năng AMP4Email.


Được biết đến với tên gọi ‘Dynamic Mail’ (mail động), về cơ bản tính năng này góp phần hỗ trợ trong việc hiển thị nội dung HTML động trong email, chẳng hạn như luồng (thread) hoặc sự kiện (event).


Mặc dù Google khẳng định rằng tính năng này đủ mạnh để có thể ngăn chặn các cuộc tấn công XSS bằng cách sử dụng danh sách trắng (whitelist) cho các thẻ và thuộc tính cho thư động. Do đó, kẻ tấn công sẽ không dễ dàng để tác động đến bất kỳ phần tử HTML nào mà không có sự cho phép rõ ràng từ trình xác nhận.


Tuy nhiên, nhà nghiên cứu nhận thấy rằng trình xác nhận đã không cho phép thuộc tính id trong các thẻ. Đây chính là lỗ hổng khiến cho những kẻ tấn công có thể can thiệp vào tính năng này theo cách dẫn đến DOM Clobbering.


Giới thiệu về DOM Clobbering


Mô tả vấn đề này, các nhà nghiên cứu cho biết về cơ bản, khi người dùng tạo một thành phần trong HTML (ví dụ <input id = username>) và sau đó muốn tham chiếu nó từ JavaScript, người dùng thường sẽ sử dụng một hàm như document.getEuityById (‘username’) hoặc document.querySelector ( ‘# Tên người dùng’). Nhưng đó không phải là cách duy nhất!


Người dùng hoàn toàn có thể chỉ cần truy cập nó thông qua một thuộc tính của đối tượng cửa sổ toàn cầu. Vì vậy, window.username trong trường hợp này giống hệt như document.getEuityById (‘tên người dùng)! Hành vi này (được gọi là DOM Cloberring) có thể dẫn đến các lỗ hổng nếu ứng dụng đưa ra quyết định dựa trên sự tồn tại của một số biến toàn cầu nhất định (image: if (window.isAdmin) {Lỗi}).


DOM Clobbering và AMP4Email


Trong khi nhà nghiên cứu thấy rằng AMP4Email đã hạn chế một số giá trị của thuộc tính id thì nó đã trở nên dễ bị tấn công bởi DOM Clobbering trong AMP_MODE.


Trong khi chuẩn bị mã để đánh giá lỗ hổng, nhà nghiên cứu đã phát hiện ra việc AMP4Email cố tải một số tệp JS nhất định và không thực hiện được vì lỗi 404. Tuy nhiên, thực tế là không xác định được thành phần ở giữa URL….và AMP thường cố gắng lấy thuộc tính của AMP_MODE để đặt nó vào URL. Với tác động của DOM Clobbering, thuộc tính được mong đợi sẽ ​​bị thiếu do đó hiển thị tình trạng không xác định.


CHính vì thẻ (tag) không được xác định nên nhà nghiên cứu cho biết có thể kiểm soát hoàn toàn URL.


Bản vá đã được phát hành


Khi phát hiện ra lỗ hổng, nhà nghiên cứu đã nhanh chóng báo cáo cho Google thông qua Chương trình tiền thưởng lỗi của công ty vào tháng 8. Google đã xác nhận lỗ hổng và sau đó không lâu đã phát hành bản vá để sửa lỗi.

© 版权声明

相关文章

暂无评论

暂无评论...
本站主题由 OneNav 一为主题强力驱动