Боты не обращают внимания на re-capcha и активацию по e-mail и отключение регистрации (спам регистр

  • 60 Ответов
  • 18578 Просмотров

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

*

ivan-ved

  • Захожу иногда
  • **
  • 14
  • 0
Здравствуйте!
Уже вторую неделю бьюсь с проблемой:
Вот моя переписка с Хостером:
Боты не обращают внимания на re-capcha  и активацию по e-mail и производят спам регистрации.
Причем ни по нику, ни по e-mail их не видно в логах сайта (апатча) (Дата регистрации бота 2011-01-26 09:58:15). Мне бы понять через какую дырку они регистрируются и закрыть ее.
Ботам не помеха разные виды CAPTCHA и ограничения .htaccess. Может конечно это sql внедрение или post регистрация?
Их легко вычислить, так как спам боты не заполняют обязательные поля при регистрации (дата рождения в jomsocial)
У меня осталась только идея, установить скрипт, удаляющий из базы данных данных пользователей, у которых не заполнены нужные поля (например дата рождения).
[14:34:40] Саша: POST данные в логи не пишутся, а форма скорее всего этим методом и пользуется
такой скрипт написать можно, точнее, это всего один sql запрос будет
[14:36:29] Ваня Разин: как же понять через что они регистрируются, если POST не фиксируется?
скрипт нужен самописный, для автоматической фильтрации базы данных vio на наличие полей у пользователя
быстрее написать скрипт по фильтрации БД и поставить его в cron
А еще можно ли запретить post , если он идет не с сайта?

Потом нашел, что все-таки данные post можно фиксировать в логах апача
Вот так  http://www1.opennet.ru/tips/info/1279.shtml       или так  http://www.cyberciti.biz/faq/apache-mod_dumpio-log-post-data/    

на мем сайте используется re-capcha + AlphaRegistration + внедрение в код невидимого обязательного поля input, с проверкой в controller.php, а также ссылка для активации пользователя по e-mail. Однако спамеры обходят обе эти защиты. Что интересно, они регистрируются на несуществующие почтовые ящики, а значит получить ссылку для активации не могут, но активируются.
Я даже модифицировал генерацию кода для активации по e-mail в файле com_user / controller.php
Возможно они действуют напрямую, через какую-то уязвимость Joomla. К сожалению, логи не записывают как они это делают

Отключение регистрации в Joomla не помогает

У кого есть какие идеи на этот счет?
Помогите пожалуйста. Устал их вручную удалять
« Последнее редактирование: 09.02.2011, 18:37:30 от ivan-ved »

*

SDKiller

  • Dev Team
  • ******
  • 2734
  • 320
  • ...ergo sum
Цитировать
спам боты не заполняют обязательные поля при регистрации (дата рождения в jomsocial)
регистрируются на несуществующие почтовые ящики, а значит получить ссылку для активации не могут, но активируются.

Значит напрямую пишутся в базу, ищите изнутри

*

SinBad

  • Практически профи
  • *******
  • 1891
  • 187
  • Мнне 40 лет, мне 40 лет, ума так и не нажил!
ivan-ved, вообще если не можете установить защиту на регистрацию с каптчой,  и если боты не активируют учетку проще воспользоваться плагином kill unproved users, чем что-то там городить в кроне..
...Фет для них песни поёт. Фет не прикольный поэт - Фету никто не даёт.

*

ivan-ved

  • Захожу иногда
  • **
  • 14
  • 0
Учетку активируют, на сайт заходят
Каптчи перепробовал массу

*

deacon

  • Осваиваюсь на форуме
  • ***
  • 57
  • 2
Если не ошибаюсь, этот плагин просто убивает не подтвержденных юзверей.
Проблема как раз в том, что они обходят и каптчу и подтверждение по почте с регистрацией на несуществующую почту...
Плагин тут не поможет.

У меня та же самая проблема.
На каком-то сайте нашёл плагин от MQL инъекции. Надо попробовать
Вместо того, чтобы посвятить себя миру, человек растрачивает себя на дела. Карлос Кастанеда

*

ivan-ved

  • Захожу иногда
  • **
  • 14
  • 0
Сменил префикс баз данных и установил плагин plg_marcosinterceptor

*

SmokerMan

  • Профи
  • ********
  • 5329
  • 689
на мем сайте используется re-capcha + AlphaRegistration + внедрение в код невидимого обязательного поля input, с проверкой в controller.php
это называется с чем боролись на то и напоролись.
в этом случае - как внедряли, то и поймали.

Мне кажется, что там просто дыра в компоненте, вот они и лезут.

*

dremora

  • Тестеры
  • *****
  • 466
  • 36
У меня такая-же проблема в 1.6.0 постят в гостевую... Сквозь хапчу, хотя хапча даже для супер админа включена. Вот гадаю, вручную постят что-ли?
Всё что не анархия, то фашизм...

*

SDKiller

  • Dev Team
  • ******
  • 2734
  • 320
  • ...ergo sum
Конечно вручную )))

