Показать сообщение отдельно

  #102  
Старый 26.08.2009, 15:28
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
С нами: 9649706

Репутация: 3338


По умолчанию

Есть такая форма загрузки картинок на сайт (например в админке, куда вы только что получили доступ через sql-inj):

PHP код:
<?php
if ($HTTP_POST_VARS['submit']) {
 if (!
is_uploaded_file($HTTP_POST_FILES['file']['tmp_name'])) {
    
$error "You did not upload a file!";
    
unlink($HTTP_POST_FILES['file']['tmp_name']);
    
// assign error message, remove uploaded file, redisplay form.
  
} else {
    
//a file was uploaded
    
$maxfilesize=10240;

    if (
$HTTP_POST_FILES['file']['size'] > $maxfilesize) {
      
$error "file is too large";
      
unlink($HTTP_POST_FILES['file']['tmp_name']);
      
// assign error message, remove uploaded file, redisplay form.
    
} else {
      if (
$HTTP_POST_FILES['file']['type'] != "image/gif" AND $HTTP_POST_FILES['file']['type'] != "image/jpeg") { 
        
$error "This file type is not allowed";
        
unlink($HTTP_POST_FILES['file']['tmp_name']);
        
// assign error message, remove uploaded file, redisplay form.
      
} else {
       
//File has passed all validation, copy it to the final destination and remove the temporary file:
       
copy($HTTP_POST_FILES['file']['tmp_name'],"./".$HTTP_POST_FILES['file']['name']);
       
unlink($HTTP_POST_FILES['file']['tmp_name']);
       print 
"File has been successfully uploaded!";
       exit;
     }
    } 
  }
}
?>

<html>
<head></head>
<bоdу>
<form action="<?=$PHP_SELF?>" method="post" enctype="multipart/form-data">
<?=$error?>
<br><br>
Choose a file to upload:<br>
<input type="file" name="file"><br>
<input type="submit" name="submit" value="submit">
</form>
</bоdу>
</html>
URL до скрипта загрузки: http://site.ru/admin/upload.php (просто как пример)

Задача: Написать скрипт на PHP, загружающий шелл вместо картинки, обойти проверку (т.е. загрузить файл с расширением .php)

Условия: magic_quotes_gpc=ON, register_globals=OFF

Форма заливки взята с реально действующего движка.

Цветным просьба не участвовать, т.к. легко
 
Ответить с цитированием