qip - авторегер (очень хитрый)

Discussion in 'PHP' started by NitroM$I, 1 Jul 2011.

  1. NitroM$I

    NitroM$I Member

    Joined:
    15 Feb 2009
    Messages:
    44
    Likes Received:
    11
    Reputations:
    0
    Пытаюсь написать регер (на PHP) для qip.ru (http://qip.ru/reg/register )
    Не очень получается. Все поля отправляю и все нормально. Но в итоге получаю ошибку "ошибка при регестрации", понял что это не дело в полях которые отправляю, а в чем-то другом.

    Сейчас POST данные выглядят вот так:

    Code:
    $user[1][0]."=".$logins[rand(0,count($logins)-1)]."&reg_host=".$arr[rand(0,23)]."&".$pass1[1][0]."=".$pass."&".$pass2[1][0]."=".$pass."&".$reg_email[1][0]."=&quest=".rand(2,8)."&reg_quest=&reg_answer=".urlencode(iconv("CP1251", "UTF-8", $otvet))."&last_name=".urlencode(iconv("CP1251", "UTF-8", $famil[rand(0,count($famil)-1)].$pred_del))."&first_name=".urlencode(iconv("CP1251", "UTF-8", $name))."&middle_name=&bday=".rand(1,27)."&bmonth=".rand(1,11)."&byear=".rand(1969,1992)."&".$sex[1][0]."=".$pol."&city=&recaptcha_challenge_field=".$challenge[1][0]."&recaptcha_response_field=".urlencode($resimg)."&register=%D0%A0%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D1%8F&".$trols[1][0]."=".$trols[2][0]."&".$trols[3][0]."=".$trols[4][0]."&".$trols[5][0]."=".$trols[6][0]
    Если какое-то поле будет неверно заполнено то qip скажет об этом а если все нормально заполнено то про100 будет "ошибка при регестрации". Когда капча разгадана не верно то все он пишет что "Ошибка, неверные символы с картики"

    Отключил все в ФФ кроме кук. пишет что тоже ошибка при регистрация. НО стоит включить JS и вау, регистрация успешна. При это через снифер блакировал все запросы


    разрешил только 4 запроса:

    1) http://qip.ru/reg/register
    2) http://www.google.com/recaptcha/api/challenge?k=6LeUWwgAAAAAAMHS93Je_FMHwGu30Z3T-hrqsCiO
    3) http://www.google.com/recaptcha/api/js/recaptcha.js
    4) http://www.google.com/recaptcha/api/image?c=03AHJ_Vuvswd_Nflk_kX8NOlSEYQGOWCN_GIiIlx611PoYIB1_LdpBJ4_LxERNxGGmNGonIOhsNPU6hnOL0KciPaDNYp8oepxeypCA6MDgKkucPq-ZtBIumd5z21ONg1sVN7In8nb2dNAQ-JvL1Jz6gQVcmYdIt0-66w

    Проверял также куки ... думал мб через js ставятся но нет там ничего не ставиться.

    Кто нибудь подскажет как qip распознает что не человек на сайте регенерируется?
     
  2. Fuckel

    Fuckel Banned

    Joined:
    16 Jan 2008
    Messages:
    274
    Likes Received:
    59
    Reputations:
    6
    А как ты Рекаптчу распознаешь?
     
  3. NitroM$I

    NitroM$I Member

    Joined:
    15 Feb 2009
    Messages:
    44
    Likes Received:
    11
    Reputations:
    0
    иду сюда:
    http://www.google.com/recaptcha/api/challenge?k=6LeUWwgAAAAAAMHS93Je_FMHwGu30Z3T-hrqsCiO

    сохраняю это challenge : '.{0,}' сюда $challenge

    потом сюда
    http://www.google.com/recaptcha/api/js/recaptcha.js

    а потом сюда
    http://www.google.com/recaptcha/api/image?c=$challenge

    распознаю через антигейт и все.

    ПС. Пытался с выключеным js (там тогда рекапча заставляет делать моневры, покировать всекии коды и т.д.) так я все верно сделал но квип все равно говорит что мол "Ошибка регестрации"
     
    #3 NitroM$I, 1 Jul 2011
    Last edited: 1 Jul 2011
  4. NitroM$I

    NitroM$I Member

    Joined:
    15 Feb 2009
    Messages:
    44
    Likes Received:
    11
    Reputations:
    0
    Неужели никто не сталкивался? или все жадные до информации?
     
  5. chexec

    chexec Member

    Joined:
    19 Nov 2010
    Messages:
    67
    Likes Received:
    11
    Reputations:
    3
    не жадные. ты пишешь софт для зарабатывания денег, поэтому если не хочешь потеть сам - плати. другое дело, если бы ты не мог в какой-нибудь функции или алгоритме разобраться. а то вы охуели своим дай.
     
  6. chexec

    chexec Member

    Joined:
    19 Nov 2010
    Messages:
    67
    Likes Received:
    11
    Reputations:
    3
    http://qip.ru/reg/reghelper
    спасибо не надо.
     
  7. |qbz|

    |qbz| Banned

    Joined:
    25 Dec 2009
    Messages:
    385
    Likes Received:
    169
    Reputations:
    65
    То есть ты делаешь запрос даже без маскировки (без юзерагента итд)?? Если да, то добавь все это дело, во-вторых проанализируй все поля, отсылаемые на сервер сперва по ХТМЛу, а потом через сниффер и сравни. Возможно, яваскрипт меняет какое то поле незаметно. Также проверь куки, какие ты отправляешь (если ты их вообще отправляешь) и проверь нужно-ли получать куки автоматизированно.
     
  8. NitroM$I

    NitroM$I Member

    Joined:
    15 Feb 2009
    Messages:
    44
    Likes Received:
    11
    Reputations:
    0
    Пожалуйста не принимайте меня за дол*ба, у меня написан класс на php который рандомно подставляет усер агент и держит его. также запоменает кукисы и обновляет их.

    и код похож на это
    $web=new Web(1);

    $web->Get_page($url);


    Снифером все прочекал, скорее всего дело в этом файле который был сказан выше. Все спасибо.
     
    #8 NitroM$I, 1 Jul 2011
    Last edited: 1 Jul 2011
  9. |qbz|

    |qbz| Banned

    Joined:
    25 Dec 2009
    Messages:
    385
    Likes Received:
    169
    Reputations:
    65
    Ты на курле класс составил?
     
  10. NitroM$I

    NitroM$I Member

    Joined:
    15 Feb 2009
    Messages:
    44
    Likes Received:
    11
    Reputations:
    0
    да, но мог бы и на сокетах, но курл удобнее.

    Классом не поделюсь, думаю в инете таких классов полно
     
  11. promofile

    promofile New Member

    Joined:
    4 Sep 2010
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    У меня такая же проблема, при реге пишет ошибка регистрации, кто нить понял как сделать так что бы рега прошла?

    при каждом обновлении http://qip.ru/reg/reghelper выдает разные данные не пойму как прикрутить его к регеру.
     
  12. boxflip0

    boxflip0 New Member

    Joined:
    14 May 2011
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Этот скрипт подгружает другой скрипт который изменяет dom.

    Code:
    var span = document.createElement('SPAN');
    	var scr = document.createElement('SCRIPT');
    	scr.language = 'JavaScript';
    	var href = "/reg/reghelper?rnd=1234";
    	if (scr.setAttribute) scr.setAttribute('src', href); else scr.src = href;
    	span.appendChild(scr);
    	document.getElementById("headloader").appendChild(span); 
    
    Пройдешь по ссылке - http://qip.ru/reg/reghelper?rnd=1234, увидишь вражеский скрипт, который подменяет hidden input.
     
  13. promofile

    promofile New Member

    Joined:
    4 Sep 2010
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Да я в курсе что оно подменяет.
    Но как в php реализовать обход этой защиты? Вот что не понятно :(
     
  14. chexec

    chexec Member

    Joined:
    19 Nov 2010
    Messages:
    67
    Likes Received:
    11
    Reputations:
    3
    а если подумать? прочитать тот javascript, понять что он заменяет и заменить, тем более что все данные там уже есть.
    и если для вас это хитрый обход, то вам еще учиться и учиться обходить защиты сайтов :)
     
  15. NitroM$I

    NitroM$I Member

    Joined:
    15 Feb 2009
    Messages:
    44
    Likes Received:
    11
    Reputations:
    0
    ОМГ, вы еще эту тему жуете? помойму и так все ясно ...
     
  16. promofile

    promofile New Member

    Joined:
    4 Sep 2010
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Да я пробовал так и сяк, брал данные с java скрипта подставлял в пост запрос не помогает нифига. Кому не сложно поделитесь плиз как этот момент правильно реализовать, замучился уже :(
     
  17. boxflip0

    boxflip0 New Member

    Joined:
    14 May 2011
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Для отладки используй плагины firefox- httpfox, и firebug. Скачиваешь страницу и сравниваешь в офлайне какие данные отправляет с яваскриптом, какие без. Когда разберешься в работе скрипта, выдираешь регекспами из скрипта нужные параметры и выполняешь подстановку.
     
  18. promofile

    promofile New Member

    Joined:
    4 Sep 2010
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Я использую LiveHTTPHeaders, смотрел там все понятно что срипт меняет hidden input в конце формы,но что бы выдернуть регекспом нужные параметры нужно зайти curl ом на скрипт, а когда заходиш он уже герерирует другие параметры, то есть например document.getElementById('i0c74b7f78409a4022a2c4c5a5ca3ee19') уже не существует, а с новимы параметрамы уже не канает, пишет ошибка регистрации. Вот как сделать все правильно не пойму, не ужели нет вариантов обхода?
     
  19. boxflip0

    boxflip0 New Member

    Joined:
    14 May 2011
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Видимо ты его 2 раза грузишь при отладке, вот и получаются другие параметры. Первый раз он загружается когда страница грузится в браузер, второй по ссылке. В таком случае посмотри экземпляр в кеше браузера. Когда грузишь страницу при помощи своего скрипта все должно быть нормально.
     
  20. promofile

    promofile New Member

    Joined:
    4 Sep 2010
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    я с помощю curl а делает, с начало захожу на страницу реги и забираю регекспом урл скрипта и далее захожу на скрип беру оттуда регекспом данные и подставляю его в параметры для пост запроса и делаю пост, но похоже не срабатывает. Правльно же, че ему надо еще.