Здравствуйте!! Нужна помощь, а то я уже все не могу, руки опускаются... Во общем суть такая! Есть доступ к PMA FILE_PRIV=no , но LOAD DATA LOCAL INFILE работает читаю файлы.Еще phpinfo.php есть. На сервере есть два сайта, один файловый хостинг картинок, а на втором стоит сайт на html c HESK есть доступ к админке. Есть там загрузчик файлов приведу его Spoiler: Кусок кода с HESK c загрузки PHP: PHP: /* --> Attachments */$set['attachments']['use'] = empty($_POST['s_attach_use']) ? 0 : 1;if ($set['attachments']['use']){ $set['attachments']['max_number'] = intval( hesk_POST('s_max_number', 2) ); $size = floatval( hesk_POST('s_max_size', '1.0') ); $unit = hesk_htmlspecialchars( hesk_POST('s_max_unit', 'MB') ); $set['attachments']['max_size'] = hesk_formatUnits($size . ' ' . $unit); $set['attachments']['allowed_types'] = isset($_POST['s_allowed_types']) && ! is_array($_POST['s_allowed_types']) && strlen($_POST['s_allowed_types']) ? explode(',', strtolower( preg_replace('/[^a-zA-Z0-9,]/', '', $_POST['s_allowed_types']) ) ) : array(); $set['attachments']['allowed_types'] = array_diff($set['attachments']['allowed_types'], array('php', 'php4', 'php3', 'php5', 'phps', 'phtml', 'shtml', 'shtm', 'cgi', 'pl') ); if (count($set['attachments']['allowed_types'])) { $keep_these = array(); foreach ($set['attachments']['allowed_types'] as $ext) { if (strlen($ext) > 1) { $keep_these[] = '.' . $ext; } } $set['attachments']['allowed_types'] = $keep_these; } else { $set['attachments']['allowed_types'] = array('.gif','.jpg','.png','.zip','.rar','.csv','.doc','.docx','.xls','.xlsx','.txt','.pdf'); }}else{ $set['attachments']['max_number']=2; $set['attachments']['max_size']=1048576; $set['attachments']['allowed_types']=array('.gif','.jpg','.png','.zip','.rar','.csv','.doc','.docx','.xls','.xlsx','.txt','.pdf');} Там идет проверка на php расширение, Может кто знает как обойти. Самое интересное файловый хостинг картинок, туда залил шелл через подмену tamper data, но залился он как JPEG Привожу пример Spoiler: код загрузки PHP: <?php function thumbnails($f,$p,$t = 2,$s = 1,$q = 90,$w = 160) {if (empty($p)) die("No thumbnail name in \$p");list($width,$height,$type,$attr) = @getimagesize($f);if (!$type) $type = 3;if (!file_exists($f)){$src = @imagecreatefrompng('resize_error.png') or die ('Cannot Initialize new GD image stream');$s = 0;}else{switch ($type){case 1:$src = imagecreatefromgif($f) or die ('Cannot Initialize new GD image stream');break;case 2:$src = imagecreatefromjpeg($f) or die ('Cannot Initialize new GD image stream');break;case 3:$src = imagecreatefrompng($f) or die ('Cannot Initialize new GD image stream');break;}}$w_src = imagesx($src);$h_src = imagesy($src);if ($t == 1) {$ratio = $w_src/$w;$w_dest = round($w_src/$ratio);$h_dest = round($h_src/$ratio);$dest = @imagecreatetruecolor($w_dest,$h_dest) or die('Cannot Initialize new GD image stream');$white = imagecolorallocate($dest,255,255,255);imagefill($dest,1,1,$white);imagecopyresampled($dest,$src,0,0,0,0,$w_dest,$h_dest,$w_src,$h_src);}if ($t == 2) {$dest = @imagecreatetruecolor($w,$w) or die('Cannot Initialize new GD image stream');if ($w_src >$h_src)imagecopyresampled($dest,$src,0,0,round((max($w_src,$h_src)-min($w_src,$h_src))/2),0,$w,$w,min($w_src,$h_src),min($w_src,$h_src));if ($w_src <$h_src)imagecopyresampled($dest,$src,0,0,0,0,$w,$w,min($w_src,$h_src),min($w_src,$h_src));if ($w_src == $h_src)imagecopyresampled($dest,$src,0,0,0,0,$w,$w,$w_src,$w_src);}if ($s == 1) {$str = '';$x_text = $w_dest-70;$y_text = $h_dest-15;$white = imagecolorallocate($dest,255,255,255);$black = imagecolorallocate($dest,0,0,0);imagestring($dest,2,$x_text-1,$y_text-1,$str,$black);imagestring($dest,2,$x_text+1,$y_text+1,$str,$black);imagestring($dest,2,$x_text+1,$y_text-1,$str,$black);imagestring($dest,2,$x_text-1,$y_text+1,$str,$black);imagestring($dest,2,$x_text-1,$y_text,$str,$black);imagestring($dest,2,$x_text+1,$y_text,$str,$black);imagestring($dest,2,$x_text,$y_text-1,$str,$black);imagestring($dest,2,$x_text,$y_text+1,$str,$black);imagestring($dest,2,$x_text,$y_text,$str,$white);}if (!file_exists($f)){header('Content-type: image/png');$black = imagecolorallocate($dest,0,0,0);imagerectangle($dest,0,0,$w-1,$w-1,$black);imagepng($dest);exit;}@imagegammacorrect($dest,1,1.1);@imageinterlace($dest,1);switch ($type){case 1: imagegif($dest,$p);break;case 2: imagejpeg($dest,$p,$q);break;case 3: imagepng($dest,$p);break;}imagedestroy($dest);imagedestroy($src);return true;}; ?> Spoiler: index.php PHP: <?php session_start();include 'inc/const.php';$q = $_GET['q'];$ref = $_GET['ref'];if (isset($_COOKIE['ref'])){$ref = $_COOKIE['ref'];}if ($ref >0){setcookie('ref',$ref,time()+3600*24*30,'/');}switch ($q){case 'login':include('tpl/login.php');break;case 'faq':include('tpl/faq.php');break;case 'price':include('tpl/price.php');break;case 'rules':include('tpl/rules.php');break;case 'feedback':include('tpl/feedback.php');break;case 'forgot':include('tpl/forgot.php');break;case 'registration':include('tpl/registration.php');break;default:include('tpl/about.php');}include('tpl/footer.php');;echo ' <div align="center"><strong>FHM v2.2</strong></a></div>'; ?> Помогите, подтолкните меня....
насчет первого - попробуйте php2 и pht. насчет второго - расширение само такое высталвяется, вне зависимости от того, что заливаете?
Не работает.. Залилось но открывается как текст.. Apache/2.2.9 (Debian) mod_mono/1.9 PHP/5.2.6-1+lenny16 with Suhosin-Patch mod_ssl/2.2.9 OpenSSL/0.9.8g Server
Во втором беру шел.php пихаю в загрузку и в темпер меняю расширение на jpeg и Content-Type: на image/jpeg
Вот выдернул из конфига, наверное поэтому и не исполняет .pht <VirtualHost> AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml AddType application/x-httpd-php-source .phps
Во все чужие темы лезть со своими вопросами это моветон. А во-вторых, можно попробовать подсмотреть по какому алгоритму такое имя создается и тогда шанс угадать будет выше, имхо. Нужно еще поискать какие-нибудь баги и чтение файлов хорошее подспорье в этом. В общем-то тот самый lfi найти будет уже вином. Мне кажется, что все же стоит еще поискать полезную информацию в сорцах на сайте, а там видно будет.
На хастинге картинок стоит скрипт FHM v2.2. Может кто встречал, не могу найти админку. Там в конфиге изменяется путь к админке.
Нашел еще один сайт на сервере. Там есть редактор файлов, но не сохраняет ни один файл.. Наверное права урезаны. Можно что то еще с ним сделать? PHP: <h1><a href=?admin=editor>Редактор</a>/<a href=admin.php?admin=editor&filename=<?php echo $_GET['filename']; ?>><?php echo $_GET['filename']; ?></a></h1> </div><?php if(isset($_POST['content'])) { $fd = @fopen($_POST['filename'],"w"); if(!$fd) exit("Такой файл отсутствует"); fwrite($fd,stripslashes($_POST['content'])); fclose($fd); $_GET['filename'] = $_POST['filename']; }?> Выберите файл для редактирования кода<?php if(isset($_GET['filename'])) { $fd = @fopen($_GET['filename'],"r"); if(!$fd) exit("Такой файл отсутствует"); $bufer = fread($fd,filesize($_GET['filename'])); fclose($fd); ?> <form action = "admin.php?admin=editor" method="post"> Идет редактирование <br><? if(isset($_POST['edit'])) { echo '<font color=red>Изменения сохранены</font><br>'; } ?><textarea cols=116 rows=36 name="content"><?php echo $bufer; ?> А да еще теперь через него могу смотреть файлы других сайтов.