Заливка шелла или LFI

Discussion in 'Песочница' started by zifus, 22 Apr 2016.

  1. blackbox

    blackbox Elder - Старейшина

    Joined:
    31 Dec 2011
    Messages:
    362
    Likes Received:
    62
    Reputations:
    11
    Можно проверить, в правах ли дело - создать в tmp файл, например и в случае успеха попытаться создать файл в дире, доступной для записи (предварительно найдя ее). Если нет, то продолжать читать файлы в поисках другой уязвимости.
     
    #21 blackbox, 24 Apr 2016
    Last edited: 24 Apr 2016
  2. zifus

    zifus Member

    Joined:
    15 Aug 2015
    Messages:
    83
    Likes Received:
    9
    Reputations:
    0
    Подскажите LFI здесь может быть? А то я его не очень еще понимаю.
    PHP:
    <?php
    if ( !defined( "CASINOENGINE" ) )
    {
        exit( 
    "Нет доступа!<script>location.href='/';</script>" );
    }
    $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_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/block.php" );
                        
    session_destroy( );
                        exit( );
                    }
                }
                else
                {
                    
    $_SESSION['sid'] = "";
                    
    $_SESSION['login'] = "";
                    if ( 
    DEBUG )
                    {
                        echo 
    "Сессия после входа изменена <script>location.href=\"/\";</script>";
                    }
                }
            }
            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;
    ?>
     
  3. blackbox

    blackbox Elder - Старейшина

    Joined:
    31 Dec 2011
    Messages:
    362
    Likes Received:
    62
    Reputations:
    11
    Похоже что нет, потому что параметры фильтруются.
     
  4. zifus

    zifus Member

    Joined:
    15 Aug 2015
    Messages:
    83
    Likes Received:
    9
    Reputations:
    0
    Народ,кто че может предположить, что может здесь быть.
    А то я ума не могу приложить что здесь?
    mysqlmove:x:507:507:mysqlmove:/var/www/mysqlmove/data:/bin/date
     
  5. zifus

    zifus Member

    Joined:
    15 Aug 2015
    Messages:
    83
    Likes Received:
    9
    Reputations:
    0
    Возможно здесь про инклюдить?
    Code:
    $op=$_GET[op];
    if(preg_match("~^[a-zA-Z0-9\-\_]+$~",$op)) {
    $fn='includes/'.$op.'.php';
    if(file_exists($fn)) include($fn);
    }else if($op=='')
     
  6. blackbox

    blackbox Elder - Старейшина

    Joined:
    31 Dec 2011
    Messages:
    362
    Likes Received:
    62
    Reputations:
    11
    Но тут же фильтруется параметр.
     
  7. zifus

    zifus Member

    Joined:
    15 Aug 2015
    Messages:
    83
    Likes Received:
    9
    Reputations:
    0
    Народ.. нарыл вот такое!!
    /show_image.php?filename=photo/34а535р3619ee.jpg&width=125
    подставляю /etc/passwd и получаю
    Warning: file_exists() [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]: 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]: failed to open stream: Operation not permitted in /var/www/client/data/www/******.ru/thumbnail.inc.php on line 165

    Warning: imagecreatetruecolor() [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

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

    blackbox Elder - Старейшина

    Joined:
    31 Dec 2011
    Messages:
    362
    Likes Received:
    62
    Reputations:
    11
    Скорее всего ничего, но если на сервере стоит imagemagick, то можно попробовать более подробно про последнюю уязвимость почитать и мб использовать ее.