首页 > 其他分享 >猿人学12 13 简单的js逆向

猿人学12 13 简单的js逆向

时间:2024-01-08 14:07:15浏览次数:26  
标签:13 12 cookies js session sec yuanrenxue page match


解题过程

通过网络抓包工具找到请求页

猿人学12 13 简单的js逆向_javascript

 观察参数,我们会发现中间有一个m是被加密过的

猿人学12 13 简单的js逆向_开发语言_02

由于请求是ajax请求直接进行xhr断点找到m被加密的位置

猿人学12 13 简单的js逆向_开发语言_03

我们发现他的加密是使用btoa函数将页数和yuanrenxue结合加密的。而这个函数在js中是一个内置函数,是通过编码的方式进行加密,所以只需要在js文件中调用这个函数或者是使用python中的编码函数。

猿人学12 13 简单的js逆向_Chrome_04

然后依次请求即可,这里我是用js文件和python文件的形式进行获取。

import requests
import execjs
cookies = {
    "填写自己的"
}

headers = {
    'authority': 'match.yuanrenxue.cn',
    'accept': 'application/json, text/javascript, */*; q=0.01',
    'accept-language': 'zh-CN,zh;q=0.9',
    'referer': 'https://match.yuanrenxue.cn/match/12?page=5&m=eXVhbnJlbnh1ZTU=',
    'sec-ch-ua': '"Google Chrome";v="119", "Chromium";v="119", "Not?A_Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'sec-fetch-dest': 'empty',
    'sec-fetch-mode': 'cors',
    'sec-fetch-site': 'same-origin',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
    'x-requested-with': 'XMLHttpRequest',
}


sum = 0
for page in range(1,6):
    sign = execjs.compile(open("js文件",'r',encoding='utf--8').read()).call('main1',str(page))
    params = {
    'page': page,
    'm': sign,
    }
    response = requests.get('https://match.yuanrenxue.cn/api/match/12', params=params, cookies=cookies, headers=headers)
    
    data = response.json()["data"]
    for i in data:
        sum+=i["value"]
print(sum)

js代码

function main1(page){
    return btoa("yuanrenxue"+page)
}

13T

直接获取源代码,进行拼接,然后相加即可

猿人学12 13 简单的js逆向_json_05

猿人学12 13 简单的js逆向_开发语言_06

获得之后进行拼接,可以得到一个cookies

然后使用session进行更新,依次请求五页内容即可,但是这里我手动设置的cookie不知道为什么不可以用(懂得留言)

import re
import requests 
session = requests.Session()
headers = {
    "User-Agent": "yuanrenxue.project",
}
cookies = {
'sessionid': '自己的'
}
session.cookies.update(cookies)
url = "http://match.yuanrenxue.com/match/13"
r = session.get(url)
reg = re.compile("'([a-zA-Z0-9=|_])'")
results = reg.findall(r.text)
cookie =  ''.join(results)
key,value = cookie.split('=')
session.cookies.set(key,value)
sum = 0
for i in range(1,6):
    api_url =f"http://match.yuanrenxue.com/api/match/13?page={i}"
    r = session.get(api_url,headers = headers)
    print(session.cookies)
    data = r.json()
    values = data["data"]
    for value in values:
        sum += value["value"]
print (sum)

 

标签:13,12,cookies,js,session,sec,yuanrenxue,page,match
From: https://blog.51cto.com/u_16426526/9143895

相关文章

  • 逆向微博热搜时光机(js逆向)
    直接分析,我们需要先查询一下网络请求的方式,通过使用反页请求,我们可以知道这个时光机的本质上是通过ajax请求进行的数据传输,所以这里我们可以减少查询的范围,可以直接调试查找XHR类型的数据传输内容,这里我推荐大家使用翻页后的数据查询,主要是为了鉴定一下该参数的携带加密位置(timeid......
  • 猿人学第一题 js混淆 双重加密(详解)
    当我们点击分页的时候可以确定这个请求过程是ajax请求,所以直接使用抓包工具找到储存信息的请求。找到这个请求之后,我们明显发现?后面的参数m是一个加密过的由于这个请求属于ajax请求,现在我们可以直接使用xhr断点调试找到位置打上断电之后直接分页请求。进入调试直接在右边堆栈中开......
  • 亚马逊美国站|ASTM F1235-18便携式儿童椅安全标准
    便携式儿童外出餐椅是一种无腿座椅,可将其固定在桌子侧方,所处的位置和高度恰好可以让坐在其中的儿童在桌面上用餐。其所固定桌子提供支撑力。便携式儿童外出餐椅适用于无测试报告将面临的处罚:如果您未在适用的截止日期之前提供所需信息,亚马逊可能会:·删除相关商品信息·暂停您添加新......
  • 使用Jsoup的Java网络爬虫示例:抓取在线考试平台试题数据
    网络爬虫是一种强大的工具,用于从互联网上收集信息。而在Java中,Jsoup是一款常用的HTML解析库,提供了便捷的API来解析、提取和操作HTML数据。在本文中,我们将深入探讨如何利用Jsoup库构建一个Java网络爬虫,并使用代理服务器来抓取在线考试平台的试题数据。介绍Jsoup和网络爬虫首先,我们将......
  • 糟糕的设计,这个 API 在 13 岁时被废弃了
    hi大家好,我是DHL。就职于美团、快手、小米。公众号:ByteCode,专注有用、有趣的硬核原创内容,Kotlin、性能优化、系统源码、图解算法、大厂面经。每个Android开发者,每年都要面对AndroidAPI革命性的改变,动不动就废弃一个API,然而新的API比旧的API更加糟糕。给开发者增加了很......
  • 文心一言 VS 讯飞星火 VS chatgpt (174)-- 算法导论13.3 3题
    三、用go语言,假设图13-5和图13-6中子α、β、γ、δ和ε的黑高都是k。给每张图中的每个结点标上黑高,以验证图中所示的转换能保持性质5。文心一言:在Go语言中,你可以通过以下步骤来为图13-5和图13-6中的每个节点分配黑高,以验证性质5。首先,我们需要定义一个结构体来表示图中的节点,然......
  • 2023-2024-1 20231305 《计算机基础与程序设计》课程总结
    第1周作业https://www.cnblogs.com/zhen-meng/p/17740268.html第2周作业https://www.cnblogs.com/zhen-meng/p/17750180.html第3周作业https://www.cnblogs.com/zhen-meng/p/17765972.html第4周作业https://www.cnblogs.com/zhen-meng/p/17781309.html第5周作业https://www.cn......
  • JS加密/解密之常见的JS代码加密
    在软件开发领域,混淆(JS)是一种常见的技术,通过改变代码结构、命名和逻辑,增加代码的复杂性,使其对于逆向工程者变得更加困难。然而,有时候开发者可能需要解开混淆,以便理解、维护或修改代码。在本文中,我们将简要讨论一些可能用于obfuscated代码解密的基本逻辑。JS解密的基本思路JS代码......
  • 20231320 《计算机基础与程序设计》课程总结
    20231320《计算机基础与程序设计》课程总结每周作业链接汇总第0周:自我介绍第1周:第一周学习总结第2周:第二周学习总结第3周:第三周学习总结第4周:第四周学习总结第5周:第五周学习总结第6周:第六周学习总结第7周:第七周学习总结第8周:第八周学习总结第9周:第......
  • 1212
    #include<bits/stdc++.h>usingnamespacestd;constintmaxn=1e3+9;longlongsum[maxn][maxn];intmain(){intn,m,c;cin>>n>>m>>c;for(inti=1;i<=n;i++){for(intj=1;j<=m;j++)......