猿人学12 13 简单的js逆向

2023-12-13 03:39:05

解题过程

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

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

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

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

然后依次请求即可,这里我是用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

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

获得之后进行拼接,可以得到一个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)

?

文章来源:https://blog.csdn.net/screamn/article/details/134890560
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。