Код объекта

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by ApxaHGe1, 21 Aug 2015.

  1. ApxaHGe1

    ApxaHGe1 New Member

    Joined:
    21 Aug 2015
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте, есть сайт, тестовые данные
    логин - [email protected] ([email protected])
    пароль - 123123123

    Нужно получить код объекта

    [​IMG]

    Если получить код всей страницы, кода данного элемента там нет,он идет после тегов

    PHP:
    <div class="bgSlider">
    А если получить код данного элемента, то можно увидеть

    PHP:
    <div class="bgSlider"><div class="Slider ui-draggable">Сдвиньте кнопку вправо</div></div>
    <
    div class="clr"></div>
    <
    div class=" TxtStatus dropError"></div>
    <
    input name="xwfC9H-3k4wKT-Qxu4@qmgtaVBU@xsGu" value="Z@f4uYz" type="hidden">
    Так вот, меня интересует как мне получить уникальный для каждой сессии, т.е. код элемента что выше, обычный гет тут не поможет, я уже не знаю в какую сторону биться

    PHP:
    <input name="xwfC9H-3k4wKT-Qxu4@qmgtaVBU@xsGu" value="Z@f4uYz" type="hidden">
    Будьте любезны помочь ;)
     
  2. WPIWizard

    WPIWizard New Member

    Joined:
    30 Jun 2011
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    HTML:
    <div class="QapTcha"></div>
    вот твоя капча, которая обрабатывается жс
    HTML:
    <!-- Javascripts
       ================================================== -->
        <!-- Placed at the end of the document so the pages load faster -->
        <script src="/assets/application-cef5607ca5048b053bd4464f8a569a24.js" type="text/javascript"></script>
    
          <script type="text/javascript">
        showVoteFields = function () {
          $('.vote-fields').show();
    
        };
        $('.QapTcha').QapTcha({
          autoSubmit:false,
          autoRevert:true,
          PHPfile:'/votes/quaptcha.json'
        });
        $('#vote_loading').remove();
        var a1 = 'l';
    var an = 'wb';
    var at9 = 'M';
    var agwa = 'ZV';
    var azp = 'x';
    var a9 = 'M2';
    var a36c = 'jdn';
    var ar = 'KK';
    var a2v4 = 'E';
    var ann2 = 'ba';
    var aj7x = '15';
    var ak = 'EcZ';
    var as = ann2 + at9;
    var aa8 = a2v4 + ann2;
    var ay35 = a2v4 + ar;
    var aft3 = aj7x + ann2;
    var aim = at9 + as;
    var arpk = agwa + a9;
    var ag = ay35 + ay35;
    var aosk = arpk + a2v4;
    var al = ag + ar;
    var a142 = ag + aa8;
    var aiq = a36c + al;
    var a5 = a36c + ag;
    var apr9 = at9 + arpk;
    var adq = ay35 + a5;
    var afbq = a1 + a36c;
    var cache_val = ar + an + a36c + 'M' + 'EKKEKK' + ar + ay35 + as + aosk;
    $('#server_cache').val(cache_val);
    
    
        function validateForm(event){
          return false;
          //event.preventDefault();
        }
    
        $('#resolution').val(screen.width + 'x' + screen.height);
    
        $('#check_vote_form').click(function () {
          $.get('http://la2.mmotop.ru/servers/4541/votes/check.js', { charname: $('#vote_' + "w1y4v4").val(), world_id: $(".worlds-table input:checked").val() });
          return false;
        });
      </script>
     
  3. ApxaHGe1

    ApxaHGe1 New Member

    Joined:
    21 Aug 2015
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Так а как же мне получить то тот самый qaptcha_key программно то?
     
  4. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    https://github.com/alpixel/QapTcha/blob/master/jquery/QapTcha.jquery.js - вот тебе код капчи самой.
    http://la2.mmotop.ru/votes/quaptcha.json - от тебе файл ... вот его походу код https://github.com/alpixel/QapTcha/blob/master/php/Qaptcha.jquery.php ща проверим.

    Code:
    <form action="http://la2.mmotop.ru/votes/quaptcha.json" method="POST">
        <input type="hidden" name="action" value="qaptcha">
        <input type="hidden" name="qaptcha_key" value="garik">
        <input type="submit">
    </form>
    
    {"error":false}

    хех
    В общем что бы пройти проверку капчи ты можешь сам генерировать для нее ключ отправив предварительно POST запрос на сервер со своей сессией (идентификатор сессии передается в cookie).

    1. Грузишь страницу получаешь значения вот этой вот формы <form accept-charset="UTF-8" action="***" class="new_vote" id="new_vote" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="***" /><input name="authenticity_token" type="hidden" value="***" /> и куки
    2. Отправляешь POST запрос с параметрами action=qaptcha&qaptcha_key=123 на /votes/quaptcha.json со своими полученными куками - тем самым ты перезаписываешь ключ капчи.
    3. Отправляешь POST запрос уже на action из первой формы.
    при этом важно лишь то что в запросе будет 123=1 - потому что проверка лишь на и существование переменной... ну ты понимаешь что 123 это и есть qaptcha_key

    Code:
    $myVar = $_SESSION['qaptcha_key'];
    if(isset($_POST[''.$myVar.'']) && empty($_POST[''.$myVar.'']))
    
    А для развития попробуй в проекте использовать это https://github.com/google/gumbo-parser
     
    _________________________
    #4 Gar|k, 6 Oct 2015
    Last edited: 6 Oct 2015
  5. ApxaHGe1

    ApxaHGe1 New Member

    Joined:
    21 Aug 2015
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Gar|k, спасибо очень помог, капчу прошел, получаю error:false, но вот теперь проблема с последним запросом, который и производит голосование

    Code:
    [/B]
    [B]PostFinal:=TStringStream.Create('');
    PostFinal.WriteString('utf8=%E2%9C%93');
    PostFinal.WriteString('&authenticity_token='+token);
    PostFinal.WriteString('&123=1');
    PostFinal.WriteString('&server_cache=');
    PostFinal.WriteString('&resolution=');
    PostFinal.WriteString('&vote[haql38]=o6opBa');
    PostFinal.WriteString('&vote[6roofy]=5712');
    HTTP.MimeType:='application/x-www-form-urlencoded';
    HTTP.Document.LoadFromStream(PostFinal);
    HTTP.HTTPMethod('POST','http://la2.mmotop.ru/servers/4541/votes/new');
    Form1.Memo1.Text:=HTTP.Headers.Text;[/B]
    

    В ответ на этот запрос с Headers приходит
    HTTP/1.1 404 Not Found
    Server: QRATOR
    Date: Sat, 10 Oct 2015 17:52:24 GMT
    Content-Type: text/html; charset=utf-8
    Content-Length: 4248
    Connection: close
    Status: 404 Not Found
    X-Request-Id: b6da48d9141473c909c594161bd67fa7
    X-Runtime: 0.004871
    X-Rack-Cache: invalidate, pass
    не могу разобраться почему, запрос составлен верно (

     
  6. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    В том же Chrome есть инструменты разработчика. Включаешь переходишь на вкладку network делаешь действия на странице по голосованию и смотришь какие запросы с какими данными были сделаны...
    Повторяешь те же самые запросы программно. PROFIT

    В общем надо научится пользоваться снифферами, иначе никак. Например, https://www.wireshark.org/
     
    _________________________
  7. ApxaHGe1

    ApxaHGe1 New Member

    Joined:
    21 Aug 2015
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Не нет, ошибочка вышла с постом, я нормально теперь передаю POST, была ошибка в странице на которую делал POST теперь все в норме
    Пост передаю но реакции не какой, через браузер потом смотрю, могу голосовать, значит не прошел ПОСТ запрос, и каждый снифер POSTDATA кнопки голосовать по своему отображает, самый здравый снифер которым пользовался был HTTP Debuger но почему то перестал работать....

    им можно было и посмотреть что мой софт отправляет, и просто потом сравнить что не так, но повторюсь.. он не работает

    А вот сам мой пост запрос

    Code:
    //капча
    HTTP.Headers.Clear;
    PostQ:=TStringStream.Create('');
    PostQ.WriteString('action=qaptcha');
    PostQ.WriteString('&qaptcha_key=123');
    HTTP.MimeType:='application/x-www-form-urlencoded';
    HTTP.Document.LoadFromStream(PostQ);
    HTTP.HTTPMethod('POST','http://la2.mmotop.ru/votes/quaptcha.json');
    //в ответ получаем {"error":false} следовательно прошли капчу
    // голосование
    PostFinal:=TStringStream.Create('');
    PostFinal.WriteString('authenticity_token='+authenticity_token);
    PostFinal.WriteString('&resolution=1280x1024');
    PostFinal.WriteString('&server_cache=MuErq91sIrq1bC91sIUVZlwkVZ1sIrq1sIrq1bC91sIrq1bC9'); // и вот это берется не пойму откуда, в исходнике страницы, тут пусто
    //PostFinal.WriteString('&session_secret=123');
    PostFinal.WriteString('&utf8='+utf8);
    PostFinal.WriteString('&123=1');
    PostFinal.WriteString('&'+votename2+'=5712');
    PostFinal.WriteString('&'+votename+'='+Charname);
    HTTP.MimeType:='application/x-www-form-urlencoded';
    HTTP.Document.LoadFromStream(PostFinal);
    HTTP.HTTPMethod('POST','http://la2.mmotop.ru'+act);
    
     
  8. ApxaHGe1

    ApxaHGe1 New Member

    Joined:
    21 Aug 2015
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Вот сам проект прикрепил
    Может глянешь, уважаемый Гарик
    http://rghost.ru/827YSWKCl