Автор Тема: Хакнули!  (Прочитано 6917 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Ptiza

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 99
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.themes.ru/
Хакнули!
« : 19 Апреля 2002, 16:31:41 »
Ну вот, дождались. Один хрен все-таки вопользовался разгильдяйством моих админов, которое не позволяло паролировать никаим образом директории в cgi-bin.

Так что, будеьте осторожны. Если Какаду решит, что публикация скрипта, который автоматически после добавления новой статьи уничтожает все публикации из базя, он е опубликует. А пока, уделите особое внимае безопасности. А к создателям вопрос - как восстановить базу, когда файлы все на сервере сохранились и как вычистить из index.dat этот скрипт, чтобы все потом работало?
Что это за птица с подрезанными крыльями?

Оффлайн Ptiza

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 99
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.themes.ru/
Хакнули!
« Ответ #1 : 19 Апреля 2002, 16:35:45 »
Кстати, комментари сразу. Скрипт, который был вставлен этим ублюдком (а в общем, хорошим человеком, хотя и сукой порядочной), при модификации статьи (в заголовке статьи пишется текст, который порядочный редактор удаляет, сохряняет статью и тем самым подписывает своему сайту смертный приговор), в которую был вставлен код, уничтожает базу.
Что это за птица с подрезанными крыльями?

  • Гость
Хакнули!
« Ответ #2 : 20 Апреля 2002, 01:22:07 »
Что-то я не понял если честно что произошло? Не была запоролена админская панель? Посетитель добавил  вызов скрипта в комментарие (прислал на публикацию новую статью)?

Оффлайн Ptiza

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 99
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.themes.ru/
Хакнули!
« Ответ #3 : 20 Апреля 2002, 11:31:29 »
Админская панель не была запаролена. "Доброжелатель" изменил одну из статей, добавив в нее некий скрипт. После того, как я попытался вернуть эту статью в ее первоначальное состояние, скрипт порушил всю базу, перетасовал файл index.dat и Бог знает, что еще.
Что это за птица с подрезанными крыльями?

Оффлайн Ptiza

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 99
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.themes.ru/
Хакнули!
« Ответ #4 : 20 Апреля 2002, 13:58:09 »
Вниманию пользователей!

Рекоменудю всем скачать себе на локальную машину содержимое директории admin/data и проверить файлы на наличие строчки

function _parseint(val) // hack :)

Если в каком-либо из файлов подобная строчка будет обнаружена (соответственно, и за ней что-то следует), то статью под этим номером ни при каких условиях нельзя модифицировать, иначе скрипт будет запущен. Я обнаружил, что первый раз на данные моегосайта покушались еще 30 марта, но тогда никаким образом это не проявлялось на содержимом статьи и мысли о том, чтобы ее изменить у меня не было. Лишь в пятницу в одной из статей появились строчки о том, что сайт подломан. После того, как я исправил эту статью, все слетело.
Что это за птица с подрезанными крыльями?

Оффлайн alexxmfk

  • Я здесь никогда не бываю!
  • Постоялец
  • ***
  • Сообщений: 124
  • +0/-0
  • 2
    • Просмотр профиля
Хакнули!
« Ответ #5 : 22 Апреля 2002, 12:31:44 »
А ты ничего не путаешь???
Я нашёл в одной своей статье такие строчки:
Цитировать

{
  var result ;
  result = \'"\'+value+\'"\';
  return result;
};

function _parseint(val) // hack :)
{
  var result;
  result =  val * 1;
  if (isNaN(result))
  {
    result = 0
  };
  return result;
}


function InsertPicture()
{
  var pic_url, pic_caption,  pic_width, pic_height, tab_width, tab_height, t_align;
  pic_url = document.frm1.pic_url.value;
  pic_caption = document.frm1.pic_cpt.value;
  pic_width =  document.frm1.pic_width.value;
  pic_height = document.frm1.pic_height.val


Причём НИКТО меня не хакал и эти строки я обнаружил в дат файле статьи которая добавлена одна из первых.

И ЧТО САМОЕ ГЛАВНОЕ: в файле lang.pl, я также нашёл такие строки:
Цитировать

function _parseint(val) // hack :)
{
  var result;
  result =  val * 1;
  if (isNaN(result))
  {
    result = 0
  };
  return result;
}

Такчто я думаю врядли это взлом. Но всёже, Какаду, откуда в одной из статей взялся вышеуказанный код? И почему в других его нет??? Ичто это вообще за код? Пахнет багом...
ICQ: 774334

Оффлайн Ptiza

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 99
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.themes.ru/
Хакнули!
« Ответ #6 : 22 Апреля 2002, 13:18:10 »
Вот и именно, такая строчка у меня есть только в двух статьях. Причем, когда я исправил одну из них - все слетело нафиг.
Что это за птица с подрезанными крыльями?

Оффлайн alexxmfk

  • Я здесь никогда не бываю!
  • Постоялец
  • ***
  • Сообщений: 124
  • +0/-0
  • 2
    • Просмотр профиля
Хакнули!
« Ответ #7 : 22 Апреля 2002, 13:22:39 »
Поскольку этот отрезок кода вставляеться в статью самим скриптом, то это какой-то глюк. Будем ждать ответа Какаду.
ICQ: 774334

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
ээ
« Ответ #8 : 23 Апреля 2002, 19:48:02 »
я тут отлучался на врямя..
Вы ничего не напутали? JavaScript ничего сделать сам не может - это раз.
Потом ;) вот привожу FozzySnippetCode (если в конфиге он включается, то в меню с добавлением статьи дрбавляются дополнительные опции по вставке рисунка/таблицы)

function _qw(value)  
{
  var result ;
  result = \'"\'+value+\'"\';
  return result;
};

function _parseint(val) // hack :)
{
  var result;
  result =  val * 1;
  if (isNaN(result))
  {
    result = 0
  };
  return result;
}


function InsertPicture()
{
  var pic_url, pic_caption,  pic_width, pic_height, tab_width, tab_height, t_align;
  pic_url = document.frm1.pic_url.value;
  pic_caption = document.frm1.pic_cpt.value;
  pic_width =  document.frm1.pic_width.value;
  pic_height = document.frm1.pic_height.value;
  t_align = document.frm1.t_align.value;
  if (pic_url == null ||  pic_url == "")
  {
     alert("Не указан урл картинки");
     return;
  };
  if ( _parseint(pic_width) <= 0 || _parseint(pic_height) <= 0)
  {
    alert("Неверно указаны размеры картинки ");
    return;
  };
  var s_tw, s_th;
    s_tw = _parseint(pic_width)  + 2;
    s_th = _parseint(pic_height) + 2;
 
  var result = "\\\\n\\\\n";
  var res;
   if (t_align == 0) {
    res = "\\\\n"
}
else {
res =   "
\\\\n"
  };
  result = result + res ;
  result = result +
  ( pic_caption ?
  "  \\\\n" :
  "  \\\\n"
  );
  //второй ряд, с caption
  if (pic_caption == null)
  {
    pic_caption = ""; //just in case
  };
  result = result + "";

  result = result + "
"+ pic_caption + "
";
  /*result = result + pic_url + " " + pic_cpt + " " + tab_width + " "+ tab_height; + " " +pic_height;*/
  result = result + "\\\\n";
  var newval = document.frm1.content.value + result;
  document.frm1.content.value = newval;
};

function InsertATable()
{
  var row_cnt , col_cnt, tab_width, tab_height, result;
  row_cnt    = _parseint(document.frm1.t_row_cnt.value);
  col_cnt    = _parseint(document.frm1.t_col_cnt.value);
  tab_width  = _parseint(document.frm1.t_width.value);
  if (row_cnt == 0 || col_cnt == 0 )
  {
    alert("Число колонок и строк должо быть > 0");
    return;
  };
  if (tab_width > 100 || tab_width <= 0 )
  {
    alert("Ширина таблицы должны быть в пределах от 0 до 100");
    return;
  };
  result = "\\\\n\\\\n";
  result = result + "\\\\n";
  var i, k;
  for ( i = 0 ; i < row_cnt ; i ++)
  {
    result = result + "\\\\n";
    for ( k = 0; k < col_cnt; k ++)
    {
      result = result + "";
    };
    result = result + "\\\\n";
  };
  result = result + "\\\\n
";
  result = result+"\\\\n\\\\n";
  var newval = document.frm1.content.value + result;
  document.frm1.content.value = newval;
}

function UpdTabControls()
{

  var freeze_em = document.frm1.auto_adjust.checked;
  document.frm1.tab_height.disabled = freeze_em;
  document.frm1.tab_width.disabled  = freeze_em;  
};
~;

Т.е. все нормально ;) без паники.

