+ Antworten
Ergebnis 1 bis 2 von 2

Thema: astatsPRO Remote SQL Injection

  1. #1
    Hat hier eine Zweitwohnung Avatar von JoomDesign
    Registriert seit
    19.03.2006
    Ort
    Berlin, Deutschland
    Beiträge
    1.927
    Bedankte sich
    269
    Erhielt 594 Danksagungen
    in 511 Beiträgen

    Standard astatsPRO Remote SQL Injection

    Hallo,
    laut dieser Seite besteht die Möglichkeit eine SQL Injection über die refer.php (und getfile.php) von astatsPRO auszuführen und z.B. das Passwort des Admins auszuspionieren.

    Ich habe mir sofort die betreffende(n) Datei(n) angesehen und eine Möglichkeit gefunden das Problem zu fixen.

    Das Problem war, dass die GET-Variable id ungefiltert von astatsPRO verarbeitet wurde. Das Gute ist, wer einen anderen Präfix für seine Tabellen als jos_ verwendet ist besser dran, denn dann müsste der Angreifer diesen erraten um die Injection auszuführen.

    Habe hier im Forum dann eine kleine Filterfunktion gefunden, die wunderbar diesen _GET['id'] filtert und bei meinen Tests gut funktioniert hat.

    Ich möchte daher alle Nutzer von astatsPRO bitten die folgende Änderung in der refer.php und getfile.php durchzuführen.

    Solltet ihr diese Möglichkeit nicht haben. Keine Sorge. In den nächsten Tagen steht ein Update auf der Homepage bereit.

    Änderung:

    direkt nach diesen Zeilen:
    PHP-Code:
    error_reporting(E_ALL);
    set_magic_quotes_runtime(1); 
    diese Funktion einfügen
    PHP-Code:
    function varcheck($varname,$vartyp='string') {
    $regexp=array(
                    
    'integer'=>'/^[\d\-]+$/',
                    
    'string'=>'/^[\d\w\[\]\(\)\-\+\*\%\/\_\:\x22\x27\s\,\.]+$/'
                    
    );

    if(isset(
    $GLOBALS[$varname])) {$cv=$GLOBALS[$varname];}
    if(!isset(
    $cv) && isset($_GET[$varname])) {$cv=$_GET[$varname];}
    if(!isset(
    $cv) && isset($_POST[$varname])) {$cv=$_POST[$varname];}
    if (
    preg_match($regexp[$vartyp],$cv)) {    return $cv;    }
    else {    return 
    false;    }


    $id varcheck'id''integer'); 
    und dann noch das
    PHP-Code:
    if( !isset( $_GET['id'] ) || empty( $_GET['id'] ) )
    {
        exit;
    }
    else
    {
        
    $ID intval$_GET['id'] );

    gegen
    PHP-Code:
    if( !isset( $id ) || empty( $id ) )
    {
        exit;
    }
    else
    {
        
    $ID intval$id );

    austauschen.

    P.S. Es sind alle Versionen von astatsPRO betroffen.

  2. Erhielt Danksagungen von:


  3. #2
    War schon öfter hier Avatar von satriani-vai
    Registriert seit
    31.01.2008
    Beiträge
    199
    Bedankte sich
    19
    Erhielt 8 Danksagungen
    in 8 Beiträgen

    Standard

    ich fürchte ich bin davon betroffen
    Habe sofort backup gemacht, und Adminpasswort geändert, hoffe es ist nichts schlimmes passiert.

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein