zennoposter + rucaptcha (funcaptcha)

HWMD

Client
Регистрация
16.08.2019
Сообщения
81
Благодарностей
9
Баллы
8
Приветствую!
Есть сайт с funcaptcha + recaptcha invisible - gtop100.com/topsites/MapleStory/sitedetails/MapleRoyals-The-Nostalgic-MapleStory-Server-79510?vote=1
Разгадывание funcaptcha происходит через rucaptcha, recaptcha через cp2

Тк поле, куда нужно вставлять результат решения funcaptcha имеет type="hidden" - я сделал следующее:
1) Получение значения [innerhtml] (Всей страницы с funcaptcha)
2) Замена "hidden" на ""
3) Подмена результата
Момент: страница имеет 2 поля с одинаковыми исходным значением funcaptcha и 1 поле recaptcha invisible
4) Решаем каптчу через rucaptcha
5) Заменяем содержимое обоих полей результатом решения funcaptcha
6) Решаем recaptcha invisible
7) Заменяем содержимое поля recaptcha invisible
8-) Жмем кнопку действия

Проблема: Сайт отправляет ошибку без намека на проблему с каптчей
Нюанс: Если проделать все тоже самое в ручную через браузер zennoposter и в ручную решить funcaptcha - все работает, как надо.

Вопрос: В чем может заключаться проблема? Могу предполагать, что как-то не так вставляю результат funcaptcha.
Возможно есть желающие помочь за оплату? Пишите в тему или в лс.
 
Последнее редактирование:

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 788
Благодарностей
2 454
Баллы
113
Дело тут такое, что не нужно заменять hidden на "".
Ищите тег input которого type="hidden" и name="funcaptcha_token" - и именно ему устанавливайте значение.
Пример:
Код:
string tokenF = "результат распознавания фан";
instance.ActiveTab.FindElementByName("funcaptcha_token").SetValue(tokenF,"None", false,false);

