首页 > 编程知识 正文

人人网,人人美剧网电影天堂

时间:2023-05-05 04:43:34 阅读:223266 作者:3949

python-js逆向人人网登录 一项目准备二项目分析三 简易代码分享

一项目准备

环境:win10, python3.7
开发工具:pycharm
所需工具包:requests,js2py
目标网址链接: 人人网

二项目分析

获取目标的登录信息
发现手机端的数据比web端的数据更简洁,抓包跟换成手机端的
不要在一棵树上吊死

找到登录页面
输入账号密码(最好是先输入错误的)抓取到登录的数据接口

接口网址:http://activity.renren.com/livecell/ajax/clog
请求方法:post
请求参数

准备开始搬砖
phoneNum 是账号
password是加密的
rkey是变化的
查找password的生成方法

得出两个数据的来源

解读js代码
rkey是由js请求的到的json数据 需要想对rkey进行请求

import requests # 发送请求的工具包# 获取到网站的cookie 实现状态保存session = requests.session()session.headers = { 'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/cxdpw) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Mobile Safari/537.36'}response = session.get('http://activity.renren.com/livecell/rKey').json()print(response)n = response["data"]


setMaxDigits,RSAKeyPair,encryptedString 来自于不同的js文件

需要将这3个js文件代码加载到js环境
确定关键的js代码
以及js代码需要传递的参数

t = { "password": account.password}but_js = session.get('http://s.xnimg.cn/a85738/wap/mobile/wechatLive/js/Barrett.js').content.decode()big_js = session.get('http://s.xnimg.cn/a85738/wap/mobile/wechatLive/js/BigInt.js').content.decode()rsa_js = session.get('http://s.xnimg.cn/a85738/wap/mobile/wechatLive/js/RSA.js').content.decode()# 创建js对象js_ven = js2py.EvalJs()js_ven.execute(big_js)js_ven.execute(rsa_js)js_ven.execute(but_js)js_ven.n = njs_ven.t = tdata_js = """ t.password = t.password.split("").reverse().join(""), setMaxDigits(130); var o = new RSAKeyPair(n.e,"",n.n) , r = encryptedString(o, t.password);"""js_ven.execute(data_js)print(js_ven.r) 三 简易代码分享

本文章只提供学习,切勿用在其他用途

import js2py # 讲js代码转换成python能运行的import accountimport requests # 获取到网站的cookie 实现状态保存session = requests.session()session.headers = { 'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/cxdpw) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Mobile Safari/537.36'}response = session.get('http://activity.renren.com/livecell/rKey').json()print(response)n = response["data"]t = { "password": account.password}but_js = session.get('http://s.xnimg.cn/a85738/wap/mobile/wechatLive/js/Barrett.js').content.decode()big_js = session.get('http://s.xnimg.cn/a85738/wap/mobile/wechatLive/js/BigInt.js').content.decode()rsa_js = session.get('http://s.xnimg.cn/a85738/wap/mobile/wechatLive/js/RSA.js').content.decode()# 创建js对象js_ven = js2py.EvalJs()js_ven.execute(big_js)js_ven.execute(rsa_js)js_ven.execute(but_js)js_ven.n = njs_ven.t = tdata_js = """ t.password = t.password.split("").reverse().join(""), setMaxDigits(130); var o = new RSAKeyPair(n.e,"",n.n) , r = encryptedString(o, t.password);"""js_ven.execute(data_js)print(js_ven.r)data = { 'phoneNum': account.phoneNum, 'password': js_ven.r, 'c1': '-100', 'rKey': n['rkey']}url = "http://activity.renren.com/livecell/ajax/clog"result = session.post(url, data=data)print(result.text)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。