Про сервисы типа kolotibablo слышал?
Школьники сидят и колотят за копейки по клавиатуре, им во фрейме CAPTCHA показывают

*

ivan-ved

  • Захожу иногда
  • **
  • 14
  • 0
Получаю с разных айпишников такие логи об атаках :
Боты все еще регистрируются
** Local File Inclusion [GET:task] => ../../../../../../../../../../../../../../../../../../../../../../../../proc/self/environ\000
** Local File Inclusion [REQUEST:task] => ../../../../../../../../../../../../../../../../../../../../../../../../proc/self/environ\000

**PAGE / SERVER INFO


*REMOTE_ADDR :
216.227.214.96

*HTTP_USER_AGENT :
libwww-perl/5.805

*REQUEST_METHOD :
GET

*QUERY_STRING :
option=com_myblog&Itemid=12&task=../../../../../../../../../../../../../../../../../../../../../../../../proc/self/environ%0000



** SUPERGLOBALS DUMP (sanitized)


*$_GET DUMP
 -[option] => com_myblog
 -[Itemid] => 12
 -[task] => proc/self/environ\000


*$_POST DUMP


*$_COOKIE DUMP


*$_REQUEST DUMP
 -[option] => com_myblog
 -[Itemid] => 12
 -[task] => proc/self/environ\000

*

smart

  • Администратор
  • *******
  • 6843
  • 1297
  • снова дома...
Я бы снес нафиг com_myblog, раз он такой дырявый.

*

Vetusto

  • Осваиваюсь на форуме
  • ***
  • 64
  • 0
Проблему так и не решили? Я лично уже заманался в ручную ботов грохать. Стабильно 5-6 штук в день.

*

dimetrius

  • Осваиваюсь на форуме
  • ***
  • 158
  • 7
Давно уже поставил себе на регистрацию EasyCalcCheck PLUS
Получается типа
Цитировать
Проверка на спам: 7 минус 7 равно
с тех пор не одного бота в зарегистрированных пользователях.

*

vikup

  • Осваиваюсь на форуме
  • ***
  • 34
  • 3
Я, уже скачал, буду пробовать. Русский перевод не полный.

*

ivan-ved

  • Захожу иногда
  • **
  • 14
  • 0
EasyCalcCheck PLUS уже стоит- не помогает даже recapcha .
Есть одна надежда: постивить комюнити билдел и запретить любую регистрацию кроме как через него. Но это жутко не удобно. Так же ищу фильтр для sql базы данных, чтобы удалять пользователей не заполнивших обязательные поля. Например дату рождения

*

ivan-ved

  • Захожу иногда
  • **
  • 14
  • 0
http://joomlacode.org/gf/project/djr/frs/
пробую сейчас плагин DisableCoreRegistration с перенаправлением на JomSocial

*

Vetusto

  • Осваиваюсь на форуме
  • ***
  • 64
  • 0
Давно уже поставил себе на регистрацию EasyCalcCheck PLUS
Получается типа с тех пор не одного бота в зарегистрированных пользователях.
Тестирую! Спасибо!

*

Pinin

  • Осваиваюсь на форуме
  • ***
  • 62
  • 3
Те же проблемы - и CAPTCHA на регистрацию, и активация... Толку ноль. Посмотрел логи, но к сожалению, образования не хватает для полного понимания происходящего, посему спрошу советов гуру. Имеем:
Код
46.8.192.7 - - [09/Feb/2011:10:12:41 +0300] "GET / HTTP/1.1" 200 29806 "-" "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01" 
46.8.192.7 - - [09/Feb/2011:10:12:43 +0300] "GET /images/favicon.ico HTTP/1.1" 200 6894 "http://site.ru/" "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01"
46.8.192.7 - - [09/Feb/2011:10:12:43 +0300] "GET /templates/шаблон/css/template_css.css HTTP/1.1" 200 23845 "http://site.ru/" "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01"
46.8.192.7 - - [09/Feb/2011:10:12:43 +0300] "GET /templates/шаблон/scripts/ja.script.js HTTP/1.1" 200 4132 "http://site.ru/" "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01"
46.8.192.7 - - [09/Feb/2011:10:12:50 +0300] "GET /templates/шаблон/ja_splitmenu/ja-splitmenu.css HTTP/1.1" 200 2465 "http://site.ru/" "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01"
46.8.192.7 - - [09/Feb/2011:10:12:50 +0300] "GET /mambots/content/thumbs/thumbnailviewer.css HTTP/1.1" 200 755 "http://site.ru/" "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01"
46.8.192.7 - - [09/Feb/2011:10:12:50 +0300] "GET /mambots/content/thumbs/thumbnailviewer.js HTTP/1.1" 200 4975 "http://site.ru/" "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01"
46.8.192.7 - - [09/Feb/2011:10:12:56 +0300] "GET /templates/шаблон/images/body-bg.jpg HTTP/1.1" 200 318 "http://site.ru/" "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01"
46.8.192.7 - - [09/Feb/2011:10:12:56 +0300] "GET /templates/шаблон/images/logo.png HTTP/1.1" 200 84981 "http://site.ru/" "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01"
46.8.192.7 - - [09/Feb/2011:10:12:56 +0300] "GET /mambots/content/thumbs/loading.gif HTTP/1.1" 200 1542 "http://site.ru/" "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01"
46.8.192.7 - - [09/Feb/2011:10:12:56 +0300] "GET /templates/шаблон/images/logo2.png HTTP/1.1" 200 32574 "http://site.ru/" "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01"
46.8.192.7 - - [09/Feb/2011:10:12:56 +0300] "GET /templates/шаблон/images/logo3.png HTTP/1.1" 200 37344 "http://site.ru/" "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01"
46.8.192.7 - - [09/Feb/2011:10:12:56 +0300] "GET /templates/шаблон/images/logo41.png HTTP/1.1" 200 35125 "http://site.ru/" "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01"
46.8.192.7 - - [09/Feb/2011:10:12:57 +0300] "GET /templates/шаблон/images/mainnav-sep-hover.gif HTTP/1.1" 200 1519 "http://site.ru/" "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01"
46.8.192.7 - - [09/Feb/2011:10:12:57 +0300] "GET /templates/шаблон/images/mainnav-wrap-bg.gif HTTP/1.1" 200 263 "http://site.ru/" "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01"
46.8.192.7 - - [09/Feb/2011:10:12:58 +0300] "GET /templates/шаблон/images/mainnav-sep.gif HTTP/1.1" 200 45 "http://site.ru/" "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01"
46.8.192.7 - - [09/Feb/2011:10:12:58 +0300] "GET /templates/шаблон/images/sitetool-bg1.gif HTTP/1.1" 200 695 "http://site.ru/" "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01"
46.8.192.7 - - [09/Feb/2011:10:12:58 +0300] "GET /templates/шаблон/images/mainwrap-bg.gif HTTP/1.1" 200 250 "http://site.ru/" "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01"
46.8.192.7 - - [09/Feb/2011:10:12:58 +0300] "GET /templates/шаблон/images/pat-bg2.jpg HTTP/1.1" 200 330 "http://site.ru/" "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01"
46.8.192.7 - - [09/Feb/2011:10:12:59 +0300] "GET /templates/шаблон/images/seperator.gif HTTP/1.1" 200 810 "http://site.ru/" "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01"
46.8.192.7 - - [09/Feb/2011:10:12:59 +0300] "GET /templates/шаблон/images/v-seperator.gif HTTP/1.1" 200 44 "http://site.ru/" "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01"
46.8.192.7 - - [09/Feb/2011:10:12:59 +0300] "GET /images/Foto/02.gif HTTP/1.1" 200 5848 "http://site.ru/" "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01"
46.8.192.7 - - [09/Feb/2011:10:12:59 +0300] "GET /images/stories/Foto/0000001.gif HTTP/1.1" 200 60753 "http://site.ru/" "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01"
46.8.192.7 - - [09/Feb/2011:10:13:00 +0300] "GET /images/stories/Foto/00001.jpg HTTP/1.1" 200 19100 "http://site.ru/" "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01"
46.8.192.7 - - [09/Feb/2011:10:13:00 +0300] "GET /images/banners/carmonitor.png HTTP/1.1" 200 22334 "http://site.ru/" "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01"
46.8.192.7 - - [09/Feb/2011:10:13:00 +0300] "GET /images/Foto/20.jpg HTTP/1.1" 200 22024 "http://site.ru/" "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01"
46.8.192.7 - - [09/Feb/2011:10:13:00 +0300] "GET /modules/mod_up/js/jquery.js HTTP/1.1" 200 57254 "http://site.ru/" "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01"
46.8.192.7 - - [09/Feb/2011:10:13:00 +0300] "GET /mambots/editors/tinymce/jscripts/tiny_mce/plugins/emotions/images/smiley-wink.gif HTTP/1.1" 200 351 "http:

Т.е. какая-то гнида из Дугласа  прощупывает типичные для Joomla адреса, запускает (!) скрипты и в результате этих действий у меня сайте появляется еще один зарегенный и активированный бот (ибо очередная мертвая душа появилась как раз в период с 10:00 до 10:15)

Честно говоря, слегка обалдел, обнаружив, что скрипты можно вот так вот запускать напрямую (ну, в том смысле, что по природе скрипта самого по себе - ничего в этом удивительного нет, удивительно что Joomla это позволяет)...

Вопросы же вот какого плана:
200 - это ответ сервера на запрос, вроде так. А что означает вторая цифра после 200?
Из лога видно, где шарился этот гад. КАК и ЧТО он там мог раздобыть, чтобы обойти и капчу, и активацию и зарегиться на сайте?
Что прикрыть в системе, чтобы исключить подобное?

Мдя, посмотрел свои собственные логи и понял, что приведенное - не атака, а банальный заход на сайт... Так что похоже эти орлы в логах и не фигурируют. Как же они лезут-то?
« Последнее редактирование: 09.02.2011, 15:24:52 от Pinin »

*

dimetrius

  • Осваиваюсь на форуме
  • ***
  • 158
  • 7
Да не нужно в EasyCalcCheck PLUS включать recapcha. оставьте только логическое действие и всё. Только обязательно чтоб стояло мол скрыть от роботов, есть там такая фишечка. Ну и чтоб писало и словами и цифрами.

*

ivan-ved

  • Захожу иногда
  • **
  • 14
  • 0
Ботам на любые CAPTCHA плевать (даже если включить их все одновременно). На активацию на несуществующие почтовые ящики тоже, на плагин перенаправления регистрации на JomSocial тоже, на изменения кода файла проверок при регистрации тоже.

В логах не пишутся post запросы, включить их логирование можно плагином для апача (см. выше в теме)

*

dimetrius

  • Осваиваюсь на форуме
  • ***
  • 158
  • 7
хз как у меня тогда вышло от них избавиться, сайт в профиле

*

Pinin

  • Осваиваюсь на форуме
  • ***
  • 62
  • 3
2 dimetrius

Я бы не обольщался по одной простой причине: годами жил вообще без ничего (ни вопросов/ответов, ни капч, ни т.п.). Ну подбрасывали спам через форму обратной связи иногда. Когда спамеры достали - поставил вопрос/ответ, потом капчу... Теперь вот новая беда.
Так что затишье может означать не то, что защита у тебя стопудовая, а что просто пришла наша с ivan-ved очередь...
« Последнее редактирование: 09.02.2011, 17:56:27 от Pinin »

*

ivan-ved

  • Захожу иногда
  • **
  • 14
  • 0
Все - абзац - приехали!!  !  >:(
Выключил в настройках Joomla регистрацию пользователей на 3 часа.
Вуаля за три часа - 2 зарегистрированных спам бота!

Остается одно: поставить в крон php скрипт, который убивает или блокирует записи в sql базе jos_users , если даты регистрации и последнего входа совпадают до минуты (секунды не учитывать).
Боты выдают себя тем, что время это почти совпадает registerDate    2011-02-09 12:23:46    lastvisitDate  2011-02-09 12:23:46.
Кто подскажет как такой скрипт написать?

*

dimetrius

  • Осваиваюсь на форуме
  • ***
  • 158
  • 7
Pinin, возможно конечно, с моей стороны было бы глупо это оспаривать.
Но поставил я EasyCalcCheck PLUS только из-за того что боты постоянно регистрировались, за день по 5-15 регистраций.
После установки я стал уверен что зарегистрированные пользователи являются людьми, а не ботами. Многих просто по никам можно различить, думаю сами замечали.

ivan-ved, а что за сайт?


*

Pinin

  • Осваиваюсь на форуме
  • ***
  • 62
  • 3
2 dimetrius

Цитировать
Многих просто по никам можно различить...

Да, только так и вычисляются... Одного я не пойму - на кой черт?! Ну ладно бы спамили - так нет, не спамят, не гадят... Пока...
4.02.2011 этот праздник жизни начался. За это время - уже полсотни скальпов в админке висит.

2 ivan-ved

Сенкс за проведенное исследование и идею! Да, такой скрипт стал бы венцом этой темы...
Хотя если подумать - у меня народ сначала довольно долго вычитывает статьи (заходя на сайт без регистрации) а уж  регятся под конец, чтобы скачать что-то из файлового архива. И потом заходят редко. При таком алгоритме и они под нож попадут...
Но направление мысли интересное. Следим за темой...
« Последнее редактирование: 09.02.2011, 20:22:29 от Pinin »

*

yuri-it

  • Живу я здесь
  • ******
  • 1061
  • 37
может sh404SEF поставить у них там есть защита от некоторых видов атак
Оптимизация сайтов, удаление вирусов, настройка серверов, выгодный хостинг.
По-настоящему быстрый хостинг для Joomla : http://jehost.ru
Отзывы: http://joomlaforum.ru/index.php/topic,109288.0.html
skype: yuri-it

*

Pinin

  • Осваиваюсь на форуме
  • ***
  • 62
  • 3
Не далее как на днях поставил (из других соображений, правда) - тоже само, ничего не изменилось: как лезли, так и лезут...
Да и админка, к слову сказать, спрятана.

*

ivan-ved

  • Захожу иногда
  • **
  • 14
  • 0
Вот исходный код плагина для Joomla , который удаляет неактивированных пользователей через х дней  (Kill Unapproved Users) http://www.google.com/search?client=opera&rls=ru&q=plg_killunapprovedusers.zip&sourceid=opera&ie=utf-8&oe=utf-8
Код
<?php

/**

* @package Joomlatunes plugin collection

* @copyright Copyright (C) 2006-2008 by Dmitry V. Smirnov (http://www.joomlatune.ru)

* @license GNU/GPL, see LICENSE.php

*/



// no direct access
defined ( '_JEXEC' ) or die ( 'Restricted access' );



jimport ( 'joomla.plugin.plugin' );



/**
 * Joomla! Kill Unapproved Users plugin
 */

class plgSystemKillUnapproved extends JPlugin {

/**
* Constructor
*
* For php4 compatability we must not use the __constructor as a constructor for plugins
* because func_get_args ( void ) returns a copy of all passed arguments NOT references.
* This causes problems with cross-referencing necessary for the observer design pattern.
*
* @param object $subject The object to observe
* @param array   $config  An array that holds the plugin configuration
* @since 1.0
*/

function plgSystemKillUnapproved(& $subject, $config) {

parent::__construct ( $subject, $config );

}



function onAfterInitialise() {

$days = $this->params->get ( 'days' );

$excludes = $this->params->get('excludes',0);



$db = & JFactory::getDBO ();



$query = "SELECT u.id AS uid, a.id AS aid FROM #__users AS u"

. "\n LEFT JOIN #__core_acl_aro AS a ON a.value = u.id"

. "\n WHERE DATE_ADD(u.registerDate, INTERVAL $days DAY) < NOW() AND block = 1 AND u.gid NOT IN(23,24,25) AND u.id NOT IN($excludes)";

$db->setQuery ( $query );

$rows = $db->loadObjectList ();



if (count( $rows ) > 0) {

foreach ($rows as $row){



$uid = $row->uid;

$aid = $row->aid;



$query = "DELETE FROM #__users WHERE id = $uid";

$db->setQuery ( $query );

$db->Query ();



$query = "DELETE FROM #__core_acl_aro WHERE id = $aid";

$db->setQuery ( $query );

$db->Query ();



$query = "DELETE FROM #__core_acl_groups_aro_map WHERE aro_id = $aid";

$db->setQuery ( $query );

$db->Query ();

}

unset ($row);

}

}

}
Осталось его приспособить под нашу задачу
сравнить две даты: в jos_users = registerDate  и  lastvisitDate  до минут, и если даты совпадают, удалять пользователя.
Кто сообразит как сделать?
« Последнее редактирование: 09.02.2011, 21:17:49 от ivan-ved »

*

Pinin

  • Осваиваюсь на форуме
  • ***
  • 62
  • 3
Пытаюсь сообразить: последний визит - это что? Выход с сайта (сразу после регистрации)? Или заход на него зарегенным? Надеюсь, что первое.
А дата регистрации отсчитывается от момента заполнения регистрационной формы или от активации аккаунта через мыло?
Эти вопросы - в беспокойстве за людей, не за ботов.