
10.12.2012, 15:44
|
|
Новичок
Регистрация: 03.12.2008
Сообщений: 5
С нами:
9176819
Репутация:
1
|
|
инклуд или просто читалка?
хелп ми,гайс...
Url: http://site.com/index.php?thumbnail={code}
или
http://site.com/index.php?download={code}
кусок кода для этих 2 параметров:
Код:
if ($_GET["thumbnail"]!="") {
GLOBAL $thumbnailHeight, $cacheThumbnails;
$thumbnailCacheSubdir = ".snifthumbs";
$file = safeDirectory(urldecode($_GET["thumbnail"]));
doConditionalGet($_GET["thumbnail"],filemtime($file));
$thumbDir = dirname($file)."/".$thumbnailCacheSubdir;
$thumbFile = $thumbDir."/".basename($file);
if ($cacheThumbnails) {
if (file_exists($thumbDir)) {
if (!is_dir($thumbDir)) {
$cacheThumbnails = false;
}
} else {
if (@mkdir($thumbDir)) {
chmod($thumbDir, "0777");
} else {
$cacheThumbnails = false;
}
}
if (file_exists($thumbFile)) {
if (filemtime($thumbFile)>=filemtime($file)) {
Header("Location: ".dirname($_SERVER["PHP_SELF"])."/".$thumbFile);
die();
}
}
}
$contentType = "";
$extension = strtolower(substr(strrchr($file, "."), 1));
switch ($extension) {
case "gif": $src = imagecreatefromgif($file); $contentType="image/gif"; break;
case "jpg": // fall through
case "jpeg": $src = imagecreatefromjpeg($file); $contentType="image/jpeg"; break;
case "png": $src = imagecreatefrompng($file); $contentType="image/png"; break;
default: die(); break;
}
$srcWidth = imagesx($src);
$srcHeight = imagesy($src);
$srcAspectRatio = $srcWidth / $srcHeight;
$maxAge = 3600; // one hour
Header("Cache-Control: public, max-age=$maxAge, must-revalidate");
Header("Expires: ".createHTTPDate(time()+$maxAge));
if ($srcHeight $srcHeight) {
$thumbWidth = $thumbnailWidth;
$thumbHeight = $thumbWidth / $srcAspectRatio;
} else {
$thumbHeight = $thumbnailHeight;
$thumbWidth = $thumbHeight * $srcAspectRatio;
}
if (function_exists('imagecreatetruecolor')) {
$thumb = imagecreatetruecolor($thumbWidth, $thumbHeight);
} else {
$thumb = imagecreate($thumbWidth, $thumbHeight);
}
imagecopyresampled($thumb, $src, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $srcWidth, $srcHeight);
Header("Content-Type: image/jpeg");
if ($cacheThumbnails) {
imagejpeg($thumb, $thumbFile);
chmod($thumbFile, "0777");
readfile($thumbFile);
} else {
imagejpeg($thumb);
}
}
die();
}
if ($_GET["download"]!="") {
$download = stripslashes($_GET["download"]);
$filename = safeDirectory($path.rawurldecode($download));
if (
!file_exists($filename)
OR fileIsHidden($filename)
OR (substr(strtolower($filename), -4)==".php" AND !$allowPHPDownloads)) {
Header("HTTP/1.0 404 Not Found");
$displayError[] = sprintf(translate("File not found: %s"), $filename);
} else {
//doConditionalGet($filename, filemtime($filename));
Header("Content-Length: ".filesize($filename));
Header("Content-Type: application/x-download");
Header("Content-Disposition: attachment; filename=\"".rawurlencode($download)."\"");
readfile($filename);
die();
}
}
allow_url_fopen = On
allow_url_include = Off
file:/// - работает
php://filter/convert.base64-encode/resource - работает
php://input или data: - не получилось
логи читает,однако php-код не выполняет(код виден только в исходнике страницы)
возможен ли тут RFI или LFI?
|
|
|