ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

29.10.2008, 01:45
|
|
Постоянный
Регистрация: 24.05.2008
Сообщений: 589
Провел на форуме: 3629857
Репутация:
504
|
|
хм.. статья вроде называется "Пишем спам-бот/авторассыльщик/брутфорс на Php + cURL" вот только что то я не увидел тут ни спам бота, ни авторассыльщика, ни брутфорсера... имхо, просто ман по курлу...
|
|
|

06.11.2008, 23:10
|
|
Новичок
Регистрация: 27.10.2008
Сообщений: 14
Провел на форуме: 13381
Репутация:
0
|
|
Еще вопросик 1.
Код:
HTTP/1.1 200 OK
Date: Thu, 06 Nov 2008 19:05:51 GMT
Server: Apache
Set-Cookie: wongsession=3d356bc2c9511305c17d0ad40d654b97; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: user_name=bobpbI; expires=Fri, 06-Nov-2009 19:05:51 GMT; path=/
Set-Cookie: user_hash=072bebc157b072ce7d075be7ea5f9608; expires=Fri, 06-Nov-2009 19:05:51 GMT; path=/
Set-Cookie: key_id=Ym9icGJJ; expires=Fri, 06-Nov-2009 19:05:51 GMT; path=/
Set-Cookie: user_name=bobpbI; expires=Fri, 06-Nov-2009 19:05:51 GMT; path=/
Set-Cookie: user_hash=072bebc157b072ce7d075be7ea5f9608; expires=Fri, 06-Nov-2009 19:05:51 GMT; path=/
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8
вот такой заголовок возвращает, когда автарезировался
Код:
Set-Cookie: user_name=bobpbI; expires=Fri, 06-Nov-2009 19:05:51 GMT; path=/
Set-Cookie: user_hash=072bebc157b072ce7d075be7ea5f9608; expires=Fri, 06-Nov-2009 19:05:51 GMT; path=/
Set-Cookie: key_id=Ym9icGJJ; expires=Fri, 06-Nov-2009 19:05:51 GMT; path=/
Set-Cookie: user_name=bobpbI; expires=Fri, 06-Nov-2009 19:05:51 GMT; path=/
Set-Cookie: user_hash=072bebc157b072ce7d075be7ea5f9608; expires=Fri, 06-Nov-2009 19:05:51 GMT; path=/
Надо все куки выдергивать?Или только эту?
PHP код:
$sess_cookie=substr($result, strpos($result, "wongsession=")+12, 32);
Потому что проблемма такая. Авторизировался, а при переходе на другую страницу пишет что сессия закончена =(
Подскажите пожалуйста.
|
|
|

07.11.2008, 09:27
|
|
Участник форума
Регистрация: 28.07.2008
Сообщений: 158
Провел на форуме: 728470
Репутация:
115
|
|
Попробуйте поставить все куки, которые выдал сервер. Наверняка сайт ставит их не просто так.
|
|
|

07.11.2008, 12:07
|
|
Познавший АНТИЧАТ
Регистрация: 01.06.2008
Сообщений: 1,047
Провел на форуме: 5321514
Репутация:
3313
|
|
PHP код:
function pregCookie($headers)
{
preg_match_all('#Set-cookie: (.*;)#UiS',$headers,$headers);
return implode('',$headers['1']);
}
Парсер всех кук из заголовков(возвращает string). Используйте.
|
|
|

07.11.2008, 13:04
|
|
Новичок
Регистрация: 27.10.2008
Сообщений: 14
Провел на форуме: 13381
Репутация:
0
|
|
Спасибо, только я несовсем тогда понимаю.
Если пользоваться функцией substr, то мы вырезаем сам код
f54aac52317d9697f745548af2dabe87
а если вашей функцией пользоваться, то в таком выде
wongsession=f54aac52317d9697f745548af2dabe87;
усли я правильно понял, то использовать так надо?
curl_setopt($ch, CURLOPT_COOKIE, pregCookie($result));
В любом случае пишет что ваша сессия закончена. =(
|
|
|

07.11.2008, 13:23
|
|
Новичок
Регистрация: 27.10.2008
Сообщений: 14
Провел на форуме: 13381
Репутация:
0
|
|
PHP код:
function pregCookie($headers)
{
preg_match_all('#Set-cookie: (.*;)#UiS',$headers,$headers);
return implode('',$headers['1']);
}
$url = "http://www.mister-wong.ru/index.php?action=login";
$ch = curl_init();
$post="iid=&user_name=login123&user_password=123123&login=%E2%EE%E9%F2%E8";
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIEFILE, $_SERVER['DOCUMENT_ROOT'].'/cookie.txt');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$result = curl_exec($ch);
$hash_hidden=substr($result, strpos($result, 'type="hidden" name="hash" value="')+33,32);
$recommended_bmid_hidden=substr($result, strpos($result, 'type="hidden" name="recommended_bmid" id="bookmarkRecommend_bmid" value="')+33,74);
$utf8check_bmid_hidden="ö";
$check_hidden="recommend";
$post='hash=$hash_hidden&recommended_bmid=$recommended_bmid_hidden&utf8-check_bmid=$utf8check_bmid_hidden&check=$check_hidden';
$sess_cookie=pregCookie($result);
//сформировали строку пост данных состоящую из пар поле=>значение разделенных амперсандом (при необходимости строку надо url-кодировать)
curl_setopt($ch, CURLOPT_URL, "http://www.mister-wong.ru/add_url/"); //адрес на который шлем запрос (выдираем значение из action нашей формы)
curl_setopt($ch, CURLOPT_HEADER, 1); //дальше мы все уже видели
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// curl_setopt($ch, CURLOPT_COOKIEFILE,$sess_cookie);
curl_setopt($ch, CURLOPT_COOKIE, $sess_cookie); //а вот тут внимательнее! не забываем показать серверу наши, полученные ранее кукисы
curl_setopt($ch, CURLOPT_POST, 1); //говорим что у нас есть POST данные для сервера
curl_setopt($ch, CURLOPT_POSTFIELDS, $post); //указываем на наши POST данные
$result = curl_exec($ch); //выполняем запрос на сервер
//echo $sess_cookie;
echo $result;
Может что не так делаю? Регистрация же проходит
|
|
|

15.02.2009, 18:05
|
|
Познавший АНТИЧАТ
Регистрация: 27.08.2007
Сообщений: 1,107
Провел на форуме: 5386281
Репутация:
1177
|
|
3me9I, так попробуй
PHP код:
curl_setopt($ch, CURLOPT_COOKIEFILE, "./cook");
curl_setopt($ch, CURLOPT_COOKIEJAR, "./cook");
}{0TT@БЬ)Ч_68, вот тебе. Это не спам бот, а просто автореггер (стебался над теми идиотами). Спам бот работает абсалютно так же. Вот:
PHP код:
<?php
set_time_limit(0);
$limit = 10000;
for ($i = 1; $i < $limit; $i++){
$ua = 'User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Widows NT)';
$url = 'http://traff2money.info/';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$res = curl_exec($ch);
curl_setopt($ch, CURLOPT_URL, "http://traff2money.info/reg.php");
curl_setopt($ch, CURLOPT_REFERER, "http://traff2money.info/");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$res = curl_exec($ch);
curl_close($ch);
preg_match('#http:\/\/(.*?)<br>#', $res, $link);
$a = $link[1];
$fp = fopen("log.php","a");
fwrite($fp, "$a\r\n");
fclose($fp);
}
?>
Только в спамерах просто еще постзапросы присутсвуют =\
|
|
|

