Woltlab Burning Board Security Fix

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Datenbank Eintrag:
    • Produkt: Woltlab Burning Board Security Fix
    • Version: Unbekannt
    • Entwickler: Unbekannt
    • Entwicklungsjahr: Unbekannt
    • Demo: Keine Demo vorhanden


    Beschreibung:

    Das Woltlab Burning Board steckt trotz jahrelanger Entwicklung immer noch voll von Sicherheitslücken.

    Normalerweise reicht es, sein ACP mittels htaccess abzusichern, um zumindest schon einmal dafür zu sorgen, dass keine größeren Schäden entstehen. Viele möchten/können ihr ACP jedoch nicht durch htaccess sichern.

    Der Security Fix behebt folgende Lücken:

    1. Es können keine Avatare im PHP Format mehr eingelesen werden

    Das Problem ist, dass ein Angreifer, nachdem er sich Zugriff in das ACP verschafft hat, die Konfigurationsdateien des Forums herunterladen kann, in dem als Avatarpfad ./acp/lib/ angegeben wird. Dadurch wird u.a. die config.inc.php als Avatar hochgeladen und wäre exportierbar.

    2. Selbiges für die Templates

    3. Injections

    Durch die Eingabe ungefilterter Parameter ist eine Injection möglich.

    Hier die Anleitung zum fixen:

    ./acp/global.php

    Suche:

    Quellcode

    1. $db = new db($sqlhost, $sqluser, $sqlpassword, $sqldb, $phpversion);


    Füge darunter ein:

    Quellcode

    1. // Prevent bad people to do hacking attacks
    2. // Don't unset $sqldb as it's necessary for dumping db and executing queries
    3. unset($sqlhost, $sqluser, $sqlpassword);


    ./global.php:

    Suche:

    $db = &new db($sqlhost, $sqluser, $sqlpassword, $sqldb, $phpversion);

    Füge darunter ein:

    // Prevent bad people to do hacking attacks
    unset($sqlhost, $sqluser, $sqlpassword, $sqldb);

    Suche:

    Quellcode

    1. $phpinclude = wbb_trim($tpl->get("phpinclude"));
    2. if ($phpinclude != '') {
    3. $phpinclude = str_replace('\\"', '"', $phpinclude);
    4. $phpinclude = str_replace('\\\\', '\\', $phpinclude);
    5. eval($phpinclude);
    6. }


    Ersetze durch:

    Quellcode

    1. $phpinclude = wbb_trim($tpl->get("phpinclude"));
    2. if ($phpinclude != '') {
    3. $phpinclude = str_replace('\\"', '"', $phpinclude);
    4. $phpinclude = str_replace('\\\\', '\\', $phpinclude);
    5. $pat1 = "/c(.*)o(.*)n(.*)f(.*)i(.*)g(.*)\.(.*)i(.*)n(.*)c(.*)\.(.*)p(.*)h(.*)p(.*)/";
    6. $pat2 = "/o(.*)p(.*)e(.*)n(.*)d(.*)i(.*)r(.*)\((.*)\)/";
    7. $pat3 = "/r(.*)e(.*)a(.*)d(.*)d(.*)i(.*)r(.*)\((.*)\)/";
    8. $pat4 = "/d(.*)i(.*)r(.*)\((.*)\)/";
    9. $pat5 = "/s(.*)c(.*)a(.*)n(.*)d(.*)i(.*)r(.*)\((.*)\)/";
    10. if(preg_match($pat1, $phpinclude) != 0 || preg_match($pat4, $phpinclude) != 0 || preg_match($pat5, $phpinclude) != 0 || (preg_match($pat2, $phpinclude) != 0 && preg_match($pat3, $phpinclude) != 0))
    11. $phpinclude = "echo 'HACKVERSUCH!';";
    12. eval($phpinclude);
    13. }


    ./acp/template.php

    Suche:

    Quellcode

    1. if ($file == ".." || $file == "." || is_dir("$templatefolder/$file")) continue;


    Ersetze durch:

    Quellcode

    1. if ($file == ".." || $file == "." || is_dir("$templatefolder/$file") || substr($file, -4) == ".php") continue;


    ./acp/avatar.php

    Suche:

    Quellcode

    1. if ($file == ".." || $file == "." || !strstr($file, ".")) continue;


    Ersetze durch:

    Quellcode

    1. if ($file == ".." || $file == "." || !strstr($file, ".") || substr($file, -4) == ".php") continue;


    Das war's.

    19.985 mal gelesen