PDA

Bekijk Volledige Versie : Hacker??



Nico Schuyt
25/04/06, 11:20
Om de gebruiker van de site plaatjes te laten uploaden heb ik een map
aangemaakt met chmod 777.
Nu vind ik daar ook bestanden in als cungkee.php en wendz.php.
Broncode:
http://www.nicoschuyt.nl/test/cungkee.txt
http://www.nicoschuyt.nl/test/wendz.txt
Iemand een idee of die scripts kwaadaardig zijn en hoe je zoiets kunt
voorkomen?

--
Nico Schuyt
http://www.nicoschuyt.nl/

Rene Pijlman
25/04/06, 11:20
Nico Schuyt:
>Om de gebruiker van de site plaatjes te laten uploaden heb ik een map
>aangemaakt met chmod 777.
>Nu vind ik daar ook bestanden in als cungkee.php en wendz.php.
[...]
>Iemand een idee of die scripts kwaadaardig zijn en hoe je zoiets kunt
>voorkomen?

De gebruiker moet alleen niet-executerende extensies (.gif, .jpg e.d.)
kunnen uploaden. Geen .pl, .cg, .php etc. Dat moet je server-side checken,
vóórdat een bestand onder de webroot in het filesystem valt.

Daarnaast zou je de webserver veilig kunnen configureren, om in de
uploaddirectory niets te interpreteren en executeren.

--
René Pijlman

Wat wil jij leren? http://www.leren.nl

Nico Schuyt
25/04/06, 11:20
Rene Pijlman wrote:
> Nico Schuyt:
>> Om de gebruiker van de site plaatjes te laten uploaden heb ik een map
>> aangemaakt met chmod 777.
>> Nu vind ik daar ook bestanden in als cungkee.php en wendz.php.
> [...]
>> Iemand een idee of die scripts kwaadaardig zijn en hoe je zoiets kunt
>> voorkomen?

> De gebruiker moet alleen niet-executerende extensies (.gif, .jpg e.d.)
> kunnen uploaden. Geen .pl, .cg, .php etc. Dat moet je server-side
> checken, vóórdat een bestand onder de webroot in het filesystem valt.

Ehhh, dat heb ik:
$acceptedTypes = array('image/jpeg', 'image/jpg', 'image/pjpeg',
'image/gif', 'image/x-png');
if(!in_array($_FILES['strImage']['type'], $acceptedTypes) ||
trim($_FILES['strImage']['tmp_name']) == "" ||
trim($_FILES['strImage']['tmp_name']) =="none") {
echo $_FILES['strImage']['name']." is geen geldig bestand (Het moet een
GIF, PNG, JPG of JPEG zijn). ";
exit;
}

> Daarnaast zou je de webserver veilig kunnen configureren, om in de
> uploaddirectory niets te interpreteren en executeren.

Ik heb dat opgenomen met de host (NXS). Volgens hen is dat niet mogelijk (op
hun server?).

--
Nico Schuyt
http://www.nicoschuyt.nl/

Warden Dave
25/04/06, 12:00
"Nico Schuyt" <nschuyt@hotmail.com> wrote:

[Interpretatie in sommige dirs .php tegengaan]
> Ik heb dat opgenomen met de host (NXS). Volgens hen is dat niet
> mogelijk (op hun server?).

Vreemd. Je kunt op bijv. een Apache server in een .htaccess bestandje in de
dir toch even proberen:

AddType text/plain .php

o.i.d.

WD

Rene Pijlman
25/04/06, 12:00
Nico Schuyt:
>Rene Pijlman:
>> De gebruiker moet alleen niet-executerende extensies (.gif, .jpg e.d.)
>> kunnen uploaden. Geen .pl, .cg, .php etc. Dat moet je server-side
>> checken, vóórdat een bestand onder de webroot in het filesystem valt.
>
>Ehhh, dat heb ik:

Kennelijk werkt dat niet goed. Toch? Ik bedoel, waar komen anders die
php's vandaan?

>> Daarnaast zou je de webserver veilig kunnen configureren, om in de
>> uploaddirectory niets te interpreteren en executeren.
>
>Ik heb dat opgenomen met de host (NXS). Volgens hen is dat niet mogelijk (op
>hun server?).

