Взлом сайта через redirect

#16 7 февраля 2016 в 13:16


Во frontend компонента files

  1. if ($do=='redirect'){
  2. // Проверяем откуда запрос
  3. if(!isset($_SERVER['HTTP_REFERER']) || stripos($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST']) === false){
  4. cmsCore::error404();
  5. cmsCore::halt();
  6. }
  7. ........................................

Pasha

А если не 404 делать, а перенаправить на себя куда-то?
#17 7 февраля 2016 в 13:37


А может их использовать?

Sonat

Отличный совет. Подобрать партнерку/оффер по теме магазина и перенаправлять в свой карман )

Извините за громкое название темы, но по ходу так оно и случилось.

Dorimen

Таки громкое, так как это всего редирект — любой может прописать в адресной строке вашсайт.ру/redirect?url=свойсат.ру

Тут как бы есть обход, можно проверять от куда идет юзер — если с вашего домена, то редиректим, если с другого домена или без реферера то либо сливать на партнерки, либо отсылать на страницу с уведомлением или на 404.

Что бы не лезть в системные файлы, можно в htaccess прописать перенаправление через отдельную страницу на которой и будет выполнятся проверка по HTTP Referer, например:

RewriteCond %{REQUEST_URI} ^/redirect?url=http://(.*) [NC]
RewriteRule ^(.*)$ mysite.ru/myredirect.php?url=http://%1 [R=302,L]

создать файл myredirect.php и в нем выполнять проверку.

reload
#18 7 февраля 2016 в 13:38

не лучше проверку в отдельном файле прописать?

А зачем?

А если не 404 делать, а перенаправить на себя куда-то?

cmsCore::redirect('адрес');
#19 7 февраля 2016 в 16:32



Во frontend компонента files

  1. if ($do=='redirect'){
  2. // Проверяем откуда запрос
  3. if(!isset($_SERVER['HTTP_REFERER']) || stripos($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST']) === false){
  4. cmsCore::error404();
  5. cmsCore::halt();
  6. }
  7. ........................................

Pasha

А если не 404 делать, а перенаправить на себя куда-то?

Dorimen

У меня InstantCMS 2.4.0, а не 1.10.*. И за редирект здесь отвечает controllers/redirect. Здесь что написать?
#20 9 февраля 2016 в 18:07
.
#21 9 февраля 2016 в 20:31

А зачем?

Pasha

Не вмешиваемся в код "ядро" + можно на отдельной странице задать время перенаправления, можно сделать просто предупреждение с ссылкой без редиректа, можно вывести рекламу, можно задать дополнительные условия для перенаправлений по определенным правилам, и много чего еще можно — и это все будет работать не зависимо от движка и версии!)
#22 10 февраля 2016 в 22:50

Не вмешиваемся в код "ядро" + можно на отдельной странице задать время перенаправления, можно сделать просто предупреждение с ссылкой без редиректа, можно вывести рекламу, можно задать дополнительные условия для перенаправлений по определенным правилам, и много чего еще можно — и это все будет работать не зависимо от движка и версии!)

reload


RewriteCond %{REQUEST_URI} ^/redirect?url=http://(.*) [NC]
RewriteRule ^(.*)$ mysite.ru/myredirect.php?url=http://%1 [R=302,L]

создать файл myredirect.php и в нем выполнять проверку.

Какая же проверка должна быть в файле myredirect.php? Хотя бы базовая.
#23 15 февраля 2016 в 13:55

Какая же проверка должна быть в файле myredirect.php? Хотя бы базовая.

Если кто решил для двойки, подскажите как.
#24 12 июня 2016 в 12:50


Не вмешиваемся в код "ядро" + можно на отдельной странице задать время перенаправления, можно сделать просто предупреждение с ссылкой без редиректа, можно вывести рекламу, можно задать дополнительные условия для перенаправлений по определенным правилам, и много чего еще можно — и это все будет работать не зависимо от движка и версии!)

reload


RewriteCond %{REQUEST_URI} ^/redirect?url=http://(.*) [NC]
RewriteRule ^(.*)$ mysite.ru/myredirect.php?url=http://%1 [R=302,L]

создать файл myredirect.php и в нем выполнять проверку.

Какая же проверка должна быть в файле myredirect.php? Хотя бы базовая.

Dorimen

Может кто составлял этот файл для 2? Вопрос актуален!
#25 12 июня 2016 в 13:11
Недавно тоже получил уведомления от Яндекс, о том что на сайте обнаружен вредоносный код
Иллюстрация
Скачал весь сайт + БД искал везде, но не нашел ссылку
Пока закрыл в robots.txt страницу редиректа
#26 12 июня 2016 в 16:23
Evanescence, и я. Ссылки нет на сайте. Ссылка стоит на другом сайте на ваш, и в нее дописан редирект. В 2ке до сих пор нет проверки реферера…
#27 12 июня 2016 в 16:31
У себя в файле system/controllers/redirect/frontend.php после строки
  1. $url = $this->request->get('url');
добавил
  1. if(!isset($_SERVER['HTTP_REFERER']) || stripos($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST']) === false){
  2. cmsCore::error404();
  3. }
теперь хитрецы, ставящие ссылки на свой сайт через наш редирект идут в 404…
#28 12 июня 2016 в 16:41

хитрецы, ставящие ссылки на свой сайт через наш редирект идут в 404

Zau4man
у меня почему-то не сработал Ваш метод...

Я временно закомментировал все строки в этом файле. Правда, теперь все ссылки через редирект не работают. Да и ладно. Яндекс с Гуглом пометили сайт, как опасный из-за этих редиректов. Был трафик под 200 в сутки, упал до 10-15. Лучше с трафиком и без ссылок.
#29 13 июня 2016 в 07:17


Недавно тоже получил уведомления от Яндекс, о том что на сайте обнаружен вредоносный код
Иллюстрация
Скачал весь сайт + БД искал везде, но не нашел ссылку
Пока закрыл в robots.txt страницу редиректа

Evanescence

Кстати у меня редирект на этот же сайт.
#30 13 июня 2016 в 07:28


У себя в файле system/controllers/redirect/frontend.php после строки

  1. $url = $this->request->get('url');
добавил
  1. if(!isset($_SERVER['HTTP_REFERER']) || stripos($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST']) === false){
  2. cmsCore::error404();
  3. }
теперь хитрецы, ставящие ссылки на свой сайт через наш редирект идут в 404...

Zau4man

спасибо, сработало
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.