最新发布
-
JS逆向-马蜂窝加速乐ck 一、马蜂窝 1.前置: 网址:aHR0cHM6Ly93d3cubWFmZW5nd28uY24v 需要逆向的参数:cookie/加速乐; 2.逆向流程: 首先我们需要理解加速乐的过程,整体逻辑如下: 首先进行第一次页面请求,它会返回一个响应的cookie,以及一段简单的js代码,那么第一次请求就会得到两个cookie,分别为 __jsluid_s和__jsl_clearance_s,第一次请求结束之后,带着这两个cookie去进行第二次请求,会得到一个js代码。它会生成一个新的cookie值,将它赋给__jsl_clearance_s,然后再带着这两个cookie进行第三次请求,就能够得到最终的响应; 理解了整体的逻辑我们就可以进行第一步了;首先查看第一次请求; 可以看到返回了一小段js代码,这段代码可以直接在控制台执行得到结果的,我们肯定需要进行第一次请求拿到这个结果,以及服务器为我们响应的cookie; 其次再进行第二次的请求,带着第一次请求得到的两个cookie去请求,会得到另一段比较长的js代码; 可以看到是经过混淆的代码,那么我们就需要去看这段js代码了,我们在这里打上一个事件断点; 然后将cookie清空进行刷新,此时就可以断住,来到我们的第二段js代码; 我们将代码折叠,来进行相应的分析; 其实它是经过了ob混淆的,第一行是一个大数组,第二行一个自执行,第三行解密函数,用来解混淆,那么重要的也就是后面的东西,结尾可以看到它调用了go函数,往里面传了参数,那么我们就来看看go函数; 搜索document,打上断点,因为cookie就是与document相关的,我们让程序执行过来; 里面其实就是cookie,那么后面的就是我们的值; 那么我们就可以去找值的生成位置了,对于加速乐来说,直接全部拿下来就可以了,进行简单的补环境即可; 需要注意的是,这里的参数里的hs也就是里面的hash算法,他一共有三种,我们需要进行一个判断,然后写三种加密,分别为md5、sha1、sha256,然后进行一个简单的判断; 我们就可以得到第二次请求需要携带的cookie,然后我们进行相应的请求进行测试; 请求成功的结果如下: py代码如下: # coding: utf-8 # File: 马蜂窝加速乐.py # Author: 下雨天 # Date: 2024/01/20 16:50 from calendar import c import re from urllib import response import execjs import requests url = "https://www.mafengwo.cn/" headers = { ··· } def first_req(): response = requests.get(url, headers=headers) cookie1 = re.findall('document.cookie=(.*?);location', response.text)[0] __jsl_clearance_s = execjs.eval(cookie1).split('clearance_s=')[-1] __jsluid_s = response.cookies.get_dict()['__jsluid_s'] return __jsluid_s,__jsl_clearance_s def sec_req(): __jsluid_s,__jsl_clearance_s = first_req() cookies = { "__jsluid_s": __jsluid_s, "__jsl_clearance_s": __jsl_clearance_s } response = requests.get(url, headers=headers, cookies=cookies).text res = execjs.eval(re.findall('};go\((.*?)\)</scri',response)[0]) # 通过正则匹配到js代码,然后用execjs.eval()将得到的值变成字典 print(res) cook3 = execjs.compile(open('马蜂窝加速乐.js', 'r', encoding='utf-8').read()).call('go', res) cookies = { "__jsluid_s": __jsluid_s, "__jsl_clearance_s": cook3.split('ce_s=')[-1], } return cookies def third_req(): cookies = sec_req() response = requests.get(url, headers=headers, cookies=cookies) print(response.text) if __name__ == '__main__': third_req() -
JS逆向-知网滑块 一、知网滑块 1. 前置 网址:https://bar.cnki.net/bar/dist/index.html?platform=NZKPT&returnUrl=https://kns.cnki.net/kcms2/article/abstract?v=tJ8vF22QX-q7kidyidVkTi-15296WO2bIZkecNQnvATomVsZzFd4vsj-3nwGsNPXaBqCOjgkuJE-Ik7jGSynrXwWxD4eTmqK7wwk-xox4OLeV639rCKCz8NKDn3bxBwoROTns2CYDbk=&uniplatform=NZKPT&language=CHS 需要逆向的参数:表单参数 pointJson 2. 逆向流程 链接后续为随意一个论文或期刊的详情页链接; 首先我们的思路就是先拿到验证码的图片,我们进行抓包分析; image-20240115204934928" style="zoom: 67%;" /> 点击刷新验证码按钮发起请求,可以看到相应的请求信息,我们查看他的返回; 可以看到这两组值应该就是图片的base64格式,那么我们验证一下; 可以看到是没有问题的,那么我们的思路就是将他们拿下来,然后进行距离的识别即可; 所以我们第一件事情就是请求验证码,我们看看它的请求需要哪一些东西;