О восстановлении.
Если все содержимое папки data осталось как было, то все восстаналивается простой кнопкой - регенерировать систему.

Чтоб все удалить нафиг ;) скриптом - не нужно извращаться это делается очень просто:

unlink index.dat;
 в исканиях.

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
а насчет слова hack..
« Ответ #9 : 23 Апреля 2002, 19:49:06 »
;) это просто комментарии
 в исканиях.

Оффлайн alexxmfk

  • Я здесь никогда не бываю!
  • Постоялец
  • ***
  • Сообщений: 124
  • +0/-0
  • 2
    • Просмотр профиля
?
« Ответ #10 : 24 Апреля 2002, 00:56:46 »
Чё-то я всё равно не понял откуда в одной из статей, точнее в самом конце дат файла появился такой код
Цитировать
{
  var result ;
  result = \'"\'+value+\'"\';
  return result;
};

function _parseint(val) // hack :)
{
  var result;
  result =  val * 1;
  if (isNaN(result))
  {
    result = 0
  };
  return result;
}


function InsertPicture()
{
  var pic_url, pic_caption,  pic_width, pic_height, tab_width, tab_height, t_align;
  pic_url = document.frm1.pic_url.value;
  pic_caption = document.frm1.pic_cpt.value;
  pic_width =  document.frm1.pic_width.value;
  pic_height = document.frm1.pic_height.val

А в других статьях такого нет.
И что за комментарий //hack :) ???
ICQ: 774334

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
Хакнули!
« Ответ #11 : 24 Апреля 2002, 10:10:32 »
Цитировать
Чё-то я всё равно не понял откуда в одной из статей, точнее в самом конце дат файла появился такой код

хы, а это мне и самому интересно.



ля-ля-ля то что выше