a cross-site scripting sebezhetőségeket a támadók a 2000-es évek eleje óta kihasználják, és az XSS 2004-től az OWASP Top 10-es listáján szerepel a webes alkalmazások kritikus biztonsági kockázatainak listáján. Sok fejlesztő, rendszergazda, sőt néhány penetrációs tesztelő még mindig nem veszi komolyan. Annak érdekében, hogy hatékony webalkalmazás-hacker vagy védő legyen, meg kell értenie az XSS támadások megelőzésének alapjait.
az XSS támadások továbbra is problémát jelentenek
a webhelyek közötti szkriptek egy olyan típusú webalkalmazás-biztonsági rés, amely lehetővé teszi a támadók számára, hogy rosszindulatú ügyféloldali kódot fecskendezzenek be és hajtsanak végre az áldozat böngészőjében egy legitim webalkalmazáson belül.
a sikeres XSS támadások hatása és súlyossága változhat. Az XSS támadások munkamenet-eltérítést, ellopott tokeneket, ellopott munkamenet-sütiket és helyszíni kérések hamisítását eredményezhetik. Ezek a támadások a felhasználói fiókok veszélyeztetéséhez vezethetnek.
a sikeres XSS támadás lehetővé teheti a támadó számára, hogy ellopott vagy hamisított cookie-kat használjon érvényes felhasználók megszemélyesítésére. Azokban az esetekben, amikor az érvényes felhasználó rendszergazdai jogokkal rendelkezik az alkalmazáson belül, a támadó ezeket a jogosultságokat felhasználhatja oldalak módosítására vagy távoli kódfuttatásra az alkalmazás kiszolgálóoldalán.
az XSS támadások típusai
az XSS támadásoknak három típusa van: tárolt, visszavert és Dokumentumobjektum-modell (Dom) alapú.
- a tárolt XSS támadás lehetővé teszi a támadó számára, hogy rosszindulatú szkriptet ágyazzon be egy sebezhető oldalba, amelyet akkor hajt végre, amikor az áldozat megtekinti az oldalt. A tárolt XSS az XSS támadás legkárosabb típusának tekinthető. Például, amikor egy támadó rosszindulatú JavaScript hasznos terhet fecskendez közvetlenül egy sebezhető webalkalmazásba, a webböngésző elmenti az injektált JavaScript hasznos terhet. Ezután minden alkalommal, amikor az áldozat meglátogatja az adott webhelyet vagy webes alkalmazást, a rosszindulatú kód végrehajtásra kerül.
- tükrözött XSS-támadás akkor következik be, amikor a rosszindulatú hasznos adat egy hivatkozásba van ágyazva, és csak akkor aktiválódik, amikor a felhasználó rákattint a hivatkozásra. Itt a rosszindulatú hasznos teher nem tárolódik, hanem csak URL vagy postai adatok formájában jelenik meg a weboldalon.
- DOM-alapú XSS biztonsági rés akkor keletkezik, amikor a DOM-ot olyan dinamikus tartalom létrehozására használják, amely ellenőrzés nélkül feldolgozható felhasználói bevitelt tartalmaz. Ez a fajta támadás végzett a JavaScript használatát, az áldozat böngésző
XSS támadás megelőzése
Hogy megakadályozzák XSS támadások, a fejlesztők kell érvényesíteni a felhasználói input által megfelelően szűrés, vagy menekülés különleges karaktert, majd a kimeneti kódolást, hogy megakadályozzák a tárolt XSS támadások, amely XSS támadások. A következő speciális karakterek mindig szűrt ki, vagy megszökött, hogy megakadályozza őket abban, hogy kihasználják az ártó szándékkal:
< |
> |
“ |
‘ |
) |
( |
& |
a fejlesztőknek ellenőrizniük kell a felhasználói bemeneteket-forrásokat -, és kódolniuk kell a kimenetet-süllyedőket -, hogy megakadályozzák a DOM-alapú XSS támadásokat. A bemeneti forrás tulajdonság az, ahonnan a DOM olvas, a forrás pedig az, ahonnan a támadó rosszindulatú kódot injektálhat az XSS biztonsági rés kihasználása érdekében. Kerülni kell a következő forrás tulajdonságokat:
- URL
- documentURI
- location
- href
- keresés
- hash
a süllyesztők azok a pontok, ahol a DOM végrehajtja a rosszindulatú karaktereket vagy kódot a bemenetből-a forrásból -, amely viszont a weboldalra kerül. Ezeket a mosogatókat kerülni kell a szolgáltatásmegtagadás-alapú XSS támadások megelőzése érdekében:
- innerHTML
- outerHTML
- write
ha azt szeretné, hogy jobban megértse és megakadályozza az XSS támadásokat, a Google létrehozott egy XSS játék weboldalt, hogy megtudja, hogyan működnek ezek a támadások és hogyan lehet jobban megelőzni őket. Az OWASP Mutillidae 2 projektje tanulási célt is kínál a webes biztonsági szakemberek számára, hogy élesítsék XSS támadásvédelmüket.