首页 > 其他分享 >逗游网js逆向

逗游网js逆向

时间:2023-07-30 18:22:33浏览次数:37  
标签:nonce 逆向 www 逗游网 ts js https password cn

url:https://www.doyo.cn/passport/login?next=/

1、抓包得到2个Ajax文件,根据名字猜测与登录相关的请求名字为login

 

# 多次抓包,分析可得:
- 请求地址:https://www.doyo.cn/User/Passport/login
- 请求方式:POST
- 请求头:无特殊
- 请求体:
    username: ahxbhhjbq
    password: bfdadc43792dfce972e2a8f06b994160828e088e  # 变化
    remberme: 1
    next: JTJG

 

2、通过观察发现请求体中只有password参数变化,其余三个参数固定

 

3、通过请求地址进行搜索,发现只有一个搜索结果,其中第103行可疑:

 

4、双击进入第103行代码,发现:

 

// 发现:
// 1.password的生成与nonce、ts有关,而nonce、ts在 https://www.doyo.cn/User/Passport/token 的请求结果中,故可先通过发送请求到该网址以获取nonce、ts值
​
// 2.password加密方式:Sha1.hash(...)
pwd = Sha1.hash($(".login_grey[name='user_password']").val());
pwd = Sha1.hash(nonce+ts+pwd);

5、进入Sha1.hash内部,将代码复制黏贴到 douyou.js 中

 

 

python代码整合:

import json
import requests
import random

import subprocess
from functools import partial

subprocess.Popen = partial(subprocess.Popen, encoding='utf-8')
import execjs

headers = {
    "Referer": "https://www.doyo.cn/passport/login?next=https://www.doyo.cn/",
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36",
}


def get_nonce_and_ts():
    url = "https://www.doyo.cn/User/Passport/token"

    params = {
        "username": "awacaerv",
        "random": random.random()
    }

    res = requests.get(url, params=json.dumps(params), headers=headers)
    nonce = res.json()['nonce']
    ts = res.json()['ts']

    return nonce, ts


def get_password(nonce, ts):
    input_pwd = "1234567"

    with open("douyou.js", 'r', encoding='utf8') as f:
        JS_code = f.read()

    JS = execjs.compile(JS_code)
    password = JS.call("Sha1.hash", input_pwd)
    password = JS.call("Sha1.hash", nonce + str(ts) + password)
    return password


if __name__ == '__main__':
    nonce, ts = get_nonce_and_ts()
    password = get_password(nonce, ts)
    print(password)

    url = "https://www.doyo.cn/User/Passport/login"

    data = {
        'username': 'awacaerv',
        'password': password,  # 变化
        'remberme': '1',
        'next': 'JTJG',
    }

    res2 = requests.post(url, data=data, headers=headers)
    print(res2.text)

 

 

标签:nonce,逆向,www,逗游网,ts,js,https,password,cn
From: https://www.cnblogs.com/SyrLy/p/17591799.html

相关文章

  • AJAX--基于json格式的数据交换
    前端代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>获取信息列表</title>......
  • 从0开发属于自己的nestjs框架的mini 版 —— 终极篇
    这篇其实是最简单的,就是将前面所实现的ioc,路由整合在一起就可以了话不多说,直接上代码\src\koa-ioc.ts引入相关库importKoafrom"koa";importkoaRouterfrom"koa-router";import{ContainerModule}from"./ioc-module";import{Type}from"./ioc-core.ts"......
  • 从0开发属于自己的nestjs框架的mini 版 —— koa-decorator路由篇
    这篇主要是实现路由注解,用过nestjs的都知道,其路由都是通过注解来实现的,如有控制器@Controller(),@Get()...等等,nestjs底层框架可选是expres或者是Fastify,在这里我选择koa2。话不多说,直接上代码src/koa-decorator.ts引入相关库import"reflect-metadata";importpathfro......
  • 从0开发属于自己的nestjs框架的mini 版- ioc篇
    如今,nodejs的框架也是层出不穷,偏向向底层的有express、koa、Fastify,偏向于上层有阿里的Egg、thinkjs、还有国外的nestjs。在这里我更喜欢nestjs,主要是其用了不同于其他框架的思想,采用分层,AOP(面向切面编程),OOP(面向对象编程)的设计思想。如果想要自己写一个类似的框架,该......
  • js代码优化
    //案例:functionpreviewWeek(i){switch(i){case1:return'星期一'break;case2:return'星期二'break;case3:return'星期三'break;......
  • React(五):jsx语法
    1.jsx语法<!DOCTYPEhtml><html><head><metacharset="utf-8"><title>jsx语法</title><scriptsrc="https://unpkg.com/react@18/umd/react.development.js"></script><script......
  • 写接口测试,遇到JSONDecodeError,要怎么解决?
     接口传参,deftest01_login_success(self):#账密登录data=json.dumps({"username":"5bz9aPaP5rkhXaSQlPsGpg==","password":"mxqZphA/vSH2MMdOP5kTSg=="}) 运行时发现接口报错:JSONDecodeError使用其他接口测试发现好像是传参加密解......
  • [翻译] 如何在 Node.js 中使用 OpenAI 的 ChatGPT API
    人工智能(AI)一直在彻底改变我们与技术交互的方式,而聊天机器人是这一趋势最突出的例子之一。随着对能够理解自然语言并提供有用响应的聊天机器人的需求不断增加,OpenAI的ChatGPTAPI已成为开发人员的热门选择。在这篇博文中,我们将探讨如何在Node.js(一种用于构建Web应用......
  • HuggingFace | config.json参数讲解
    在HuggingFace中,config.json文件是用于配置预训练模型参数的文件。这个文件通常包含了模型的架构、超参数和其他模型配置信息。它是一个JSON格式的文件,可以在加载模型时用来初始化模型的配置。在加载模型时,from_pretrained()方法通常会自动加载相应的config.json文件。例如,BertF......
  • JavaScript、ECMA、CommonJs、NodeJS、TypeScript的关系
    返回JavaScript发布时间:1995发布公司:Netscape(网景)它是一种高级的解释型编程语言,简称JS它最初的设计目标是改善网页的用户体验。......