string tokenRE = "результат распознавания рекаптча";
instance.ActiveTab.FindElementById("recaptcha-token").SetValue(tokenRE,"None", false,false);
Но, на данном сайте возможно более правильно было бы просто отправлять обычный пост запрос без использования браузера, просто в нужных местах подставлять параметры.
Код, который формирует данный пост-запрос (исходник сайта) предоставлю здесь - может быть чем-то поможет в формировании параметров.
Код:
$("button#votebutton").live('click',function(){
                var user_id=$('#user_id').val();
                var site=$('#site_id').val();
                var base_url=$('#base_url').val();

                //var fpid = new Fingerprint({canvas: true,ie_activex: true}).get();
                
                //var options = {extendedFontList: true};
                //var fp = new Fingerprint2(options);
                //fp.get(function(result) {
                    //var fpid = result;
                    var fpid = "xxx";
                    var tz = Intl.DateTimeFormat().resolvedOptions().timeZone;
                    //var fcToken    =    $('#FunCaptcha-Token').val();//Coming from fun captcha
                    var fcToken =   $("[name='fc-token']").val();//Coming from fun captcha
                    //var fcToken =  "";//Coming from fun captcha
                    var pingUsername    =    $('#pingUsername').val();
                    var minecraftname    =    $('#minecraftname').val();
                    var asf   =   "gjlhpmrclypxsvnwlc";
                    var retoken   =   $('#retoken').val();
                    /* if(fcToken==undefined || fcToken == '')
                    {alert('Please enter captcha');}
                    else {} */
                    $('#img_loader').show();
                    $.ajax({
                        type: "POST",
                        url: '/home/send_vote/',
                        data: "site="+site+"&user_id="+user_id+"&fingerprintid="+murmur+"&pingUsername="+pingUsername+'&minecraftname='+minecraftname+'&fcToken='+fcToken+'&asf='+asf+'&tz='+tz+'&reToken='+retoken,
                        success: function (r) {
                            $('#img_loader').hide();
                            // alert(r);
                            // $('#loaddata').attr('id','votebutton');
                            if(r=='success') {
                                $('#captcha-status').html("<p style='color:#00a600;'><b>Thank you for voting!</b></p>");
                                location.href='https://gtop100.com/topsites/MapleStory/';                            } else {
                                $('#captcha-status').html("<p style='color:#00FF00;'><b>"+r+"</b></p>");
                                //$('#captchaReset').trigger('click');
                            }
                        },
 
  • Спасибо
Реакции: alex1988

Reactor3000

Client
Регистрация
25.09.2019
Сообщения
434
Благодарностей
263
Баллы
63
Ищите тег input которого type="hidden" и name="funcaptcha_token" - и именно ему устанавливайте значение.
Не замчали такого - значение устанавливаю,

C#:
string tokenF = project.Variables["FC_Rucap_Session_Answer"].Value;
instance.ActiveTab.FindElementByName("fc-token").SetValue(tokenF,"None", false,false);
instance.ActiveTab.FindElementByName("verification-token").SetValue(tokenF,"None", false,false);

В инспекторе вижу такое отображение -

47110


Вроде в value токен установился, только в outerhtml не появился


Проверяю DOM страницы - там ничего не установлено

<input id="verification-token" name="verification-token" placeholder="Copy verification code in here" style="display:none;" type="text">
<input id="FunCaptcha-Token" name="fc-token" placeholder="Copy verification code in here" style="display:none;" type="text">

Что нам делать, как нам быть? =)
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 788
Благодарностей
2 454
Баллы
113
Обращаю Ваше внимание что .FindElementByName("funcaptcha_token") не равно .FindElementByName("fc-token") - так как заполняются явно разные поля.
Или названия полей для заполнения там каждый раз изменяются?

P.S. Действительно, вижу что нужно вводить значение в другой элемент.
Специально перепроверил с выводом в лог установленного значения - вижу что значение устанавливается корректно:
Код:
var el = instance.ActiveTab.FindElementByName("fc-token");
el.SetValue("Ещё раз проверка токена", "None", false, false);
project.SendInfoToLog(el.GetAttribute("value")); // Должно вывести в лог Ещё раз проверка токена
 

Вложения

Последнее редактирование:

Reactor3000

Client
Регистрация
25.09.2019
Сообщения
434
Благодарностей
263
Баллы
63
Обращаю Ваше внимание что .FindElementByName("funcaptcha_token") не равно .FindElementByName("fc-token") - так как заполняются явно разные поля.
Сорян, не пояснил. Это на другом сайте, но проблема такая же.
Там как раз такие поля
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 788
Благодарностей
2 454
Баллы
113
Сорян, не пояснил. Это на другом сайте, но проблема такая же.
Там как раз такие поля
Просмотрите пожалуйста мой предыдущий ответ, пока Вы отвечали, я дополнял его - из-за чего Ваше сообщение появилось раньше.
Собственно там есть пример как проверить, что значение действительно установилось.

Относительно же того, что разговор о другом сайте - дело такое, что на страничке (как можно видеть на скриншоте с предыдущего моего ответа) есть несколько полей FunCaptcha, которые могут содержать результат.
Более того, сайт может анализировать содержимое этих полей и использовать для своих целей только результат одного конкретного поля.
Также сайт может без проблем посчитать Вас ботом тогда, когда какое-то определенное поле не должно быть заполнено (а Вы решили сделать доброе дело и заполнить все поля).
Из-за чего, посмотрите код сайта, с которым работаете чтобы убедиться в том, что Вы устанавливаете значение именно в то поле, которое используется для отправки запроса (остальные поля без надобности трогать не нужно).

В коде встречается строчка в таком виде: el.SetValue("Ещё раз проверка токена", "None", false, false);
Я не знаю, как её интерпретируют разработчики Зеннопостера, но для себя я сделал вывод, что для её заполнения не используется эмуляция ввода (что собственно и не требуется для hidden полей).
Если поле не hidden - тогда возможно нужно использовать эмуляцию ввода.

Визуально, выглядит так, что код должен отрабатывать корректно. На предложенном Вами сайте специально перепроверил данный момент.
 
  • Спасибо
Реакции: Atom, booms1 и Reactor3000

Atom

Client
Регистрация
03.08.2012
Сообщения
77
Благодарностей
7
Баллы
8
Пытаюсь решить капчу на сайте github.
Все хорошо до момента изменения содержимого атрибута fc-token.
Ответ от rucaptcha в формате

Код:
OK|2755e5d0347ccf348.2967568705|r=eu-west-1|metabgclr=transparent|maintxtclr=#cbccce|meta=10|mainbgclr=#fafbfc|guitextcolor=#24292e|metaiconclr=#cbccce|pk=69A21A01-CC7B-B9C6-0F9A-E7FA06677FFC|at=40|ht=1|atp=2|cdn_url=https://cdn.arkoselabs.com/fc|lurl=https://audio-eu-west-1.arkoselabs.com|surl=https://api.funcaptcha.com
данный код и вставляю в

C#:
var el = instance.ActiveTab.FindElementByName("fc-token");
var rez_token= project.Variables["rez"].Value;
el.SetValue(rez_token, "None", false, false);
project.SendInfoToLog(el.GetAttribute("value"));
Но дальше меня не пускат...
кто сможет выручить?
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 788
Благодарностей
2 454
Баллы
113
Пытаюсь решить капчу на сайте github.
...
кто сможет выручить?
Там используется другое поле + возможно нужна эмуляция (при заполнении поля ещё какие-то запросы летят).
Проверил - вродебы проходит нормально (но, так как мне github для таких целей пока не нужен - не могу сказать насколько всё корректно).
Код:
string rez_token= project.Variables["rez"].Value;
HtmlElement he = instance.ActiveTab.FindElementByName("octocaptcha-token");
he.SetValue(rez_token, instance.EmulationLevel, false);
P.S. С ответа естественно нужно удалить OK| - это ведь не относится к токену...
Код:
if(rez_token.Contains("OK")) rez_token = rez_token.TrimStart("OK|".ToCharArray());
 

aftern0on

Новичок
Регистрация
10.05.2020
Сообщения
1
Благодарностей
0
Баллы
1
Там используется другое поле + возможно нужна эмуляция (при заполнении поля ещё какие-то запросы летят).
Проверил - вродебы проходит нормально (но, так как мне github для таких целей пока не нужен - не могу сказать насколько всё корректно).
привет. не знаю какое поле заполнять на twitch.tv funcaptcha, в какое-бы я поле не забивал решение - реакции от сайта 0. можешь помочь?
 

clocky

Client
Регистрация
26.09.2019
Сообщения
363
Благодарностей
48
Баллы
28

Кто просматривает тему: (Всего: 3, Пользователи: 0, Гости: 3)