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

  #10  
Старый 19.11.2013, 12:51
HeaVeNSeR
Новичок
Регистрация: 03.12.2008
Сообщений: 5
С нами: 9176819

Репутация: 1
По умолчанию

ребят,хелп

в админке одной CMS есть такой аплоад файлов:

Код:
if ($input->p['do'] == "install") {
	if ($settings['demo'] == "yes") {
		$error_msg = "This is not possible in demo version";
	}
	else {
		if ($input->p['sesion_id'] != $_SESSION['sesion_id']) {
			$error_msg = "Invalid token try again please";
		}
		else {
			if ($_FILES['file']['type'] != "text/xml") {
				$error_msg = "Invalid File";
			}
			else {
				if (0 load("../upload/" . $_FILES['file']['name']);
					$langnames = $doc->getElementsByTagName("name");
					$langname = $langnames->item(0)->nodeValue;
					$langversions = $doc->getElementsByTagName("ptcevolution");
					$langversion = $langversions->item(0)->nodeValue;
					$langfiles = $doc->getElementsByTagName("filename");
					$langfile = $langfiles->item(0)->nodeValue;

					if ((empty($$langname) || empty($$langversion)) || empty($$langfile)) {
						$error_msg = "Invalid File";
					}
					else {
						if ($langversion != $software['version']) {
							$error_msg = $langname . " is not configured for PTCEvolution " . $software['version'];
						}
						else {
							$verifylang = $db->fetchOne(("SELECT COUNT(*) AS NUM FROM language WHERE name='" . $langname . "' and version='" . $software['version'] . "'"));

							if ($verifylang == 0) {
								$datastored = array("name" => $langname, "version" => $langversion, "filename" => $langfile);
								$insert = $db->insert("language", $datastored);
								$success_msg = $langname . "  was sucessfully installed! Click here to manage installed languages";
							}
							else {
								$error_msg = $langname . " is already installed on this site.";
							}
						}
					}

					unlink("../upload/" . $_FILES['file']['name']);
				}
			}
		}
	}
}
то есть,если зайти под админом,подменить Content-type на text/xml и попробывать залить shell.php - он зальется в папку upload

Код:
move_uploaded_file($_FILES['file']['tmp_name'], "../upload/" . $_FILES['file']['name']);
но тут же удалится

Код:
unlink("../upload/" . $_FILES['file']['name']);
есть ли возможность задержать файл в папке /upload/ или же успеть выполнить код?
 
Ответить с цитированием