2014-09-01 16 views
5

Chciałem wiedzieć, czy istnieje sposób na uzyskanie CSS Style XSS w nowoczesnych przeglądarkach?Czy istnieje sposób na uzyskanie CSS XSS w nowoczesnych przeglądarkach?

Na przykład starszej IE przeglądarek Poniżej wrażliwych:

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

Jeśli kod HTML jest budowany dynamicznie jako tekst, a dane używane do atrybutu stylu (np.) Nie są usuwane, to nadal możliwe jest zastrzyki HTML; ale podejrzewam, że nie o to pyta. – user2864740

+0

Czy mógłbyś wyjaśnić, z czego zamierzasz korzystać? Mogą istnieć alternatywy. – easwee

Odpowiedz

3

nr W tym przykładzie doskonale ilustruje JavaScript (lub dowolny skryptowy) ma miejsce w CSS zatem XSS (drugi S "Skrypty") nie jest możliwe. CSS powinien być tylko deklaratywny i jest po wdrożeniu zgodny ze standardami W3. Dynamiczne wyrażenia są teraz wykonywane przy pomocy calc, która może jedynie oceniać proste wyrażenia matematyczne, bez uciekania się do silnika JS.

był hackem służącym do sprawdzania konkretnych funkcji, dopóki W3 nie zaproponował alternatywy. Po pojawieniu się calc, expression został przestarzały. Począwszy od wersji IE11, expression is no longer supported in the Internet Zone. To był announced in 2008, który zakończyłby się w ten sposób, w szczególności cytując "w celu zmniejszenia powierzchni ataku" jako jeden z głównych powodów. W starszych wersjach niż IE11 już od jakiegoś czasu jest już obsługiwany tylko tryb trybem emulacji IE7

Podsumowując: CSS nie ma miejsca na JavaScript i jako taki nie może zostać zaatakowany przy XSS, gdy jest właściwie zaimplementowany, tak jak jest w każdej bieżącej przeglądarce.

+0

Czy "nie powinno * nie * być możliwe" lub "nie jest już możliwe w IE" (w przeciwieństwie do "niemożliwe"). – user2864740

+1

Jak już wspomniano, poparcie dla "wyrażania" w publicznych witrynach zostało całkowicie porzucone w IE11 i było poważnie ograniczone przez kilka lat. W związku z tym wykluczanie błędów i nieznanych exploitów nie powinno być możliwe. –

Powiązane problemy