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/MRA58N) 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 = n
js_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 account
import requests    # 获取到网站的cookie   实现状态保存
session = requests.session()session.headers = {'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) 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 = n
js_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)

python-js逆向人人网登录相关推荐

  1. [Python] js逆向初探: 某麦榜单

    系列文章目录 [Python] js逆向初探: 某麦榜单 文章目录 系列文章目录 免责声明 前言 分析 通用的抓包方法... 偷懒作弊的抓包方法 万恶之源 总结 免责声明 本篇文章仅用学习交流和日常记 ...

  2. JS逆向steam登录

    JS逆向steam登录 前言: 我们爬虫有时候,会遇到登录才能获取到数据的情况,最开始的时候我们只需要加入请求的data参数就可以,可是现在网站为了反爬,对登录的密码或者账号都做了加密处理,如果我们不 ...

  3. Python JS逆向篇(二)有道翻译

    Python JS逆向篇(二)有道翻译 逆向sign参数 js实现 py实现 解密返回结果 js实现 py未实现 实战 逆向主题:有道翻译sign参数及解密返回结果. (注:文章所涉及内容只做学习参考 ...

  4. python爬虫 房天下js逆向模拟登录

    js逆向学习后跟着教程第一次实战.目标链接 这次用到的是requests和execjs,execjs主要是用来执行js代码,win系统直接在命令行pip install execjs安装就ok了. 网 ...

  5. Python爬虫进阶之JS逆向国航登录

    查看全文 http://www.taodudu.cc/news/show-3320266.html 相关文章: selenium模拟国航滑块验证码 ps制成底色.盖印图层的快捷键.液化快捷键 Phot ...

  6. Python JS逆向实战项目:某咕视频逆向分析 攻破~~

    文章目录 目标:实现咪咕视频登录 逆向探究 成果展示 源码 更多优质文章尽在,点我 本文仅供学习参考,如有侵权请联系删除!!! 声明:本文不是什么手把手非常细致的教学,可能需要有点经验的,当然了,小白 ...

  7. Python - JS逆向破解实现翻译软件

    首先先通过POST请求向翻译网页发送请求,获取到返回的json数据 import requestsurl = "https://fanyi.youdao.com/translate_o?sm ...

  8. python爬虫,人人网登录

    coding=utf-8 """ author:lei function: """ import requests import js2py ...

  9. 人人网登录并写留言板(Requests,js逆向)

    一.简介 主要实现人人网登录以及发布留言板信息 requests js逆向 二.实现过程 2.1 登录(案例使用账号为18888888888 密码123456 后面成功登录使用的是自己的账号) 登录链 ...

最新文章

  1. IDEA 自动生成 serialVersionUID
  2. 【面试题】百度糯米java工程师面试
  3. android软键盘控制
  4. 【音乐拼接】WAV格式
  5. 微信小程序 canvas API
  6. 由浅入深了解统计机器翻译模型
  7. 万王之王显示服务器尚未对外开放,《万王之王3》公测5月26日火爆开启 姚星彤性感代言...
  8. win7去掉桌面快捷方式小箭头
  9. 调出cmd输入时的光标
  10. 洗料系列-编程语言专题-Java 19【线程×,协程√】
  11. 程序员进阶神器,ProcessOn绘制时序图
  12. 算法设计与分析(十四)
  13. 某工控图片上传服务 CPU 爆高分析
  14. 二本本科,银行外包开发工作 4 个月有余。聊聊外包公司工作的一些真实感受!...
  15. heaps 和 priority queue堆和优先队列的定义和数据结构表示
  16. YOLO V6系列(一) -- 跑通YOLO V6算法
  17. 火狐怎么导入旧的火狐数据_Firefox很棒
  18. 游戏行业比影视行业哪个更有前景?来看数据说话!
  19. 交叉引用跳转不到后面_参考文献的作用与正确引用避免查重
  20. 【批处理脚本】-1.5-目录切换命令cd

热门文章

  1. create-react-app搭建安装步骤
  2. 【OpenGl】OpenGL之弧度和角度的换算
  3. 第十二课 Java基础篇——面向对象进阶(一)
  4. 【类模板与模板类】 类模板与模板类详解
  5. Xutils3的使用
  6. 浪潮云存储服务器及操作系统认识,浪潮云海OS--云数据中心操作系统
  7. 微信小程序-设置显示层级
  8. python使用socket进行多线程收发与路径计算模拟路由器网络
  9. VLFeat工具包下载
  10. 命令行解决svn版本冲突