Ik weet niet wat voor server je hebt en wat voor beheercontract. Maar mijn
server staat ook bij NXS, en daarop kan het wel :-)

"RemoveType directive
Context: [...] directory, .htaccess"
http://httpd.apache.org/docs/1.3/mod/mod_mime.html#removetype

Als je .htaccess gebruikt, vergeet dan niet het uploaden van .htaccess
onmogelijk te maken. Veiliger is om een <Directory> container in
httpd.conf te gebruiken. Maar die heb je misschien niet zelf in beheer (ik
wel).

--
René Pijlman

Wat wil jij leren? http://www.leren.nl

Nico Schuyt
25/04/06, 12:00
Rene Pijlman wrote:
> Nico Schuyt:
>> Rene Pijlman:
>>> De gebruiker moet alleen niet-executerende extensies (.gif, .jpg
>>> e.d.) kunnen uploaden. Geen .pl, .cg, .php etc. Dat moet je
>>> server-side checken, vóórdat een bestand onder de webroot in het
>>> filesystem valt.

>> Ehhh, dat heb ik:

> Kennelijk werkt dat niet goed. Toch? Ik bedoel, waar komen anders die
> php's vandaan?

>>> Daarnaast zou je de webserver veilig kunnen configureren, om in de
>>> uploaddirectory niets te interpreteren en executeren.

>> Ik heb dat opgenomen met de host (NXS). Volgens hen is dat niet
>> mogelijk (op hun server?).

> Ik weet niet wat voor server je hebt en wat voor beheercontract. Maar
> mijn server staat ook bij NXS, en daarop kan het wel :-)

> "RemoveType directive
> Context: [...] directory, .htaccess"
> http://httpd.apache.org/docs/1.3/mod/mod_mime.html#removetype

> Als je .htaccess gebruikt, vergeet dan niet het uploaden van .htaccess
> onmogelijk te maken. Veiliger is om een <Directory> container in
> httpd.conf te gebruiken. Maar die heb je misschien niet zelf in
> beheer (ik wel).

Ga ik proberen. Bedankt!
--
Nico Schuyt
http://www.nicoschuyt.nl/

Nico Schuyt
25/04/06, 12:00
Warden Dave wrote:
> "Nico Schuyt" <nschuyt@hotmail.com> wrote:
>
> [Interpretatie in sommige dirs .php tegengaan]
>> Ik heb dat opgenomen met de host (NXS). Volgens hen is dat niet
>> mogelijk (op hun server?).

> Vreemd. Je kunt op bijv. een Apache server in een .htaccess bestandje
> in de dir toch even proberen:
> AddType text/plain .php
> o.i.d.

Ga ik mee aan de slag. Bedankt voor de tip!

Iemand nog enig idee wat die scripts kunnen aanrichten?

--
Nico Schuyt
http://www.nicoschuyt.nl/

Rene Pijlman
25/04/06, 12:00
Nico Schuyt:
>Iemand nog enig idee wat die scripts kunnen aanrichten?

I.i.g. alles wat de Apache-user (www-data) mag. Vermoedelijk: onbegrensde
mogelijkheden op al je data in MySQL.

--
René Pijlman

Wat wil jij leren? http://www.leren.nl

Nico Schuyt
25/04/06, 12:40
Rene Pijlman wrote:
> Nico Schuyt:
>> Iemand nog enig idee wat die scripts kunnen aanrichten?

> I.i.g. alles wat de Apache-user (www-data) mag. Vermoedelijk:
> onbegrensde mogelijkheden op al je data in MySQL.

Mijn hemel
--
Nico Schuyt
http://www.nicoschuyt.nl/

Rene Pijlman
25/04/06, 12:40
Nico Schuyt:
>Rene Pijlman wrote:
>> Nico Schuyt:
>>> Iemand nog enig idee wat die scripts kunnen aanrichten?
>
>> I.i.g. alles wat de Apache-user (www-data) mag. Vermoedelijk:
>> onbegrensde mogelijkheden op al je data in MySQL.
>
>Mijn hemel

Je werkt toch niet in een nucleair laboratorium he?

--
René Pijlman

Wat wil jij leren? http://www.leren.nl