05.07.2009, 12:11
|
|
Новичок
Регистрация: 03.07.2009
Сообщений: 2
Провел на форуме: 552
Репутация:
0
|
|
Народ, спасибо всем за инфо, которую здесь прочитал.
Написал такой код (на оптимальность не претендует, еще будет оптимизироваться):
PHP код:
<?
$key = 1;
function geturl($url,$postdata=0,$header=0,$additional_key=0) {
$poststr="";
if ($postdata)
while (list($name,$value)=each($postdata)){
if (strlen($poststr)>0)
$poststr.="&";
$poststr.=$name."=".urlencode($value);
}
// инициализация сеанса
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
// Формируем заголовок
if ($header){
curl_setopt($ch, CURLOPT_HEADER, 1);
// Помним кукисы
$user_cookie_file = $_SERVER['DOCUMENT_ROOT'].'/poster/cookies.txt';
curl_setopt($ch, CURLOPT_COOKIEFILE, $user_cookie_file);
curl_setopt($ch, CURLOPT_COOKIEJAR, $user_cookie_file);
curl_setopt($ch, CURLOPT_NOBODY, 1);
}else{
curl_setopt($ch, CURLOPT_HEADER, 0);
}
if ($postdata){
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
$user_cookie_file = $_SERVER['DOCUMENT_ROOT'].'/poster/cookies.txt';
curl_setopt($ch, CURLOPT_COOKIEFILE, $user_cookie_file);
curl_setopt($ch, CURLOPT_COOKIEJAR, $user_cookie_file);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $poststr);
}
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$res = curl_exec($ch);
if ($additional_key){
/* Скрытое поле token для memori */
if( preg_match('/name=\"token\" value=\"(.+?)\"/', $res, $out) ){
$res = $out[1];
}
}
curl_close($ch);
return $res;
}
if (!isset($_GET['go'])) {
// Собираем заголовок
$header = geturl('http://memori.ru/registration/',0,1);
// Берем значение скрытого поля
$token = geturl('http://memori.ru/registration/',0,0,1);
// Берем капчу
$captcha = geturl('http://memori.ru/captcha/',$postdata);
$im = imagecreatefromstring($captcha);
$pic_name = time().'_'.$key.'.jpg';
imagejpeg($im, $pic_name, 100);
// Сохраняем картинку у себя (подобие антикапчи)
$postdata = array(
'method' => 'base64',
'key' => $key,
'body' => $pic_name,
'ext' => 'png'
);
$rev = geturl("http://localhost/poster/in.php",$postdata); // регистрируем капчу у себя в системе
if (substr($rev,0,2)=='ok'){
//получаем id капчи в системе
$anti_captcha_id = substr($rev,3);
}else{
echo "Upload ERROR";
echo $rev;
exit;
}
echo '<img src="pic.php?id='.$anti_captcha_id.'">';
echo '<br /><form method="get"><input type="hidden" name="go" value="go"><input type="hidden" name="token" value="'.$token.'">Капча: <input type="text" name="captcha"><br />
Сессия: <input type="text" name="bobrologin" value="'.$session.'"><br /><input type="submit" value="Ну, была не была!"></form>';
} else {
echo $captcha = $_GET['captcha'];
echo '<br />';
echo $session = $_GET['session'];
echo '<br />';
echo $token = $_GET['token'];
echo '<br />';
$postdata = array(
"login" => "testerqwerty23",
"email" => "mainvoid3@mail.ru",
"inviter" => "",
"token" => $token,
"captcha" => $captcha,
"password" => "123456",
"password_confirm" => "123456",
);
echo '<pre>'; print_r($postdata); echo '</pre>';
$recdata = geturl('http://memori.ru/registration/',$postdata);
echo '<base href="http://memori.ru">';
echo $recdata;
if (is_file('./cookies.txt')) unlink('./cookies.txt');
}
?>
на всякий случай
in.php:
<?php
//echo '<pre>'; print_r($_POST); echo '</pre>';
$filename = 'user_'.$_POST['key'].'.txt';
if (is_file($filename)) unlink($filename);
$status = 'ok';
if ($status == 'ok') {
$id = 1;
$handle = fopen($filename, 'a');
if (is_writable($filename)) {
fwrite($handle, $id.'|'.$_POST['body']);
}
fclose($handle);
echo $status.'|'.$_POST['body'];
}
?>
pic.php:
<?
header('Content-Type: image/jpeg');
$im = imagecreatefromjpeg($_GET['id']);
imagejpeg($im, NULL, 100);
?>
Но форма на мемори остается глухой к такому запросу, т.е. не выводится ни сообщений об ошибках, ни об удачном завершении регистрации. На некоторых других формах такой скрипт отрабатывал.
Кто нибудь может подсказать в чем дело?
|
|
|

05.07.2009, 12:24
|
|
Познавший АНТИЧАТ
Регистрация: 09.06.2006
Сообщений: 1,359
Провел на форуме: 5301021
Репутация:
1879
|
|
gisty +1. Тема ваши вопросы по php...
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|