авторизация вконтакте

Discussion in 'Социальные сети' started by rudra, 15 Mar 2009.

  1. m0Hze

    m0Hze Well-Known Member

    Joined:
    1 Nov 2008
    Messages:
    266
    Likes Received:
    655
    Reputations:
    208
    Могу смело заявить что параметр sid в куках можно обходить,если знать как.Это просто к сведению.Скрипт работает уже больше полугода,и пока что все работает.Генерирую кукисы сам,ну а затем по мелочи.имха.
     
  2. dvion

    dvion New Member

    Joined:
    11 Mar 2009
    Messages:
    12
    Likes Received:
    2
    Reputations:
    0
    m0Hze,
    Sid - алгоритмизационный параметр?
     
  3. rudra

    rudra New Member

    Joined:
    30 Dec 2008
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    господа хакеры, объясните начинающему как такое может быть
    addEx = re.compile(r'(\w+aeb)')
    for m in re.finditer(addEx, response):
    num = m.start()
    print response[num-20:num+20]
    Выдает: \" id=\"h\" value=\"b41aeb7a\">\n <
    где b41aeb7a искомый номер

    Теперь я знаю что искать. Беру поиск чтобы получить это число:
    addEx = re.compile('(?<=value=\\\")\w+')
    hits = addEx.findall(response)
    print hits
    Но в результате ничего не получаю!!! Это как?
     
  4. inlanger

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

    Joined:
    7 Jan 2007
    Messages:
    985
    Likes Received:
    283
    Reputations:
    27
    А я так логинюсь:
    PHP:
    #!/usr/bin/env python
    # -*- coding: cp1251 -*-
    import urllib
    import urllib2

    urllib2
    .install_opener(urllib2.build_opener(urllib2.HTTPCookieProcessor))
    params urllib.urlencode({'email' "login@login",'pass'"pass"})
    request urllib2.Request('http://vkontakte.ru/login.php'params)
    urllib2.urlopen(request)

    cookie f.headers
    print cookie
     
  5. rudra

    rudra New Member

    Joined:
    30 Dec 2008
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    так это ж тоже самое...
     
  6. inlanger

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

    Joined:
    7 Jan 2007
    Messages:
    985
    Likes Received:
    283
    Reputations:
    27
    мой вариант немного легче :)
     
  7. rudra

    rudra New Member

    Joined:
    30 Dec 2008
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    эт, конечно, хорошо. Но как достучаться до значения value? Из этой же формы id найти можно, кстати
     
    #27 rudra, 20 Mar 2009
    Last edited: 20 Mar 2009
  8. inlanger

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

    Joined:
    7 Jan 2007
    Messages:
    985
    Likes Received:
    283
    Reputations:
    27
    PHP:
    '\" id=\"h\" value=\"b41aeb7a\">\n <'

    S.replace('\" id=\"h\" value=\"''')
    S.replace('\">\n <''')
    я так делал, работало :)
    в итоге у тебя в S остаётся только начение value
     
    #28 inlanger, 20 Mar 2009
    Last edited: 20 Mar 2009
  9. rudra

    rudra New Member

    Joined:
    30 Dec 2008
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    не понял. Можешь объяснить? Есть в форме поле value. Найти его значение не могу. Значение id из той же формы находится. Для поиска значения юзаю:
    addEx = re.compile('(?<=value=)\w+')
    hits = addEx.findall(response)
    print hits

    ЗЫ: ща попробую
     
  10. rudra

    rudra New Member

    Joined:
    30 Dec 2008
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    response = str(urllib2.urlopen(req).read())
    s = responce.replace('\" id=\"h\" value=\"', '')
    s = s.replace('\">\n <', '')
    print s

    вот так вообще не работает
     
  11. inlanger

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

    Joined:
    7 Jan 2007
    Messages:
    985
    Likes Received:
    283
    Reputations:
    27
    Если ты точно мужду чем находится искомое значение то тупо отбрось лишнее через replace(). Я делал замену текста на пустое значение, то есть - просто удалял лишнее.
     
  12. rudra

    rudra New Member

    Joined:
    30 Dec 2008
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    а! Так в том-то и беда! Я когда беру вот это значение из формы и вбиваю руками, оно его находит. А когда я беру имя поля, в котором должно быть это значение, то поле оказывается пустым.
     
  13. _nic

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

    Joined:
    5 May 2006
    Messages:
    651
    Likes Received:
    54
    Reputations:
    3
    Такой вопрос ,может кто то сталкивался:Допустим шлю пост запрос через прокси получаю в ответ заголовок с куками.Так вот если я буду для ускорения процесса слать уже гет с нужными куками без прокси капчу будет выкидывать или нет?
     
  14. dvion

    dvion New Member

    Joined:
    11 Mar 2009
    Messages:
    12
    Likes Received:
    2
    Reputations:
    0
    _nic,
    Что в конечном итоге надобно получить? Если кука есть - то и логиниться не нужно. А следовательно, и GET делать не нужно. Такая вот логика, если вопрос рассматривать так, как он описан.
     
  15. _nic

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

    Joined:
    5 May 2006
    Messages:
    651
    Likes Received:
    54
    Reputations:
    3
    Я все ясно написал.Шлю пост с мылом\паролем через прокси ,если верно получаю ответ с редиректом и куками.Потом шлю гет что бы получить инфу о анкете.Так вот если гет будет идти не через прокси,то будет капчу кидать после допустим 1000го раза, или нет?
     
  16. rudra

    rudra New Member

    Joined:
    30 Dec 2008
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Вернемся к баранам. Все хорошо кроме одного. Не могу выципить из формы приглашения имя и фамилию, если они кириллицей написаны. Латиницей ок, а кириллицей йок.

    Попробовал сделать вот так:
    ru = lambda x: unicode(x,'cp1251')
    test = ru(response[500:700])
    addEx = re.compile('(?<!<\/a>)\w+')
    hits = addEx.findall(test)
    print hits

    Все равно не видит русского имени
     
    #36 rudra, 22 Mar 2009
    Last edited: 22 Mar 2009
  17. rudra

    rudra New Member

    Joined:
    30 Dec 2008
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    заработало! Все ок. Приглашает.

    хехе. Рано я обрадовался. Ошибка безопасности, нах.
     
    #37 rudra, 22 Mar 2009
    Last edited: 22 Mar 2009
  18. rudra

    rudra New Member

    Joined:
    30 Dec 2008
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    господа, нужна ваша помощь. Есть ссылочка на добавление в друзья. Когда ее выполняю просто в браузере, то все норм, когда отсылаю скриптом, то ошибка безопастности. Смотрел через файерфокс хттп_заголовки, но там ничего более не передается. Сегодня днем еще через скрипт все срабатывало. Кто может подсказать, что не верно я контакту скармливаю:

    url = 'http://vkontakte.ru/friend.php?act=addFriend&fid=795186&h=1367d519&first_name=%D0%AE%D0%BB%D0%B8%D1%8F&last_name=%D0%A0%D0%B0%D0%B5%D0%B2%D1%81%D0%BA%D0%B0%D1%8F&sex=%D0%B0&message='
    req = urllib2.Request(url)
    req.add_header("Referer", "http://vkontakte.ru/search.php?q=%E4%EC%E8%F2%F0%E8%E9+FX&act=quick")
    req.add_header("User-Agent","Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5")
    response = str(urllib2.urlopen(req).read())
     
    #38 rudra, 22 Mar 2009
    Last edited: 22 Mar 2009
  19. rudra

    rudra New Member

    Joined:
    30 Dec 2008
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    вот. Родил. Мой первый скрипт в веб-программинге. Работает :)
    #!/usr/bin/python

    import cgi
    import urllib
    import urllib2
    import re
    import cookielib
    import time

    def loginContact(nickname, password):
    cookie = cookielib.CookieJar()
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
    urllib2.install_opener(opener)
    headers = {'User-Agent' : 'Mozilla/4.0 (compatible; MSIE 5.01; Widows NT)'}
    data = {"email":nickname, "pass":password}
    sendData = urllib.urlencode(data)
    req = urllib2.Request("http://vkontakte.ru/login.php", sendData, headers)

    try:
    vk = str(urllib2.urlopen(req).info())
    except:
    cookie = status = "ERROR"
    return cookie, status
    else:
    if "remixsid=deleted" in str(vk):
    status = "NO"
    return cookie, status
    else:
    status = "YES"
    return cookie, status

    def openSearch():
    searchURL = "http://vkontakte.ru/search.php?q=%EA%E8%E5%E2&act=quick"
    req = urllib2.Request(searchURL)
    response = str(urllib2.urlopen(req).read())
    addEx = re.compile('(?<=addToFriend\()\w+')
    ids = addEx.findall(response)

    return ids

    def addFriend(ids):
    urlArray = []

    for id in ids:
    friendURL = "http://vkontakte.ru/friend.php?act=a_add_form&fid=" + id
    urlArray.append(friendURL)

    for urlNum in range(1, len(urlArray)):
    searchURL = urlArray[urlNum]
    req = urllib2.Request(searchURL)
    response = str(urllib2.urlopen(req).read())

    addEx = re.compile('(?<=\")\w+')
    hits = addEx.findall(response[850:950])

    for i in range(0, len(hits)):
    if hits == 'h' and hits[i + 1] == 'h':
    value = hits[i + 2]
    break

    addEx = re.compile('(?<!<\/a>)\w+', re.UNICODE)
    hits = addEx.findall(response[500:700])

    for i in range(0, len(hits)):
    if hits == ids[urlNum]:
    firstName = hits[i + 1]
    lastName = hits[i + 2]
    break

    url = 'http://vkontakte.ru/friend.php?act=addFriend&fid=' + ids[urlNum] + '&h=' + value + '&first_name=' + firstName + '&last_name=' + lastName + '&sex=&message='
    req = urllib2.Request(url)
    urllib2.urlopen(req).read()

    time.sleep(2.5)

    return responce


    def main():
    print "Content-type: text/html\n"

    inputValue = cgi.FieldStorage()
    name = inputValue["name"].value
    passw = inputValue["pass"].value
    go = loginContact(name, passw)

    if go[1] == 'YES':
    addFriend(openSearch())

    main()
     
  20. termit

    termit New Member

    Joined:
    26 Oct 2004
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    авторизацию замудрили пипец, кто ни будь на пхп замутит?