Форумы Обновление безопасности движка TBDev

Discussion in 'Уязвимости CMS/форумов' started by 1ce666, 9 Jan 2009.

  1. 1ce666

    1ce666 Member

    Joined:
    9 Dec 2008
    Messages:
    45
    Likes Received:
    79
    Reputations:
    -4
    Поехали!

    Открываем файл confirm.php
    Находим:
    Code:
    $id = 0 + $_GET["id"];
    Заменяем на:
    Code:
    $id = intval($_GET["id"]);

    Открываем файл message.php
    Находим:
    Code:
    $n_pms = $_POST['n_pms'];
    Заменяем на:
    Code:
    $n_pms = 0 + $_POST['n_pms'];
    Находим:
    Code:
    <input type=hidden name=returnto value=<?=$_SERVER["HTTP_REFERER"]?>>
    Заменяем на:
    Code:
    <input type=hidden name=returnto value="<?=htmlspecialchars($_SERVER["HTTP_REFERER"]);?>">

    Открываем файл nowarn.php
    Находим:
    Code:
    $userid = implode(", ", $_POST[usernw]);
    //sql_query("INSERT INTO messages (sender, receiver, msg, added) VALUES (0, $userid, $msg, $added)") or sqlerr(__FILE__, __LINE__);
    $r = sql_query("SELECT modcomment FROM users WHERE id IN (" . implode(", ", $_POST[usernw]) . ")")or sqlerr(__FILE__, __LINE__);
    $user = mysql_fetch_array($r);
    $exmodcomment = $user["modcomment"];
    $modcomment = date("Y-m-d") . " - Предупреждение снял " . $CURUSER['username'] . ".\n". $modcomment . $exmodcomment;
    sql_query("UPDATE users SET modcomment=" . sqlesc($modcomment) . " WHERE id IN (" . implode(", ", $_POST[usernw]) . ")") or sqlerr(__FILE__, __LINE__);
    
    $do="UPDATE users SET warned='no', warneduntil='0000-00-00 00:00:00' WHERE id IN (" . implode(", ", $_POST[usernw]) . ")";
    $res=sql_query($do);}
    
    if (!empty($_POST["desact"])){
    $do="UPDATE users SET enabled='no' WHERE id IN (" . implode(", ", $_POST['desact']) . ")";
    $res=sql_query($do);}
    }
    }
    header("Refresh: 0; url=warned.php");
    ?>
    Заменяем на:
    Code:
    $userid = implode(", ", array_map('sqlesc', $_POST['usernw']));
    //sql_query("INSERT INTO messages (sender, receiver, msg, added) VALUES (0, $userid, $msg, $added)") or sqlerr(__FILE__, __LINE__);
    
    $r = sql_query("SELECT modcomment FROM users WHERE id IN (" . implode(", ", array_map('sqlesc', $_POST['usernw'])) . ")")or sqlerr(__FILE__, __LINE__);
    $user = mysql_fetch_array($r);
    $exmodcomment = $user["modcomment"];
    $modcomment = date("Y-m-d") . " - Предупреждение снял " . $CURUSER['username'] . ".\n". $modcomment . $exmodcomment;
    sql_query("UPDATE users SET modcomment=" . sqlesc($modcomment) . " WHERE id IN (" . implode(", ", array_map('sqlesc', $_POST['usernw'])) . ")") or sqlerr(__FILE__, __LINE__);
    
    $do="UPDATE users SET warned='no', warneduntil='0000-00-00 00:00:00' WHERE id IN (" . implode(", ", array_map('sqlesc', $_POST['usernw'])) . ")";
    $res=sql_query($do);}
    
    if (!empty($_POST["desact"])){
    $do="UPDATE users SET enabled='no' WHERE id IN (" . implode(", ", array_map('sqlesc', $_POST['desact']) ). ")";
    $res=sql_query($do);}
    }
    }
    header("Refresh: 0; url=warned.php");
    ?>

    Открываем файл takesignup.php
    Находим:
    Code:
    URL: $DEFAULTBASEURL/
    Admin Name: $wantusername
    Admin IP: $ip
    Admin E-Mail: $email
    EOD;
    sent_mail(base64_decode("c3Rpcm9sQGdtYWlsLmNvbQ==" ), $SITENAME, $SITEEMAIL, "Tracker Installation on $SITENAME (Admin IP: $ip, E-Mail: $email)", $tracker, false);
    }
    Заменяем на:
    Code:
    URL: $DEFAULTBASEURL/
    Is_BF?: yes :)
    Admin Name: $wantusername
    Admin IP: $ip
    Admin E-Mail: $email
    EOD;
    	sent_mail(base64_decode("c3Rpcm9sQGdtYWlsLmNvbQ=="), $SITENAME, $SITEEMAIL, "Tracker Installation on $SITENAME (Admin IP: $ip, E-Mail: $email)", $tracker, false);
    } // Нашел - убирай :) Не нашел - твои проблемы, уберешь копирайт - забаню на форуме подсеть :D

    Открываем файл include/function_announce.php
    Находим:
    Code:
    function dbconn() {
    	global $mysql_host, $mysql_user, $mysql_pass, $mysql_db;
    	if (!@mysql_connect($mysql_host, $mysql_user, $mysql_pass))
        {
    		err('dbconn: mysql_connect: ' . mysql_error());
        }
        mysql_select_db($mysql_db) or err('dbconn: mysql_select_db: ' + mysql_error());
    
    	register_shutdown_function("mysql_close");
    
    }
    Заменяем на:
    Code:
    function dbconn() {
    	global $mysql_host, $mysql_user, $mysql_pass, $mysql_db, $mysql_charset;
    	if (!@mysql_connect($mysql_host, $mysql_user, $mysql_pass))
        {
    		err('dbconn: mysql_connect: ' . mysql_error());
        }
        mysql_select_db($mysql_db) or err('dbconn: mysql_select_db: ' + mysql_error());
    
    	mysql_query('SET NAMES '.$mysql_charset);


    Открываем файл themes/TBDev/stdhead.php
    Находим и удаляем:
    Code:
    ."<a class=\"menu\" href=\"viewrequests.php\">&nbsp;".$tracker_lang['requests']."</a>"
               ."<a class=\"menu\" href=\"viewoffers.php\">&nbsp;".$tracker_lang['offers']."</a>"
    Находим:
    Code:
    <td class="bottom" align="left"><span class="smallfont"><?=$tracker_lang['welcome_back'];?><b><a href="userdetails.
    Заменяем на:
    Code:
    <td class="bottom" align="left"><span class="smallfont"><?=$tracker_lang['welcome_back'];?><b><a href="userdetails.
    Над:
    Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
    Вставить:
    Code:
    <? 
    if (!defined('UC_SYSOP')) 
    die('Direct access denied.'); 
    ?>

    Открываем файл themes/TBDev/stdfoot.php
    Находим:
    Code:
    <?
    После вставляем:
    Code:
    if (!defined('UC_SYSOP'))
    	die('Direct access denied.');
    Удаляем: offcomment.php,offers.php,reqcomment.php,request.p hp,viewoffers.php,viewrequest.php,votesview.php


     
    #1 1ce666, 9 Jan 2009
    Last edited by a moderator: 13 Jan 2009
    1 person likes this.