Nico Schuyt
25/04/06, 14:00
Rene Pijlman wrote:
> Nico Schuyt:
>> Rene Pijlman:
>>> De gebruiker moet alleen niet-executerende extensies (.gif, .jpg
>>> e.d.) kunnen uploaden. Geen .pl, .cg, .php etc. Dat moet je
>>> server-side checken, vóórdat een bestand onder de webroot in het
>>> filesystem valt.
>>
>> Ehhh, dat heb ik:
>
> Kennelijk werkt dat niet goed. Toch? Ik bedoel, waar komen anders die
> php's vandaan?
>
>>> Daarnaast zou je de webserver veilig kunnen configureren, om in de
>>> uploaddirectory niets te interpreteren en executeren.
>>
>> Ik heb dat opgenomen met de host (NXS). Volgens hen is dat niet
>> mogelijk (op hun server?).
>
> Ik weet niet wat voor server je hebt en wat voor beheercontract. Maar
> mijn server staat ook bij NXS, en daarop kan het wel :-)
>
> "RemoveType directive
> Context: [...] directory, .htaccess"
> http://httpd.apache.org/docs/1.3/mod/mod_mime.html#removetype

Vreemd:
AddType text/plain .php #Werkt.
RemoveType .php #Doet niets (lijkt het)

Opgelost met:
<FilesMatch "\.(pl|cgi|py|php|php3|php4|php5|phtml?|shtml?)$">
deny from all
</FilesMatch>

--
Nico Schuyt
http://www.nicoschuyt.nl/

Herbert Groot Jebbink
25/04/06, 19:20
Nico Schuyt wrote:

> http://www.nicoschuyt.nl/test/cungkee.txt
> http://www.nicoschuyt.nl/test/wendz.txt
>
> Iemand een idee of die scripts kwaadaardig zijn en hoe je zoiets kunt
> voorkomen?

Die zijn knap kwaardaardig, ze geven een command shell, file browser,
installeren een backdoor. Is het een dedicated/colocated bak of een
shared hosted website?

hgj

--
Doe mee met de W2K6.nl pool.
Gratis deelname, 4 MP3 spelers van 4 GB te winnen.
http://w2k6.nl/?page=pool

Nico Schuyt
25/04/06, 19:20
Herbert Groot Jebbink wrote:
> Nico Schuyt wrote:

>> http://www.nicoschuyt.nl/test/cungkee.txt
>> http://www.nicoschuyt.nl/test/wendz.txt

>> Iemand een idee of die scripts kwaadaardig zijn en hoe je zoiets kunt
>> voorkomen?

> Die zijn knap kwaardaardig, ze geven een command shell, file browser,
> installeren een backdoor. Is het een dedicated/colocated bak of een
> shared hosted website?

shared

--
Nico Schuyt
http://www.nicoschuyt.nl/

Jan Reilink
26/04/06, 10:00
Nico Schuyt wrote:
> Om de gebruiker van de site plaatjes te laten uploaden heb ik een map
> aangemaakt met chmod 777.
> Nu vind ik daar ook bestanden in als cungkee.php en wendz.php.
> Broncode:
> http://www.nicoschuyt.nl/test/cungkee.txt
> http://www.nicoschuyt.nl/test/wendz.txt
> Iemand een idee of die scripts kwaadaardig zijn en hoe je zoiets kunt
> voorkomen?
>

Dag Nico, wellicht heb je hier wat aan?
<http://www.vevida.com/service/240#833>

