X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

3 страниц V   1 2 3 >
Открыть тему
Тема закрыта
> Пишем спамилку за 5 минут
Jeck
Jeck
Topic Starter сообщение 19.11.2008, 0:19; Ответить: Jeck
Сообщение #1


Для начала моральная отмазка:
В последние время участились нападки в сторону так называемых "спамеров блогов/форумов". Судя по всему орут — криворукие чайники, которые и думать не думали что их любимый бложек может оказаться под ударом всякой нечисти, вроде темных оптимизаторов. Так вот специально для таких чайников (честное слово только для них) я покажу как за пять минут можно написать php скрипт спамилку для блогов на WP.

И так преступим. Для начала нам понадобиться какая то хреновина для эмуляции браузера, для этого мы возьмем мою обвертку curl — http://jeck.ru/tools/http.class.html (работает только на php5 учтите это).

Краткая документация.
$http = new http; // создать экземпляр класса.
$page = $http->GET('http://example.com'); // получить страницу http://example.com в переменную $page
$page = $http->POST('http://example.com',$postdata); // Получить результат POST запроса на http://example.com в переменную $page в $postdata - параметры запроса (как их узнать - дальше)
$url = http::fixURL('http://example.com','./action.php'); // Преобразовывает относительные URL`ы в абсолютные (первый параметр - базовый URL, второй - относительный путь)


Пока что этого хватит. Идем дальше, теперь нам надо узнать какие поля надо отправить в POST запросе что бы получился комментарий. Можно конечно открыть код страницы найти там тег <form> и дальше заниматься ручным парсингом HTML. А можно просто воспользоваться моим сервисом (http://jeck.ru/tools/FormsParser/) вставить туда какой нибудь стандартный блог (например http://www.houselux.com/?p=1) и получить массив полей.

$postdata['author'] = '';
$postdata['email'] = '';
$postdata['url'] = '';
$postdata['submit'] = 'Отправить';
$postdata['comment_post_ID'] = '1';
$postdata['comment'] = '';


И тут то нас ждет небольшой облом. В форме присутствует динамическое поле которое равно ID записи. Конечно можно палить наугад скажем с ID=1 как здесь, но я думаю URL из списка для спама будут вести на конкретные, существующие записи и зря терять информацию не следует. Так что давайте как раз этим и займемся, а заодно напишем общий каркас приложения.

CODE

<?
// Зачем прерываться — убираем таймаут на выполнение
set_time_limit(0);
// Подключаем http класс
include 'http.class.php';

// Этой строкой мы загружаем URL`ы из файла urls.txt и обрезаем символы перевода строк
$urls = array_map('rtrim',file('./urls.txt'));

foreach ($urls as $url) {
// создаем новый экземпляр http класса
$http = new http;
// Получаем страницу с формой
$page = $http->GET($url);
// Проверяем есть ли на странице ID поста
if (preg_match('#name="comment_post_ID" value="([0-9]+)"#i',$page,$match)) {
$post_id = $match[1];
// Если все нормально и ID присутствует формируем URL action формы
$action = http::fixURL($url,'/wp-comments-post.php');
// Тут мы будем спамить $url
}

unset($http);
}

?>


И так сейчас у нас уже есть скрипт который бегает по списку URL`ов из urls.txt и дергает с каждого из них ID поста. Теперь осталось как говориться добавить не много магии — вставляем наши поля, заполняем своими данными и отправляем POST запрос.

CODE

<?
// Зачем прерываться — убираем таймаут на выполнение
set_time_limit(0);
// Подключаем http класс
include 'http.class.php';

// Этой строкой мы загружаем URL`ы из файла urls.txt и обрезаем символы перевода строк
$urls = array_map('rtrim',file('./urls.txt'));

foreach ($urls as $url) {
// создаем новый экземпляр http класса
$http = new http;
// Получаем страницу с формой
$page = $http->GET($url);
// Проверяем есть ли на странице ID поста
if (preg_match('#name="comment_post_ID" value="([0-9]+)"#i',$page,$match)) {
$post_id = $match[1];
// Если все нормально и ID присутствует формируем URL action формы
$action = http::fixURL($url,'/wp-comments-post.php');

// Заполняем поля своей информацией
$postdata['author'] = 'BigFatSpamer';
$postdata['email'] = 'bigfatspamer@spam.com';
$postdata['url'] = 'http://fatspamers.com';
$postdata['submit'] = 'Отправить';
$postdata['comment_post_ID'] = $post_id;
$postdata['comment'] = 'The matrix has you...';

// И отправляем запрос
$http->POST($action,$postdata);
}

unset($http);
}

?>


Ну вот кто после этого может обвинять спамеров в чем то? Это все равно что обвинять человека нашедшего под своей дверью кошелек с деньгами в краже.

P. S. Всем мега гениям — я знаю что это очень простой/не универсальный, но не стану же я тут что то серьёзное постить просто так.
P. S. S. Кто посмеет растащить данный текст без ссылки на Jeck.ru — заспамлю нафиг.


--------------------
Jeck.ru


Поблагодарили: (3)
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
centurion
centurion
сообщение 19.11.2008, 1:13; Ответить: centurion
Сообщение #2


Хммм... Какой умный smile.gif
Я от этого далек blink.gif
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Jeck
Jeck
Topic Starter сообщение 19.11.2008, 1:26; Ответить: Jeck
Сообщение #3


>Хммм... Какой умный

А то biggrin.gif в следующий раз пожалуй напишу как расшифровать простенькую каптчу.


--------------------
Jeck.ru
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Nisan
Nisan
сообщение 19.11.2008, 1:46; Ответить: Nisan
Сообщение #4


(Jeck @ 19.11.2008, 0:26) *
>Хммм... Какой умный

А то biggrin.gif в следующий раз пожалуй напишу как расшифровать простенькую каптчу.


Оо! )) Всегда было интересно как они распознаются! rolleyes.gif


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
inquis
inquis
сообщение 19.11.2008, 1:59; Ответить: inquis
Сообщение #5


(Nisan @ 18.11.2008, 23:46) *
Оо! )) Всегда было интересно как они распознаются! rolleyes.gif

_http://www.xakep.ru/post/41033/default.asp?page=2
Пример муторный, но рабочий))


--------------------


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
UncleM
UncleM
сообщение 19.11.2008, 2:16; Ответить: UncleM
Сообщение #6


(Jeck @ 18.11.2008, 16:49) *
В последние время участились нападки в сторону так называемых "спамеров блогов/форумов". Судя по всему орут — криворукие чайники, которые и думать не думали что их любимый бложек может оказаться под ударом всякой нечисти, вроде темных оптимизаторов. Так вот специально для таких чайников (честное слово только для них) я покажу как за пять минут можно написать php скрипт спамилку для блогов на WP.

Это отмазка для чайников, тема из серии "смотри как я умею" biggrin.gif

И какая от этого польза оптимизатору? Если учесть, что это СЕО форум, то для большинства это просто иероглифы, но как их использовать вы объяснили и внесли свою лепту в развитие спама. wink.gif


--------------------
Осторожно! Вы можете получить огромный заряд позитива!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Lordie
Lordie
сообщение 19.11.2008, 4:18; Ответить: Lordie
Сообщение #7


inquis, глянул один проф.ресурс, посвященный этим распознаваниям капч... порадовало, что написанную мной на коленке за полчаса причисляют к разряду среднезащищенных от автораспознавания)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
youlkin
youlkin
сообщение 19.11.2008, 5:42; Ответить: youlkin
Сообщение #8


(UncleM @ 19.11.2008, 2:16) *
Это отмазка для чайников, тема из серии "смотри как я умею" biggrin.gif

И какая от этого польза оптимизатору? Если учесть, что это СЕО форум, то для большинства это просто иероглифы, но как их использовать вы объяснили и внесли свою лепту в развитие спама. wink.gif


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

p.s. спам плох только для тех, кто не умеет, не хочет, ленится с ним бороться.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
UncleM
UncleM
сообщение 19.11.2008, 6:32; Ответить: UncleM
Сообщение #9


Для тех кто хочет бороться с такими скриптами, просто добавьте еще одно поле, которое обязательно для заполнения.
Например, ответ на вопрос "Ты хто? Бот шо ли? Да или нет?".
У меня после такого простого шага отсеялись практически все спамеры-боты.


--------------------
Осторожно! Вы можете получить огромный заряд позитива!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Jeck
Jeck
Topic Starter сообщение 19.11.2008, 13:16; Ответить: Jeck
Сообщение #10


UncleM, я тут не опубликовал класс парсера форм, но это не значит что его нет. Смотри как легко обходится защита с доп полем.
...
        $http = new http;
        $parser = new FormParser;
        $page = $http->GET($url);
        $parser->parseForms($page);
        $postdata = $parser->getPostdata(array("comment_post_ID","comment"));
        if ($postdata != false) {
            $action = http::fixURL($http->current_url,$parser->action);
            $postdata = array_merge($postdata,$data);
            $http->POST($action,$postdata);
        }
...


--------------------
Jeck.ru
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
3 страниц V   1 2 3 >
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Быстрый старт - Всё о накрутке пф за 7 минут
6 waterworld 2374 13.2.2024, 20:08
автор: Думающий
Открытая тема (нет новых ответов) Простой способ заработать на пиво за 5 минут
Халява для граждан РФ
17 MaxChemist 3146 15.9.2022, 17:42
автор: MaxChemist
Открытая тема (нет новых ответов) Несложная работа на 10 минут - копипаст
Размещение готовых отзывов
3 tube 2338 30.1.2017, 17:39
автор: PureCorp
Открытая тема (нет новых ответов) Команда seo-копирайтеров: пишем много и качественно (адекватные цены)
0 Инна26 1308 16.1.2017, 13:34
автор: Инна26
Открытая тема (нет новых ответов) Партнёрка от казино «Рамзес» - выплаты по запросу в течение 5 минут
5 CasinoRamses 5688 2.1.2015, 18:39
автор: -Casino-Ramses-


 



RSS Текстовая версия Сейчас: 23.4.2024, 12:48
Дизайн