PDA

Просмотр полной версии : Заливка шелла или LFI


zifus
22.04.2016, 23:24
Здравствуйте!! Нужна помощь, а то я уже все не могу, руки опускаются...

Во общем суть такая! Есть доступ к PMA FILE_PRIV=no ,но LOAD DATA LOCAL INFILE работает читаю файлы.Еще phpinfo.php есть. На сервере есть два сайта, один файловый хостинг картинок, а на втором стоит сайт на html c HESK есть доступ к админке. Есть там загрузчик файлов приведу его

.SpoilerTarget" type="button">Spoiler: Кусок кода с HESK c загрузки






/* --> 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','.cs v','.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 Привожу пример

.SpoilerTarget" type="button">Spoiler: код загрузки


$h_src)
imagecopyresampled($dest,$src,0,0,round((max($w_sr c,$h_src)-min($w_src,$h_src))/2),0,$w,$w,min($w_src,$h_src),min($w_src,$h_src));
if ($w_src


.SpoilerTarget" type="button">Spoiler: index.php


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'
FHM v2.2
';?>


Помогите, подтолкните меня....

faza02
22.04.2016, 23:52
насчет первого - попробуйте php2 и pht. насчет второго - расширение само такое высталвяется, вне зависимости от того, что заливаете?

LETIFERUM
23.04.2016, 00:04
↑ (https://antichat.live/posts/3976727/)
насчет первого - попробуйте php2 и pht. насчет второго - расширение само такое высталвяется, вне зависимости от того, что заливаете?


pht?это работает?надо проверить)

BabaDook
23.04.2016, 00:10
↑ (https://antichat.live/posts/3976734/)
pht?это работает?надо проверить)


Не проверяй. Работает

faza02
23.04.2016, 00:14
на deb7 и ubuntu

zifus
23.04.2016, 00:25
↑ (https://antichat.live/posts/3976739/)
Не проверяй. Работает


Не работает.. Залилось но открывается как текст..

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

BabaDook
23.04.2016, 00:33
↑ (https://antichat.live/posts/3976743/)
Не работает.. Залилось но открывается как текст..
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


обидно. Может куда заливается файл , он не исполняется ?

zifus
23.04.2016, 00:36
Я могу изменить папку загрузки.. Только не знаю насколько глубоко, как права настроены.

faza02
23.04.2016, 00:36
php2 то че?

zifus
23.04.2016, 00:38
↑ (https://antichat.live/posts/3976748/)
php2 то че?


Тоже самое, что pht!!

zifus
23.04.2016, 00:50
↑ (https://antichat.live/posts/3976727/)
насчет первого - попробуйте php2 и pht. насчет второго - расширение само такое высталвяется, вне зависимости от того, что заливаете?


Во втором беру шел.php пихаю в загрузку и в темпер меняю расширение на jpeg и Content-Type: на image/jpeg

LETIFERUM
23.04.2016, 00:58
pht работает...еще бы путь к нему в аттачментах найти..эх

LETIFERUM
23.04.2016, 01:01
e7b3b5d138f9eb4db99b2e6730c7b4a7 интересно сколько вот такое может брутиться)))

zifus
23.04.2016, 01:08
↑ (https://antichat.live/posts/3976759/)
pht работает...еще бы путь к нему в аттачментах найти..эх


То есть путь найти?


↑ (https://antichat.live/posts/3976761/)
e7b3b5d138f9eb4db99b2e6730c7b4a7 интересно сколько вот такое может брутиться)))


Что это именно?

LETIFERUM
23.04.2016, 01:20
↑ (https://antichat.live/posts/3976765/)
То есть путь найти?
Что это именно?


это я про свое)файл залить могу,а реальное название файла не могу найти)

zifus
23.04.2016, 01:56
Вот выдернул из конфига, наверное поэтому и не исполняет .pht

AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml

AddType application/x-httpd-php-source .phps

blackbox
23.04.2016, 02:20
↑ (https://antichat.live/posts/3976770/)
это я про свое)файл залить могу,а реальное название файла не могу найти)


Во все чужие темы лезть со своими вопросами это моветон. А во-вторых, можно попробовать подсмотреть по какому алгоритму такое имя создается и тогда шанс угадать будет выше, имхо.


↑ (https://antichat.live/posts/3976782/)
Вот выдернул из конфига, наверное поэтому и не исполняет .pht

AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml
AddType application/x-httpd-php-source .phps


Нужно еще поискать какие-нибудь баги и чтение файлов хорошее подспорье в этом. В общем-то тот самый lfi найти будет уже вином. Мне кажется, что все же стоит еще поискать полезную информацию в сорцах на сайте, а там видно будет.

LETIFERUM
23.04.2016, 03:45
↑ (https://antichat.live/posts/3976788/)
Во все чужие темы лезть со своими вопросами это моветон. А во-вторых, можно попробовать подсмотреть по какому алгоритму такое имя создается и тогда шанс угадать будет выше, имхо.
Нужно еще поискать какие-нибудь баги и чтение файлов хорошее подспорье в этом. В общем-то тот самый lfi найти будет уже вином. Мне кажется, что все же стоит еще поискать полезную информацию в сорцах на сайте, а там видно будет.


да у нас ситуации схожи)мысли вслух были)

zifus
23.04.2016, 11:35
На хастинге картинок стоит скрипт FHM v2.2. Может кто встречал, не могу найти админку. Там в конфиге изменяется путь к админке.

zifus
24.04.2016, 22:18
Нашел еще один сайт на сервере. Там есть редактор файлов, но не сохраняет ни один файл.. Наверное права урезаны.

Можно что то еще с ним сделать?


Редактор/>



Выберите файл для редак тирования кода


Идет редактиров ание

Изменения сохранены
'; }?>
[/COLOR]

А да еще теперь через него могу смотреть файлы других сайтов.

blackbox
24.04.2016, 22:56
↑ (https://antichat.live/posts/3977354/)
Нашел еще один сайт на сервере. Там есть редактор файлов, но не сохраняет ни один файл.. Наверное права урезаны.
Можно что то еще с ним сделать?

Редактор/>



Выберите файл для редак тирования кода


Идет редактиров ание

Изменения сохранены
'; }?>
[/COLOR]

А да еще теперь через него могу смотреть файлы других сайтов.


Можно проверить, в правах ли дело - создать в tmp файл, например и в случае успеха попытаться создать файл в дире, доступной для записи (предварительно найдя ее). Если нет, то продолжать читать файлы в поисках другой уязвимости.

zifus
25.04.2016, 02:13
Подскажите LFI здесь может быть? А то я его не очень еще понимаю.

.SpoilerTarget" type="button">Spoiler: Код


location.href='/';");
}
$page=$_GET['ppage'];
if ( !isset($page) ||$page=="")
{
$page="index";
}
$page_filter=preg_match("/^[A-Za-z0-9_=]{2,20}\$/",$page);
$header=file_get_contents(TEMPLATE_DIR."/header.tpl");
$news=intval($_GET['news'] );
$news_query= @mysql_fetch_array( @mysql_query("SELECT date,title,full_story,descr,keywords FROM casino_news WHERE id='{$news}' LIMIT 1") );
if ($news_query!=""&&$page=="news")
{
$header=str_replace("{title}",$news_query['title'],$header);
$header=str_replace("{description}",$news_query['descr'],$header);
$header=str_replace("{keywords}",$news_query['keywords'],$header);
$header=str_replace("{theme}","/templates/".$template."/".$_SESSION['language'],$header);
echo$header;
}
else
{
require_once(ENGINE_DIR."config/title.php");
$header=str_replace("{title}",$title,$header);
$header=str_replace("{description}",$title,$header);
$header=str_replace("{keywords}",$title,$header);
$header=str_replace("{theme}","/templates/".$template."/".$_SESSION['language'],$header);
echo$header;
}
if ($page_filter==true)
{
$inc=ENGINE_DIR."/templates/page.".$page.".php";
if (file_exists($inc) )
{
if ($_SESSION['login'] !="")
{
$id_session="CASINOSOFT".$_SERVER['HTTP_USER_AGENT'].$_SERVER['HTTP_ACCEPT_CHARSET'];
$id_session=md5($id_session.session_id( ) );
if ($_SESSION['sid'] ==$id_session)
{
$user_status_query=mysql_fetch_array(mysql_query("select status from clients where login='".$_SESSION['login']."'") );
if ($user_status_ query['status'] !=0)
{
include_on ce(ENGINE_DIR."/templates/header_nomain.php");
include_on ce(ENGINE_DIR."/templates/page.".$page.".php");
include_on ce(ENGINE_DIR."/templates/footer_nomain.php");
}
else
{
include_on ce(ROOT_DIR."/templates/block.php");
session_destroy( );
exit( );
}
}
else
{
$_SESSION['sid'] ="";
$_SESSION['login'] ="";
if (DEBUG)
{
echo"Сессия после входа измене на location.href=\"/\";";
}
}
}
else
{
include_once(ENGINE_DIR."/templates/header_nomain.php");
include_once(ENGINE_DIR."/templates/page.".$page.".php");
include_once(ENGINE_DIR."/templates/footer_nomain.php");
}
}
else
{
include_once(ROOT_DIR."/templates/404.php");
exit( );
}
}
else
{
include_once(ROOT_DIR."/templates/404.php");
exit( );
}
$footer=file_get_contents(TEMPLATE_DIR."/footer.tpl");
$footer=str_replace("{THEME}","/templates/".$template."/".$language,$footer);
echo$footer;
?>

blackbox
25.04.2016, 11:07
Похоже что нет, потому что параметры фильтруются.

zifus
25.04.2016, 20:34
Народ,кто че может предположить, что может здесь быть.

А то я ума не могу приложить что здесь?

mysqlmove:x:507:507:mysqlmove:/var/www/mysqlmove/data:/bin/date

zifus
28.04.2016, 14:05
Возможно здесь про инклюдить?


$op=$_GET[op];
if(preg_match("~^[a-zA-Z0-9\-\_]+$~",$op)) {
$fn='includes/'.$op.'.php';
if(file_exists($fn)) include($fn);
}else if($op=='')

blackbox
28.04.2016, 20:04
↑ (https://antichat.live/posts/3978729/)
Возможно здесь про инклюдить?

$op=$_GET[op];
if(preg_match("~^[a-zA-Z0-9\-\_]+$~",$op)) {
$fn='includes/'.$op.'.php';
if(file_exists($fn)) include($fn);
}else if($op=='')



Но тут же фильтруется параметр.

zifus
04.05.2016, 23:09
Народ.. нарыл вот такое!!

/show_image.php?filename=photo/34а535р3619ee.jpg&width=125

подставляю /etc/passwd и получаю

Warning: file_exists() [function.file-exists (http://kolesa55.ru/function.file-exists)]: open_basedir restriction in effect. File(/etc/passwd) is not within the allowed path(s): (/var/www/client/data:.) in/var/www/client/data/www/*****.ru/thumbnail.inc.php on line 126

Warning: getimagesize() [function.getimagesize (http://kolesa55.ru/function.getimagesize)]: open_basedir restriction in effect. File(/etc/passwd) is not within the allowed path(s): (/var/www/client/data:.) in/var/www/client/data/www/******.ru/thumbnail.inc.php on line 165

Warning: getimagesize(/etc/passwd) [function.getimagesize (http://kolesa55.ru/function.getimagesize)]: failed to open stream: Operation not permitted in /var/www/client/data/www/******.ru/thumbnail.inc.php on line 165

Warning: imagecreatetruecolor() [function.imagecreatetruecolor (http://kolesa55.ru/function.imagecreatetruecolor)]: Invalid image dimensions in /var/www/client/data/www/******.ru/thumbnail.inc.php on line 318

Warning: imagecopyresampled() expects parameter 1 to be resource, boolean given in /var/www/client/data/www/******.ru/thumbnail.inc.php on line 335



Есть у кого какие идеи что здесь можно придумать?

blackbox
05.05.2016, 13:35
↑ (https://antichat.live/posts/3980692/)
Народ.. нарыл вот такое!!
/show_image.php?filename=photo/34а535р3619ee.jpg&width=125
подставляю /etc/passwd и получаю
Warning
: file_exists() [
function.file-exists (http://kolesa55.ru/function.file-exists)
]: open_basedir restriction in effect. File(/etc/passwd) is not within the allowed path(s): (/var/www/client/data:.) in
/var/www/client/data/www/*****.ru/thumbnail.inc.php
on line
126
Warning
: getimagesize() [
function.getimagesize (http://kolesa55.ru/function.getimagesize)
]: open_basedir restriction in effect. File(/etc/passwd) is not within the allowed path(s): (/var/www/client/data:.) in
/var/www/client/data/www/******.ru/thumbnail.inc.php
on line
165
Warning
: getimagesize(/etc/passwd) [
function.getimagesize (http://kolesa55.ru/function.getimagesize)
]: failed to open stream: Operation not permitted in
/var/www/client/data/www/******.ru/thumbnail.inc.php
on line
165
Warning
: imagecreatetruecolor() [
function.imagecreatetruecolor (http://kolesa55.ru/function.imagecreatetruecolor)
]: Invalid image dimensions in
/var/www/client/data/www/******.ru/thumbnail.inc.php
on line
318
Warning
: imagecopyresampled() expects parameter 1 to be resource, boolean given in
/var/www/client/data/www/******.ru/thumbnail.inc.php
on line
335

Есть у кого какие идеи что здесь можно придумать?


Скорее всего ничего, но если на сервере стоит imagemagick, то можно попробовать более подробно про последнюю уязвимость почитать и мб использовать ее.