Показать сообщение отдельно

  #4  
Старый 12.07.2009, 23:13
_gr34t
Участник форума
Регистрация: 26.10.2008
Сообщений: 106
С нами: 9231812

Репутация: 40
По умолчанию

Написал скрипт для авторегистрации на _http://www.volchat.ru/forum/
Обход капчи - ручной ввод. Но при попытке зарегистрировать юзера пишет, что введённый код не совпадает с проверочным. Кто знает в чём дело?
PHP код:

<?php

//VARs 
$host "www.volchat.ru"
$path "/forum/profile.php?mode=register"
$p_to_pics "/forum/profile_pic.php?l="
$post_path "/forum/profile.php"

//FUNCTIONs 
function get_something($host$path$cookie FALSE) { 
    
$data "GET ".$path." HTTP/1.1\r\n"
    
$data .= "Host: ".$host."\r\n"
    
$data .= "User-Agent: Opera/9.63 (Windows NT 5.1; U; ru) Presto/2.1.1\r\n"
    
$data .= "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif\r\n,  image/x-xbitmap, */*;q=0.1\r\n"
    
$data .= "Accept-Language: ru-RU,ru;q=0.9,en;q=0.8\r\n"
    
$data .= "Accept-Encoding: gzip,identity\r\n"
    
$data .= "Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1,UCS-2;q=0, UCS-4;q=0, UTF-1;q=0\r\n"
    
$data .= "TE: deflate, gzip, chunked, identity, trailers\r\n"
    if (
$cookie) { 
//        $data .= "Referer: http://".$host.$path."\r\n"; 
        
$data .= "Cookie: ".$cookie."\r\n"
    } 
    
$data .= "Connection: close;\r\n\r\n"

    
$t fsockopen($host80$errno$error30) or die ("Ошибка № ".$errno.": ".$error); 
    
fputs($t$data); 
    while(!
feof($t)) {$output .= fgets($t1024);} 
    return 
$output


function 
get_cookies($page) { 
    
$headers substr($page0strpos($page"\r\n\r\n")); 
    
$fragment1 substr($headersstrpos($headers"Set-Cookie: ")); 
    
$cookie1 str_replace("Set-Cookie: """substr($fragment10strpos($fragment1"; "))); 
    
$fragment2 str_replace("Set-Cookie: """substr($fragment1strpos($fragment1"\r\n"))); 
    
$cookie2 str_replace("\r\n"""substr($fragment20strpos($fragment2"; "))); 
    
$cooks $cookie1."; ".$cookie2
    return 
$cooks


function 
show_capcha($host$path$cookie) { 
    for(
$i=0$i<8$i++) { 
        
$pic_with_hs get_something($host$path.$i$cookie); 
        
$gif substr($pic_with_hsstrpos($pic_with_hs"\r\n\r\n")+4); 
        
file_put_contents("{$i}.gif"$gif); 
        
$capcha .= "<img src='{$i}.gif'>"
    } 
    return 
$capcha


//PROGRAM 
$page get_something($host$path);                      //---get page whith cookies 
$cookie get_cookies($page);                             //---get cookies 
$sid substr($pagestrpos($page"phpbb2mysql_sid"));   //---|get sid 
$sid substr($sidstrpos($sid"=")+132);             //---| 
echo show_capcha($host$p_to_pics$cookie);             //---get captcha! 
?> 
<form method='get' action=''> 
Капча: <input type='text' name='cap'> 
<input type='Submit' name='go' value='go'> 
</form> 
<?php
if (isset($_GET['go']) && isset($_GET['cap'])) { 
    
$aya "абвгдежзиклмнопрстуфхцчшщъыьэюяАБВГДЕЖЗИКЛМНОПРСТУ  ФХЦЧШЩЪЫЬЭЮЯ"
//    $az = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWX  YZ"; 
    
for($i=0$i<9$i++) { 
        
$x rand(0strlen($aya)-1); 
        
$nm .= $aya[$x]; 
        
$mail .= rand(09); 
//        $y = rand(0, strlen($az)-1); 
//        $pass .= $az[$y]; 
    

    
$pass "8967trtr1"

    
$reginf "username=".$nm."&user_email=".$mail."@mail.ru&user_email_confirm=".$mail."@mail.ru&robot_confirm=".$_GET['cap']."&new_password=".$pass."&password_confirm=".$pass."&user_from=Z-city&user_gender=1&agree_rules=1&submit=Отправить&mode=register&u=-1&sid=".$sid."&forum_rules_present=1"
    
$post "POST ".$post_path." HTTP/1.1\r\n"
    
$post .= "Host: ".$host."\r\n"
    
$post .= "User-Agent: Opera/9.63 (Windows NT 5.1; U; ru) Presto/2.1.1\r\n"
    
$post .= "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif\r\n,  image/x-xbitmap, */*;q=0.1\r\n"
    
$post .= "Accept-Language: ru-RU,ru;q=0.9,en;q=0.8\r\n"
    
$post .= "Accept-Encoding: gzip,identity\r\n"
    
$post .= "Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1,UCS-2;q=0, UCS-4;q=0, UTF-1;q=0\r\n"
    
$post .= "Cookie: ".$cookie."\r\n"
    
$post .= "Content-Type: application/x-www-form-urlencoded\r\n"
    
$post .= "Content-Length: ".strlen($reginf)."\r\n"
    
$post .= "Connection: close\r\n\r\n"
    
$post .= $reginf
    
$tr fsockopen($host80$errno$error30) or die ("ERROR!"); 
    
fputs($tr$post); 
    while(!
feof($tr)) {echo fread($tr1024);} 
    
$string $nm." registered with password '".$pass."' на адрес ".$mail."@mail.ru\r\n"
    
$log fopen("reg.log"a) or die ("Не удаётся открыть файл"); 
    
fwrite($log$string) or die ("Не удаётся записать в файл"); 
    
fclose($log); 

?>

Последний раз редактировалось _gr34t; 12.07.2009 в 23:16..
 
Ответить с цитированием