-
-
[旧帖]
[求助]关于某58网站自动登陆的困惑
0.00雪花
-
发表于:
2013-5-12 15:02
2090
-
[旧帖] [求助]关于某58网站自动登陆的困惑
0.00雪花
最近学习python,想通过脚本自动登陆58遇到困难,58登陆密码经过了压缩的js加密,密码加密后生成三个主要参数p1,p2,p3(以前是两个,不知什么时候增加了一个)
关键js代码
$("#p1").val(getm32str($("#password").val(),timesign+""));
$("#p2").val(getm16str($("#password").val(),timesign+""));
$("#p3").val(encryptString(timesign+encodeURIComponent($("#password").val()),"010001","008baf14121377fc76eaf7794b8a8af17085628c3590df47e6534574efcfd81ef8635fcdc67d141c15f51649a89533df0db839331e30b8f8e4440ebf7ccbcc494f4ba18e9f492534b8aafc1b1057429ac851d3d9eb66e86fce1b04527c7b95a2431b07ea277cde2365876e2733325df04389a9d891c5d36b7bc752140db74cb69f"));
我分析python登陆有两个办法
1.通过python调用这两个js
2.通过分析重写加密函数或分析算法模拟加密
我通过第二种方法模拟不知为什么就是登陆不了,不知我的p1,p2,p3加密函数写的是否正确,哪位可以帮忙看看
import time
import hashlib
import urllib
import urllib2
from rsa import *
import binascii
import cookielib
class GetData():
def getPassword(self,username,password):
timesign = long(time.time()*1000);
timesignstr = '%d' % timesign;
pmd5 = hashlib.md5(password);
pubkey='008baf14121377fc76eaf7794b8a8af17085628c3590df47e6534574efcfd81ef8635fcdc67d141c15f51649a89533df0db839331e30b8f8e4440ebf7ccbcc494f4ba18e9f492534b8aafc1b1057429ac851d3d9eb66e86fce1b04527c7b95a2431b07ea277cde2365876e2733325df04389a9d891c5d36b7bc752140db74cb69f'
rsaPublickey = int(pubkey, 16)
message = timesignstr[5:11]+urllib.quote(pmd5.hexdigest())
key = PublicKey(rsaPublickey, 65537) #创建公钥
p3 = encrypt(message, key)
p3=binascii.b2a_hex(p3)
data ={
'isweak': '0',
'path': 'http://my.58.com?pts=1368330663183',
'p1': hashlib.md5(pmd5.hexdigest() + timesignstr[5:11]).hexdigest(),
'p2': hashlib.md5(pmd5.hexdigest()[8:-8] + timesignstr[5:11]).hexdigest(),
'p3': p3,
'timesign' : timesign,
'ptk': '70406448ebb04e9382d70b22295dc53a',
'cd': '1199',
'username': username,
'password': 'password'
}
return data
解压后js代码如下:
我通过第二种方法模拟不知为什么就是登陆不了,不知我的p1,p2,p3加密函数写的是否正确,哪位可以帮忙看看,我很是郁闷
[课程]Linux pwn 探索篇!