Ernstig lek in IIS gevonden! | Gepost op:
28 december 2009 - 09:32 |
7 reacties |
Beste, Het volgende bericht kwam binnen op mijn email. Klikje Nu wil ik hier niet een hele discussie horen van ,,ja dan had je maar Apache moeten nemen''. Je kan het oplossen door je gebruikersinput nooit te accepteren zoals de gebruiker wil. (duh? ) en door je map rechten op uploadmap, de publieke uitvoerrechten op nul te zetten. (754 bijvoorbeeld) Groeten,
marten
Beheerder
|
|
|
Gepost op:
28 december 2009 - 11:17 |
|
|
|
Crew PHP
|
intresant. Dat is wel erg makkelijk. Eigenlijk zou je een file_fet_contents() over het bestand gooien als het is ge upload, en dan checken of er <?php of <? of <% oid in voorkomt. Je zou een arraytje met dingen die niet voorkomen in een jpg kunnen maken en laten kijken of dat er in voorkomt
of gaat dat niet werken? |
|
|
|
Gepost op:
28 december 2009 - 11:18 |
|
|
|
-1
|
of je zou gewoon zelf de filename kunnen kiezen...
ook al upload er iemand file;asp;jpg noem je het nog randomname.jpg |
|
|
|
Gepost op:
28 december 2009 - 11:32 |
|
|
|
PHP expert
|
Citaat: en door je map rechten op uploadmap, de publieke uitvoerrechten op nul te zetten. (754 bijvoorbeeld) IIS draait op Windows en niet op *nix systemen. Dus 754 werkt niet, je moet gewoon de map eigenschappen veranderen via die rechtermuisknop van je.
Wat ik niet snap is, hoe kan je bestand meerdere extensies hebben? |
|
|
|
Gepost op:
28 december 2009 - 11:36 |
|
|
|
Beheerder
|
Stijn schreef: IIS draait op Windows en niet op *nix systemen. Dus 754 werkt niet, je moet gewoon de map eigenschappen veranderen via die rechtermuisknop van je.
Wat ik niet snap is, hoe kan je bestand meerdere extensies hebben?
Tuurlijk met de rechtermuisknop, maar ik werk op de server via een ftp client, dus dan kan je gewoon de zogenaamde 'chmod' doen.
Ik denk dat IIS intern de eerste koppeling pakt:
bestandsnaam.php;.jpg --> bestandsnaam.php |
|
|
|
Gepost op:
28 december 2009 - 11:57 |
|
|
|
PHP expert
|
Maar waarom staat het meerdere extensies toe dat is toch zinloos Ik heb nog geen PHP bestand met de .jpg extensie gezien en de .php samen. |
|
|
|
Gepost op:
29 december 2009 - 11:35 |
|
|
|
Crew PHP
|
dr staat ook vrij specifiek bij dat er een puntkomma tussen moet, als je bedenkt dat het in sql betekent dat de volgende argumenten gaan komen, zou dat ook hier mogelijk kunnen. En volgens mij is de mimetype controle in FF enzo niet zo denderend en controleerd die extensies, dus dan kom je er door. |
|
|
|
Gepost op:
29 december 2009 - 13:11 |
|
|
|
PHP expert
|
Ik denk dat dit eerder de IIS variant is van de null byte exploit met PHP, noem een bestand hack.php%00.jpg: PHP checkt op extensie en laat het er dus door, maar de server stopt met uitvoeren na de nullbyte met als gevolg dat het bestand op de server wordt geplaatst als "hack.php" en dan kan de fun pas echt beginnen. Gelukkig worden bytes in de recentere versies van PHP nu ook ge-escapet en is het gevaar al geweken. Het bestand gewoon hernoemen zou ook al een oplossing bieden.
@Martijn: met wat er door de browser wordt doorgegeven als Mimetype kan geknoeid worden, daarom is het nog steeds het veiligst om ofwel te controleren op extensie, ofwel om de header van de afbeelding te valideren. |
|
|
|
|
|