взлом капчи яндекса/

Discussion in 'PHP' started by Serg0007, 27 Aug 2009.

  1. Serg0007

    Serg0007 New Member

    Joined:
    13 Mar 2009
    Messages:
    10
    Likes Received:
    1
    Reputations:
    0
    Собсно разбираюсь с курлом и хочу сделать парсер яндекса и появилась проблема с обходом капчи.

    на странице с капчей вот такая вот форма:
    HTML:
    <form action="/send.xml" method="post">
    <input type="hidden" name="key" value="85a5da55b9ef9c640cddb52f56ac8822">
    <input type="hidden" name="retpath" value="http://yandex.ru/yandsearch?numdoc=50&amp;text=текст+запроса2&amp;pag=d&amp;rd=0&amp;lr=187">
    <input name="rep" id="rep-id" style="width:123px;" autocomplete="off">
    <input type="submit" value="Я не робот" style="font-size:20px;">
    <form>
    
    разгадываем капчу, хидден поля, с этим все понятно, делаем строку пост вида:

    Code:
    key=85a5da55b9ef9c640cddb52f56ac8822&retpath=http://yandex.ru/yandsearch?numdoc=50&amp;text=текст+запроса2&amp;pag=d&amp;rd=0&amp;lr=187&rep=644767
    а что делать дальше с таким обработчиком action="/send.xml" ?
     
  2. programming

    programming New Member

    Joined:
    26 Aug 2009
    Messages:
    190
    Likes Received:
    3
    Reputations:
    0
    На хабре выложено полное решение..
     
  3. geforse

    geforse Elder - Старейшина

    Joined:
    2 Mar 2008
    Messages:
    617
    Likes Received:
    290
    Reputations:
    1
    Я тут писал регеры для Яндекса, там код хорошо прокомментирован
     
  4. Serg0007

    Serg0007 New Member

    Joined:
    13 Mar 2009
    Messages:
    10
    Likes Received:
    1
    Reputations:
    0
    искал на хабре, не нашел буду очень благодарен за урл
     
    #4 Serg0007, 27 Aug 2009
    Last edited: 27 Aug 2009
    2 people like this.
  5. geforse

    geforse Elder - Старейшина

    Joined:
    2 Mar 2008
    Messages:
    617
    Likes Received:
    290
    Reputations:
    1
    http://geforse.name/coding/avtoreger-e-mail-sajtov-narod-ru/ (на главной странице есть и полуавтоматический)

    теперь видно ? )
     
  6. Serg0007

    Serg0007 New Member

    Joined:
    13 Mar 2009
    Messages:
    10
    Likes Received:
    1
    Reputations:
    0
    Если вы об этом http://geforse.name/coding/polyavtomaticheskij-registrator-email-yandeks/ - то не совсем то, я имею в виду страницу Я не робот, там другая форма и обработчик
     
  7. geforse

    geforse Elder - Старейшина

    Joined:
    2 Mar 2008
    Messages:
    617
    Likes Received:
    290
    Reputations:
    1
    Капча у Яндекса везде одинаковая...покажите урл

    мб ошибаюсь )
     
  8. Serg0007

    Serg0007 New Member

    Joined:
    13 Mar 2009
    Messages:
    10
    Likes Received:
    1
    Reputations:
    0
    http://captcha.yandex.net/
     
    #8 Serg0007, 27 Aug 2009
    Last edited: 27 Aug 2009
  9. geforse

    geforse Elder - Старейшина

    Joined:
    2 Mar 2008
    Messages:
    617
    Likes Received:
    290
    Reputations:
    1
    С кодировкой сам разберись, $result = iconv("Windows-1251","UTF-8",$result); у меня что-то не корректно отображается

    Действительно, тут немного другая чем на почте...
    PHP:
    <?php
    @set_time_limit(0);
    //-----------------//
    $zapros 'http://yandex.ru/yandsearch?text=antichat&stpar2=%2Fh1%2Ftm4%2Fs2&stpar4=%2Fs2&stpar1=%2Fu0';
    //-----------------//

           
    function post($url,$post,$refer)
        {
           
    $ch curl_init($url);
           
    curl_setopt($chCURLOPT_USERAGENT"Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox/3.0.4");
           
    curl_setopt($chCURLOPT_POST1);
           
    curl_setopt($chCURLOPT_POSTFIELDS$post);
           
    curl_setopt($chCURLOPT_REFERER$refer);
           
    curl_setopt($chCURLOPT_COOKIEJAR"./cook");
           
    curl_setopt($chCURLOPT_COOKIEFILE"./cook");
           
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
           
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
           
    $result  curl_exec($ch);
           return 
    $result;
        }
        
      if(
    $_POST['captcha'])
        {
           
    $result post('http://captcha.yandex.net/send.xml','key='.$_POST['key'].'&retpath='.$zapros.'%26stpar4%3D%252F+s1&rep='.trim($_POST['captcha']),$zapros);
           if(
    preg_match('#>Вы (.*?) у#i',$result,$end))
            {
              echo 
    '<script>alert(\'Не правильный код!\')</script>';
              echo 
    '<meta http-equiv="Refresh" content="0; url=index.php">';
            }
            else
            {
            echo 
    $result;
            }
        }
        else
        {
        
    $result post('http://captcha.yandex.net/',null,'http://yandex.ru/');
        
    preg_match('#y" value="(.*?)"#i',$result,$key);
        
            echo 
    '<img class="captcha-img" name="captcha" src="http://captcha.yandex.net/image?key='.$key[1].'" alt=""><br>
              <form name="captcha_form" action="index.php" method="POST">
              <input type="text" name="captcha" value="" /><br>
              <input type="hidden" name="key" value="'
    .$key[1].'" />
                 <input type="submit" value="ok">
               </form>'

        }
    /* geforse.name */
    ?> 
     
  10. Serg0007

    Serg0007 New Member

    Joined:
    13 Mar 2009
    Messages:
    10
    Likes Received:
    1
    Reputations:
    0
    Code:
    &retpath='.$zapros.'%26stpar4%3D%252F+s1
    а почему так? Это критически важно? У меня урл не такой.
     
    #10 Serg0007, 27 Aug 2009
    Last edited: 27 Aug 2009
  11. geforse

    geforse Elder - Старейшина

    Joined:
    2 Mar 2008
    Messages:
    617
    Likes Received:
    290
    Reputations:
    1
    Какой я post запрос снифером поймал, такой и написал в скрипте, а почему так или не так это вопросы не ко мне, а к Яндексу )