2014-09-01 16 views
5

Tôi muốn biết liệu có cách nào để có được CSS Style XSS trên các trình duyệt hiện đại không?Có cách nào để nhận CSS XSS trong các trình duyệt hiện đại không?

Ví dụ, trên IE cũ trình duyệt sau đây là nhạy cảm:

<div style="width:expression(prompt('XSS'))"> 
+0

Nếu HTML được tạo động dưới dạng văn bản và dữ liệu được sử dụng cho thuộc tính kiểu (ví dụ) không bị thoát thì HTML-injection vẫn có thể thực hiện được; nhưng tôi nghi ngờ đó không phải là những gì đang được yêu cầu. – user2864740

+0

Bạn có thể giải thích bạn định sử dụng cái này để làm gì không? Có thể có lựa chọn thay thế. – easwee

Trả lời

3

số Như ví dụ này minh họa một cách hoàn hảo, Javascript (hoặc bất kỳ kịch bản) không có chỗ đứng trong CSS, do đó XSS (S thứ hai là cho 'Scripting') là không thể. CSS chỉ nên khai báo và khi được triển khai phù hợp với tiêu chuẩn W3. Các biểu thức động bây giờ được thực hiện với calc chỉ có thể đánh giá các biểu thức toán học đơn giản, mà không cần đến công cụ JS.

expression là bản hack chỉ dành cho IE để tạo điều kiện cho các tính năng cụ thể cho đến khi W3 đưa ra giải pháp thay thế. Khi calc xuất hiện, expression không được chấp nhận. Bắt đầu với IE11, expression is no longer supported in the Internet Zone. Đó là announced in 2008 rằng nó sẽ kết thúc theo cách này, cụ thể trích dẫn 'để giảm bề mặt tấn công' là một trong những lý do chính. Trong các phiên bản cũ hơn IE11, nó đã được khá lâu rồi chỉ được hỗ trợ ở chế độ quirksChế độ mô phỏng IE7.

Tóm tắt: CSS không có chỗ cho Javascript và do đó không thể bị tấn công bằng XSS khi được triển khai đúng như trong mọi trình duyệt hiện tại.

+0

Là "không * không * có thể" hoặc "không còn có thể có trong IE" (trái ngược với "không thể"). – user2864740

+1

Như đã nói, hỗ trợ cho 'biểu thức' trong các trang web công cộng đã hoàn toàn bị loại bỏ trong IE11, và đã bị hạn chế nghiêm trọng trong một vài năm. Do đó, chặn các lỗi và khai thác không xác định, nó không phải là có thể. –

Các vấn đề liên quan