Авторизация через viewstate

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by boomboom, 21 Mar 2012.

  1. boomboom

    boomboom New Member

    Joined:
    21 Jan 2012
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    Господа посаны,

    Посоветуйте или ткните, что почитать.

    Задача - есть один гадский ресурс, написанный на asp.net

    Сабмит на форме авторизации выглядит так:

    Code:
    <input type="submit" name="ctl00$LoginLink" value="Войти" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$LoginLink&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" id="ctl00_LoginLink" class="tx">
    JS выглядит так:

    /
    Code:
    /<![CDATA[
    var theForm = document.forms['aspnetForm'];
    if (!theForm) {
        theForm = document.aspnetForm;
    }
    function __doPostBack(eventTarget, eventArgument) {
        if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
            theForm.__EVENTTARGET.value = eventTarget;
            theForm.__EVENTARGUMENT.value = eventArgument;
            theForm.submit();
        }
    }
    //]]>
    Вот эти вышеприведенные изыски формируют переменную viewstate, которая судя по снифферу и передается пост запросом при авторизации

    Нифига не могу эмулировать. Даже не знаю с какой стороны подойти. Может кто сталкивался, подскажите?

    пс Пишу на сишарпе
     
  2. SHiNiGaMi

    SHiNiGaMi Banned

    Joined:
    3 Jan 2010
    Messages:
    382
    Likes Received:
    55
    Reputations:
    15
    Viewstate не формируется динамически, она сразу задана, как и EventTarget, EventAgrument. Пройдись поиском по исходнику
     
  3. boomboom

    boomboom New Member

    Joined:
    21 Jan 2012
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    Ну так если бы она была сразу задана - я бы ее спарсил и отправил постом. Но содержимое viewstate при гет запросе страницы авторизации и post запросе при клике на сабмит отличается килобайт так на 5ь
     
  4. M_script

    M_script Members of Antichat

    Joined:
    4 Nov 2004
    Messages:
    2,582
    Likes Received:
    1,310
    Reputations:
    1,557
    Дай ссылку на сайт. По приведенному тобой коду сказать ничего нельзя.
     
  5. pr_loader

    pr_loader New Member

    Joined:
    6 Jun 2011
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    ванга в топике :)
    http://video.votpusk.ru/
    походу этот.
    ну и что то я не понял тогда ТСа.
    в исходнике лежит вьюстат между <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/ и " парсь.
    вспомнил сайт мтс. если там так же как на мтсе то кстате задолбаешься там авторизоваться :D особенно если на начальном этапе возникают такие вот вопросы.
     
    #5 pr_loader, 21 Mar 2012
    Last edited: 22 Mar 2012
  6. boomboom

    boomboom New Member

    Joined:
    21 Jan 2012
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    Сайт не тот, но авторизация 1в1. Дык, а толку то ее парсить? Post запрос состоит из пустых EVENTAGRET, EVENTARGUMENT и VIEWSTATE.

    Захожу, беру гетом страницу, паршу линк на который надо пост отправить, паршу значение вьюстейта

    Отправляю пост со всем вышеуказанным. Ну и как следовало ожидать хрен вам

    А логин с паролем куда тулить то? )) Объясните нубу на пальцах )

    Раскодил кста viewstate из base64, куча всякого говна на 20 килобайт, вот нафига такое счастье вообще делать )
     
    #6 boomboom, 22 Mar 2012
    Last edited: 22 Mar 2012
  7. pr_loader

    pr_loader New Member

    Joined:
    6 Jun 2011
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    оу сори. непоснифал даже.
    проверил с невалидным логином/паролем.
    URL=http://www.votpusk.ru/auto/LoginAct.asp
    отправляем туда пост данные:
    POSTDATA=Login=westoust%40thismail.ru&Passw=qweqwe&x=45&y=10

    как то так.
    далее вам скорее всего пришлют куки и ссыль редиректа. (смотрите снифером(я юзаю для таких целей TamperData - плагин для мазиллы))

    про почитать, попробуйте поищите в этом разделе чьи нибудь исходники. помсотрите кто как делает.
     
    #7 pr_loader, 22 Mar 2012
    Last edited: 22 Mar 2012
  8. boomboom

    boomboom New Member

    Joined:
    21 Jan 2012
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    Зарегался на вотпуске, поснифал с валидными данными -
    запрос выглядит так:

    Code:
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Referer: http://video.votpusk.ru/
    Accept-Encoding: gzip,deflate,sdch
    Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
    Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.3
    Cookie: блабла куки
    
    __EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=много блабла в base64
    Ну и соответственно редиректит на страничку с бест видео )

    как я понимаю из исходника формы (могу быть ваще не прав), при вводе логина и пароля они постбеком отправляются на сервер и чекаются там на валид. Как это эмулировать средствами httprequest ума не приложу

    Хотя попробую с таким запросом и валид данными, может прокатит
    POSTDATA=Login=westoust%40thismail.ru&Passw=qweqwe&x=45&y=10

    и да про снифферы и все прочее мне объяснять не надо, я не настолько нуб )
     
    #8 boomboom, 22 Mar 2012
    Last edited: 22 Mar 2012
  9. pr_loader

    pr_loader New Member

    Joined:
    6 Jun 2011
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    по поводу
    x=random
    y=random

    это вроде не рандом а координаты мышки на кнопке. (реализуется рандомом (выясняем примерно минимальные и максимальные значения и генерим а может и пох ваще на них надо тестить))
     
  10. pr_loader

    pr_loader New Member

    Joined:
    6 Jun 2011
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    >Как это эмулировать средствами httprequest ума не приложу

    ну я вам тоже не помогу т.к. не знаю шарпа. подсмотрите в гугле, поищите в этом разделе повнимательнее что непонятно, или ждите компитентных людей :)
     
  11. boomboom

    boomboom New Member

    Joined:
    21 Jan 2012
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0

    В любом случае благодарю, не додумался сам, что с валид и невалид данными запросы будут отличаться
     
  12. pr_loader

    pr_loader New Member

    Joined:
    6 Jun 2011
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    да не за что. запросы то по идее не отличаются, (то есть в любом случае сначала шлем логин/пас) а уже ответ будет по идее отличаться. счас зарегаю там ак, схематично/наглядно вам опишу логику авторизации. что б вам полегче было.
     
  13. pr_loader

    pr_loader New Member

    Joined:
    6 Jun 2011
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    в общем, чуть выше я вам запрос неправильный посоветовал. он на том сайте хз для кого. но не для обычных юзеров.

    собсно я там зарегался, посмотрел повнимательнее и вот как проходит авторизация:
    заходим на http://user.votpusk.ru/login.aspx
    парсим переменные:
    __VIEWSTATE
    __EVENTVALIDATION
    доавляем в пост параметры
    ctl00%24ContentPlaceHolder1%24MasterLogin2%24txLogin=наш_логин@yandex.ru
    ctl00%24ContentPlaceHolder1%24MasterLogin2%24txPassw=наш_пароль
    ctl00%24ContentPlaceHolder1%24MasterLogin2%24chRememb=on//еще какой то параметр
    ctl00%24ContentPlaceHolder1%24MasterLogin2%24Button1.x=66

    ctl00%24ContentPlaceHolder1%24MasterLogin2%24Button1.y=23


    шлем постом все это дело сюда:
    http://user.votpusk.ru/login.aspx

    получаем кукис .ASPXAUTH=
    и ссыль Location=http://user.votpusk.ru/

    сохраняем кукис и идем по ссылю.
     
    #13 pr_loader, 22 Mar 2012
    Last edited: 22 Mar 2012
  14. boomboom

    boomboom New Member

    Joined:
    21 Jan 2012
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    Все, спасибо огромное, сейчас сам посмотрел внимательнее и увидел )
     
    1 person likes this.
  15. pr_loader

    pr_loader New Member

    Joined:
    6 Jun 2011
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    пожалуйcта. обращайтесь если что :)