Säkerhetssårbarheter vid filuppladdning
Av Idego Group

Att ladda upp filer är en vanlig funktion i webbapplikationer. Många utvecklare tror dock felaktigt att uppgiften är avslutad när en fil väl nått servern. Denna försummelse skapar säkerhetsluckor som hotaktörer utnyttjar. Verklig slutförande kräver två villkor: uppladdningen lyckas OCH sker säkert.
Kringgående baserat på filändelse
Utvecklare validerar vanligtvis filtyper genom ändelsekontroll med hjälp av vitlistor eller svartlistor. Dessa tillvägagångssätt har dock svagheter. Skiftlägeskänsliga regex-mönster tillåter uppladdningar som shell.pHp att kringgå begränsningar. Felaktigt förankrade mönster tillåter filer som shell.php.jpg att accepteras. Filnamnsförkortning kan resultera i en fil som slutar på .php istället för .jpg.
Null-byteinjektion
Att byta namn på filer till shell.php%00.jpg utnyttjar hur vissa språk behandlar null-bytes som terminatorer, vilket möjliggör PHP-körning trots att det verkar sluta på .jpg.
SVG- och XML-hot
SVG-filer är XML-data som är sårbara för lagrade cross-site scripting-attacker. Skadligt JavaScript inbäddat i SVG-filer körs när användare laddar ner dem.
Katalogtraversering
Filnamn som ../../../etc/passwd kan skriva över kritiska serverfiler. Åtgärden kräver användning av slumpmässigt genererade filnamn med originalnamnen lagrade separat som metadata.
Denial of Service
Samtidiga uppladdningar av stora filer tömmer serverresurser eller diskutrymme. Validering av filstorlek ger väsentligt skydd.
Content-Type-förfalskning
Content-Type-headern manipuleras enkelt via interceptionsverktyg. Servertolkning förlitar sig på faktiskt filinnehåll, inte headers.
Kringgående av magiska nummer
Angripare lägger till giltiga filsignaturer som GIF89a till skadliga filer för att lura magiska nummer-valideringssystem.
Kommandoinjektion
När filnamn skickas till systembinärer möjliggör namn som file;whoami;pwd.jpg kommandokörning. Slumpmässiga filnamn eliminerar denna risk.
Säkerhetsrekommendationer
Utvecklare bör undvika att lita helt på användarindata. Implementering av specialiserad valideringsprogramvara, underhåll av uppdaterade beroenden och utvärdering av flera valideringsfaktorer stärker försvarsmekanismerna.