Soroush Dalili egy olyan problémát fedezett fel a microsoft IIS 6-os és korábbi változataiban, amely lehetővé teszi, hogy fájlfeltöltést biztosító webalkalmazások ellenőrzési mechanizmusai megkerülhetők. A problémát az okozza, hogy az IIS rosszul kezeli a pontosvesszőt vagy kettőspontot tartalmazó fájlneveket, az ezen karakterek utáni névrészleteket nem veszi figyelembe a fájltípus megállapítása során. Így pl. egy evil.asp;.jpg nevű fájl ASP szkriptként fut le, de a sokszor csak a fájlnév utolsó karaktereit ellenőrző alkalmazások azt fogják feltételezni, hogy a feltöltendő állomány ártalmatlan.
Persze a feltöltött fájlokat lehetne ennél okosabban is kezelni, a SANS blogján meg is jelent egy rövid összefoglaló a fájlfeltöltésekre vonatkozó ökölszabályokról, címszavakban:
- Nevezd át a feltöltött fájlokat!
- Tárold őket a DocumentRoot-on kívül!
- Ellenőrizd a fájlméretet!
- A kiterjesztéseknek nincs jelentésük.
- Próbáld kikerülni a malware-t! (Pl. konvertálással - ugyan szvsz. ez egy kevésbé jó tipp)
- Szigorúan szabályozd a jogosultságokat!
- Hitelesítsd a feltöltéseket!
- Korlátozd a feltöltött fájlok mennyiségét!
A fenti szabályok alkalmazásakor a problémát nem lehet kihasználni, ezért a felfedezés megítélése egyelőre bizonytalan. Annyi azonban biztos, hogy rengeteg webhely lehet támadható ilyen módon, a sikeres kihasználás pedig nem igényel komoly felkészültséget. A Microsoft reakcióját elolvashatjátok itt.
Megemlíteném továbbá, hogy Apache-on a fenti(hez hasonló) viselkedés tulajdonképpen egy feature, amire igen-igen kevesen figyelnek oda...