当前位置: 首页 > news >正文

requests,js逆向练习

 自上而下排除jquery源码,点进去utils

发现第一次请求是getTime

 

 

 再次运行此断点才是登录,这个时候密码已经被加密了 

 

查看上级js页面,发现加密函数

 

 

进去看函数加密过程 

 

 得到结果RSA

 

python代码 

import base64
import jsonimport requests
from fake_useragent import UserAgent
from Crypto.Cipher import PKCS1_v1_5
from Crypto.PublicKey import RSAfrom spider_WE.utils.tujian import crack_code_img_b64username = '账号'
password = '密码'
headers = {'User-Agent': UserAgent().random,'Content-Type': 'application/json; charset=utf-8'
}
# 1.进入登录页->加载cookie
session = requests.session()
resp = session.get('https://user.wangxiao.cn/login')# 2.获取验证码->打码平台
verify_code_url = 'https://user.wangxiao.cn/apis//common/getImageCaptcha'
verify_resp = session.post(verify_code_url, headers=headers)
verify_data = verify_resp.json()
verify_b64_img = verify_data['data'].split('base64,')[-1]
verify_code = crack_code_img_b64(verify_b64_img, 3)# 3.把密码加密
get_time_url = 'https://user.wangxiao.cn/apis//common/getTime'
get_time_resp = session.post(get_time_url, headers=headers)
get_time_data = get_time_resp.json()['data']
pwd = password + str(get_time_data)
pub_key = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDA5Zq6ZdH/' \'RMSvC8WKhp5gj6Ue4Lqjo0Q2PnyGbSkTlYku0HtVzbh3S9F9oHbxeO55E8tEEQ5wj/' \'+52VMLavcuwkDypG66N6c1z0Fo2HgxV3e0tqt1wyNtmbwg7ruIYmFM+dErIpTiLRDvOy+0vgPcBVDfSUHwUSgUtIkyC47UNQIDAQAB'
rsa_key = RSA.import_key(base64.b64decode(pub_key))
# 加密
rsa = PKCS1_v1_5.new(rsa_key)
crypto = rsa.encrypt(pwd.encode('utf-8'))
crypto_pwd = base64.b64encode(crypto).decode('utf-8')# 4.登录
login_url = 'https://user.wangxiao.cn/apis//login/passwordLogin'
login_data = {'imageCaptchaCode': verify_code,'password': crypto_pwd,'userName': username
}
login_resp = session.post(login_url, data=json.dumps(login_data), headers=headers)
login_info = login_resp.json()['data']# 5.对登录后的cookie信息进行整理
cookie_dic = {"autoLogin": "null","OldPassword": login_info['passwordCookies'],"OldPassword_": login_info['passwordCookies'],"OldUsername": login_info['userNameCookies'],"OldUsername_": login_info['userNameCookies'],"OldUsername2": login_info['userNameCookies'],"OldUsername2_": login_info['userNameCookies'],f"{login_info['userName']}_exam": login_info['sign'],"token": login_info['token'],"UserCookieName": login_info['userName'],"UserCookieName_": login_info['userName'],"userInfo": login_info,"sessionId": session.cookies.get("sessionId")
}

http://www.lryc.cn/news/288389.html

相关文章:

  • Chrome 插件调试
  • 云轴科技ZStack成为交通运输业上云用云推进中心首批成员单位
  • 代码随想录算法训练营31期day4,力扣24+19+02.07+142
  • eNSP学习——利用单臂路由实现VLAN间路由
  • ISO27001认证:企业与个人发展的必备之选
  • SpringBoot使用druid
  • TongWeb8交流常见问答集
  • GBASE南大通用分享-mysql中的load data infile用法
  • Ubuntu18编译jdk8源码
  • 《开始使用PyQT》 第01章 PyQT入门 02 安装Python3和PyQT6
  • Java集合-Map接口(key-value)
  • 【操作系统】实验九 写一个设备驱动程序
  • 基于密码技术的身份认证——基于对称密码体制的身份认证
  • 算法36:单调栈结构、子数组最小乘积的最大值问题(力扣1586)----单调栈
  • django mysql in 有序返回
  • c++24.1.26嵌套if语句
  • 机器学习--基础概念(二)
  • Ubuntu20.04 安装 ROS noetic + MAVROS
  • 【数学笔记】一元n次不等式,分式不等式,绝对值不等式
  • 转载-android性能优化
  • 笔记 | Clickhouse命令行查询
  • Dockerfile-xxxx
  • Vue中的$attrs
  • 使用阿里云的oss对象存储服务实现图片上传(前端vue后端java详解)
  • python实例100第32例:使用a[::-1]按相反的顺序输出列表的值
  • python执行脚本的时候获取输入参数
  • Halcon指定区域的形状匹配
  • Linux——常用命令
  • 外包干了2个月,技术反而退步了...
  • 洛谷C++简单题练习day6—P1830 城市轰炸