Jij maakt gebruik van:
$_FILES['userfile']['type']
En volgens de PHP documentatie
(http://nl3.php.net/manual/en/features.file-upload.php):
The mime type of the file, if the browser provided this information.
An example would be "image/gif". This mime type is however not
checked on the PHP side and therefore don't take its value for
granted.

In de uitleg maak ik gebruik van de functies:
* image-type-to-mime-type()
* getimagesize()
naast het controleren op extensie:
if (eregi("(jpg|jpeg|gif|png|bmp)$",$_FILES[$UserFileName]['name'])) {

(ik zit net te kijken dat de controle op extensie ook beter kan, maar goed)

$MimeType =
image_type_to_mime_type(getimagesize($_FILES[$UserFileName]['tmp_name']));

// controleert aan de hand van het mime-type of het wel
// daadwerkelijk een image betreft.
// if-regel verdeeld over meerdere regels
if ($MimeType == ("image/png") || $MimeType == ("image/jpeg") ||
$MimeType == ("image/gif") || $MimeType == ("image/png") ||
$MimeType == ("image/bmp")) {

Maar dit is helaas ook niet mijn sterkste punt en het is al een flinke
tijd geleden dat ik hier naar gekeken heb (daarom sta ik ook open voor
verbeteringen in de uitleg :)).

--
Met vriendelijke groet / Best regards,
Jan Reilink, VEVIDA Nederland BV

Postbus 329, 9700 AH GRONINGEN, +31(0)50 - 5492234

Nico Schuyt
26/04/06, 10:40
Jan Reilink wrote:
> Nico Schuyt wrote:
>> Om de gebruiker van de site plaatjes te laten uploaden heb ik een map
>> aangemaakt met chmod 777.
>> Nu vind ik daar ook bestanden in als cungkee.php en wendz.php.
>> Broncode:
>> http://www.nicoschuyt.nl/test/cungkee.txt
>> http://www.nicoschuyt.nl/test/wendz.txt
>> Iemand een idee of die scripts kwaadaardig zijn en hoe je zoiets kunt
>> voorkomen?

> Dag Nico, wellicht heb je hier wat aan?
> <http://www.vevida.com/service/240#833>

> Jij maakt gebruik van:
> $_FILES['userfile']['type']
> En volgens de PHP documentatie
> (http://nl3.php.net/manual/en/features.file-upload.php):
> The mime type of the file, if the browser provided this information.
> An example would be "image/gif". This mime type is however not
> checked on the PHP side and therefore don't take its value for
> granted.

> In de uitleg maak ik gebruik van de functies:
> * image-type-to-mime-type()
> * getimagesize()
> naast het controleren op extensie
[knip]

Prima Jan, ga ik gebruiken. Alleen de mime type checken heeft er toe geleid
dat de gebruiker van de site ook allerlei verdacht bestanden geupload heeft
als M9.8B5 (in dit geval een onschuldige JPG)
Bedankt weer.

Weet jij toevallig of er op een Windows-server een equivalent is van:
RemoveType .php
en/of
<FilesMatch "\.(pl|cgi|py|php|php3|php4|php5|phtml?|shtml?)$">
deny from all
</FilesMatch>
?


--
Nico Schuyt
http://www.nicoschuyt.nl/

Jan Reilink
26/04/06, 21:20
Nico Schuyt wrote:

[knip]
>
> Prima Jan, ga ik gebruiken. Alleen de mime type checken heeft er toe geleid
> dat de gebruiker van de site ook allerlei verdacht bestanden geupload heeft
> als M9.8B5 (in dit geval een onschuldige JPG)
>

Je moet natuurlijk nog wel controleren op de extensie van het bestand :)

> Weet jij toevallig of er op een Windows-server een equivalent is van:
> RemoveType .php
> en/of
> <FilesMatch "\.(pl|cgi|py|php|php3|php4|php5|phtml?|shtml?)$">
> deny from all
> </FilesMatch>
> ?
>

Je bedoelt, denk ik, IIS i.p.v. Windows, want Apache onder Windows
ondersteundt .htaccess bestanden. Er is naar mijn weten geen IIS
equivalent dat zo uitgebreid is als .htaccess bestanden onder Apache. Er
is wel .htaccess ondersteuning beschikbaar wat betreft inloggen, maar
niet iets dergelijks met bestand extensies ("naar mijn weten").
Wellicht kan je iets inelkaar hacken m.b.v. ISAPI_Rewrite? Zie
bijvoorbeeld de anti-hotlinking opties in de documentatie:
<http://www.isapirewrite.com/docs/#examples> ("Blocking inline-images
(stop hot linking)")

Dit zou je eventueel op het Helicontech forum na kunnen vragen, iets
anders zou ik helaas niet weten.

--
Met vriendelijke groet / Best regards,
Jan Reilink, VEVIDA Nederland BV

Postbus 329, 9700 AH GRONINGEN, +31(0)50 - 5492234

Nico Schuyt
27/04/06, 10:00
Jan Reilink wrote:
> Nico Schuyt wrote:

>> Weet jij toevallig of er op een Windows-server een equivalent is van:
>> RemoveType .php
>> en/of
>> <FilesMatch "\.(pl|cgi|py|php|php3|php4|php5|phtml?|shtml?)$">
>> deny from all
>> </FilesMatch>
>> ?

> Je bedoelt, denk ik, IIS i.p.v. Windows, want Apache onder Windows
> ondersteundt .htaccess bestanden. Er is naar mijn weten geen IIS
> equivalent dat zo uitgebreid is als .htaccess bestanden onder Apache.
> Er is wel .htaccess ondersteuning beschikbaar wat betreft inloggen,
> maar niet iets dergelijks met bestand extensies ("naar mijn weten").
> Wellicht kan je iets inelkaar hacken m.b.v. ISAPI_Rewrite? Zie
> bijvoorbeeld de anti-hotlinking opties in de documentatie:
> <http://www.isapirewrite.com/docs/#examples> ("Blocking inline-images
> (stop hot linking)")
> Dit zou je eventueel op het Helicontech forum na kunnen vragen, iets
> anders zou ik helaas niet weten.

Hmmm, ik heb al de nodige moeite met .htaccess. Die ISAPI_Rewrite is nóg
weerbarstiger.
(Misschien word ik te oud voor dit vak :-)

--
Nico Schuyt
http://www.nicoschuyt.nl/

Herbert Groot Jebbink
27/04/06, 22:00
Nico Schuyt wrote:

>>> http://www.nicoschuyt.nl/test/cungkee.txt
>>> http://www.nicoschuyt.nl/test/wendz.txt
>
>>> Iemand een idee of die scripts kwaadaardig zijn en hoe je zoiets kunt
>>> voorkomen?
>
>> Die zijn knap kwaardaardig, ze geven een command shell, file browser,
>> installeren een backdoor. Is het een dedicated/colocated bak of een
>> shared hosted website?
>
> shared

ok, dan is het te hopen dat de provider zich hier genoeg tegen ingedekt
heeft ( immers nu was het een hacker, maar elke willekeurige klant kan
dit natuurlijk ook uploaden naar de server, oftewel het systeem moet
genoeg dichtgetimmerd zijn om dit aan te kunen). Ik neem aan dat je wel
je MySQL wachtwoord enzo hebt veranderd?

hgj

--
Doe mee met de W2K6.nl pool.
Gratis deelname, 4 MP3 spelers van 4 GB te winnen.
http://w2k6.nl/?page=pool

Nico Schuyt
28/04/06, 04:00
Herbert Groot Jebbink wrote:
> Nico Schuyt wrote:

[knip]
>>>> Iemand een idee of die scripts kwaadaardig zijn en hoe je zoiets
>>>> kunt voorkomen?

>>> Die zijn knap kwaardaardig, ze geven een command shell, file
>>> browser, installeren een backdoor. Is het een dedicated/colocated
>>> bak of een shared hosted website?

>> shared

> ...elke willekeurige
> klant kan dit natuurlijk ook uploaden naar de server,

Ik kan me dat bijna niet voorstellen. Uploaden gebeurt met script dat
wachtwoord beveiligd is. Wachwoorden zijn opgeslagen in een php-bestand dat
geinclude wordt vanuit een map die hoger ligt dan de site zelf. Het script
controleerde de mime-type van de te uploaden bestanden

> oftewel het
> systeem moet genoeg dichtgetimmerd zijn om dit aan te kunen). Ik neem
> aan dat je wel je MySQL wachtwoord enzo hebt veranderd?

Uiteraard :-) En upload script verder aangescherpt. En uitvoering van
php-bestanden e.d in die map geblokkeerd.

--
Nico Schuyt
http://www.nicoschuyt.nl/

Herbert Groot Jebbink
29/04/06, 10:00
Nico Schuyt wrote:


>> ...elke willekeurige
>> klant kan dit natuurlijk ook uploaden naar de server,
>
> Ik kan me dat bijna niet voorstellen. Uploaden gebeurt met script dat
> wachtwoord beveiligd is.

ik bedoeel hiermee dat jezelf als klant dit soort scripts ook hier
neergezet zou kunnen hebben.

hgj

--
Doe mee met de W2K6.nl pool.
Gratis deelname, 4 MP3 spelers van 4 GB te winnen.
http://w2k6.nl/?page=pool