某163企业邮箱js逆向登录解析
平时我们发邮件时,如果用网页端发送邮件那么就需要登录,登录之后需要手动进行邮件发送的一些操作。如果我们用python逆向登录后,就可以在用接口模拟网页进行邮件的发送。问题主要是解决逆向登录,那么后面发送只要保持cookie就可以调用接口发送了。下面讲解一下逆向登录原理。
首先是登录企业邮箱网页地址
然后分析一下请求接口参数
可以发现此处的密码是通过rsa加密的
接下来就断点分析,搜索关键词encrypt进行密码加密处进行断点,可以看到这这就是密码加密的地方。
接下来进入函数分析,此处的h进行返回来加密的密码。
接下来就是js复原,我们把这js文件复制到本地。
本地运行js文件进行测试,看看是否能获取到加密后的密码,可以看到此处报了错误。
此处主要是this.n为undefined,那么就要分析这个this.n是从哪里来,进过分析this.n在这个位置。那我们试着定义全局变量mkk,用mkk去接收this.n
再次进行运行测试还是报同样的错误,说明函数运行没有执行到这个方法,那么在调用方法前,先执行这个方法RSASetPublic,这个方法的N,E我们断点进行分析。发现此处是固定的值
接下来我们再进行运行,可以看到已经成功获取到加密的密码了。
但是在密码加密时,后面有一串随机数,这个随机数需要同步。接下来就是获取随机数的来源,可以了解到随机数是某get请求json数据。
好了逆向分析结束,接下来就是python去模拟请求了。代码我就不解释了
最后就是登录,只要看到返回的url是登录后界面就可以了。如需代码可以私信。好了,打完收工睡觉!
def login(username,password,imgcode=''):
url = 'https://mailh.qiye.163.com/login/domainEntLogin'
data = {
'pubid':'ilZ2G',
'passtype':'3',
'support_verify_code':'1',
'account_name':username,
'domain':'beiwaionline.com',
'password':password,
'verify_code':imgcode,
'secure':'1',
'all_secure':'1',
'ch':'',
}
resp = session.post(url=url,headers=headers,data=data,verify=False)
print(resp.url)
另外,有需要软件和快排源码的,可以在我的网站进行了解,可以评论留言给我。http://www.seoyiwu.com