马蜂窝 cookie 加密(加速乐)

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 本文介绍了一次针对马蜂窝网站的逆向工程过程,旨在学习交流,不提供完整代码及敏感信息。文中详细描述了三次GET请求的过程,通过抓包工具分析了请求头和响应内容,并逐步解析了`cookie`参数的生成方法。最终通过携带特定`cookie`成功获取页面内容。严禁将本文内容用于非法或商业用途,违者自行承担一切后果。未经许可不得转载或修改后传播。

声明

本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!

本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请联系作者立即删除!

逆向目标

  1. 网址https://www.mafengwo.cn/i/24292737.html
  2. 接口https://www.mafengwo.cn/i/24292737.html
  3. 参数:cookie

    逆向过程

    image.png
    老规矩,先分析网络请求
    image.png
    总共发起了三次网络请求:
    ```bash

    1. 第一次请求

    Request URL: https://www.mafengwo.cn/i/24292737.html
    Request Method: GET
    Status Code: 521

2. 第二次请求

Request URL: https://www.mafengwo.cn/i/24292737.html
Request Method: GET
Status Code: 521

3. 第三次请求

Request URL: https://www.mafengwo.cn/i/24292737.html
Request Method: GET
Status Code: 200 OK

我们使用抓包工具来看下
![image.png](https://ucc.alicdn.com/pic/developer-ecology/tfacr2a7lsbws_a6ccb5ac1f9f4e419ad347855b139a8b.png)
然后我们观察下获取到实际内容的第三次请求,可以看到是`加速乐`
![image.png](https://ucc.alicdn.com/pic/developer-ecology/tfacr2a7lsbws_04ab28af29d048b09a20b1d66250d129.png)
`Application` 标签页下
![image.png](https://ucc.alicdn.com/pic/developer-ecology/tfacr2a7lsbws_81691cbdc08046a7977bcb67cba33b0f.png)
#### 逆向分析
我们下来分析第一次请求,按照如下方式复制`curl请求`
![image.png](https://ucc.alicdn.com/pic/developer-ecology/tfacr2a7lsbws_0ea3ea163cc94c5b8ccaa90b69f90f6b.png)
粘贴到如下
![image.png](https://ucc.alicdn.com/pic/developer-ecology/tfacr2a7lsbws_f4c409b9709547d1939144ecee77120f.png)
复制右侧的`python`脚本执行
```python
# 第一次请求可以不带cookie
import requests

headers = {
    "Host": "www.mafengwo.cn",
    "Pragma": "no-cache",
    "Cache-Control": "no-cache",
    "sec-ch-ua": "\"Not A(Brand\";v=\"99\", \"Google Chrome\";v=\"121\", \"Chromium\";v=\"121\"",
    "sec-ch-ua-mobile": "?0",
    "sec-ch-ua-platform": "\"macOS\"",
    "Upgrade-Insecure-Requests": "1",
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
    "Sec-Fetch-Site": "same-origin",
    "Sec-Fetch-Mode": "navigate",
    "Sec-Fetch-User": "?1",
    "Sec-Fetch-Dest": "document",
    "Referer": "https://www.mafengwo.cn/i/24292737.html",
    "Accept-Language": "en-US,en;q=0.9"
}
url = "https://www.mafengwo.cn/i/24292737.html"
response = requests.get(url, headers=headers)

print(response.text)
print(response)

# 输出如下
<script>document.cookie=('_')+('_')+('j')+('s')+('l')+('_')+('c')+('l')+('e')+('a')+('r')+('a')+('n')+('c')+('e')+('_')+('s')+('=')+(-~[]+'')+(-~[6]+'')+(~~{}+'')+(1+7+'')+(1+[0]-(1)+'')+(3+'')+((2^1)+'')+((1<<1)+'')+(-~(3)+'')+(1+8+'')+('.')+(-~(8)+'')+((1<<1)+'')+(2+6+'')+('|')+('-')+(-~[]+'')+('|')+(+!+[]+'')+('%')+(-~1+'')+('B')+('k')+('h')+(6+'')+(-~1+'')+('T')+('I')+('g')+('S')+('u')+('D')+('y')+(~~false+'')+('i')+('w')+('T')+('U')+('i')+('b')+('C')+('Z')+('x')+('v')+('U')+('%')+(0+1+0+1+'')+('B')+('M')+('%')+((1+[2]>>2)+'')+('D')+(';')+(' ')+('M')+('a')+('x')+('-')+('a')+('g')+('e')+('=')+((1|2)+'')+(3+3+'')+(~~{}+'')+((+[])+'')+(';')+(' ')+('P')+('a')+('t')+('h')+('=')+('/')+(';')+(' ')+('S')+('a')+('m')+('e')+('S')+('i')+('t')+('e')+('=')+('N')+('o')+('n')+('e')+(';')+(' ')+('S')+('e')+('c')+('u')+('r')+('e');location.href=location.pathname+location.search</script>

我们直接把script 标签内的 js代码 拷贝出来执行

document = {
   };
location = {
   };
document.cookie=('_')+('_')+('j')+('s')+('l')+('_')+('c')+('l')+('e')+('a')+('r')+('a')+('n')+('c')+('e')+('_')+('s')+('=')+(-~[]+'')+(-~[6]+'')+(~~{
   }+'')+(1+7+'')+(1+[0]-(1)+'')+(3+'')+((2^1)+'')+((1<<1)+'')+(-~(3)+'')+(1+8+'')+('.')+(-~(8)+'')+((1<<1)+'')+(2+6+'')+('|')+('-')+(-~[]+'')+('|')+(+!+[]+'')+('%')+(-~1+'')+('B')+('k')+('h')+(6+'')+(-~1+'')+('T')+('I')+('g')+('S')+('u')+('D')+('y')+(~~false+'')+('i')+('w')+('T')+('U')+('i')+('b')+('C')+('Z')+('x')+('v')+('U')+('%')+(0+1+0+1+'')+('B')+('M')+('%')+((1+[2]>>2)+'')+('D')+(';')+(' ')+('M')+('a')+('x')+('-')+('a')+('g')+('e')+('=')+((1|2)+'')+(3+3+'')+(~~{
   }+'')+((+[])+'')+(';')+(' ')+('P')+('a')+('t')+('h')+('=')+('/')+(';')+(' ')+('S')+('a')+('m')+('e')+('S')+('i')+('t')+('e')+('=')+('N')+('o')+('n')+('e')+(';')+(' ')+('S')+('e')+('c')+('u')+('r')+('e');location.href=location.pathname+location.search
console.log(document.cookie);

// OUTPUT
__jsl_clearance_s=1708933249.928|-1|1%2Bkh62TIgSuDy0iwTUibCZxvU%2BM%3D; Max-age=3600; Path=/; SameSite=None; Secure

同上继续分析第二次请求,返回值如下

# 返回内容
<script>
    document.cookie = ('_') + ('_') + ('j') + ('s') + ('l') + ('_') + ('c') + ('l') + ('e') + ('a') + ('r') + ('a') + ('n') + ('c') + ('e') + ('_') + ('s') + ('=') + (-~false + '') + (3 + 4 + '') + (~~[] + '') + (-~[7] + '') + (1 + 8 + '') + (3 + '') + (1 + 5 + '') + ((1 << 2) + '') + ((+false) + '') + (-~(4) + '') + ('.') + (1 + 5 + '') + (3 + 4 + '') + (-~0 + '') + ('|') + ('-') + (-~[] + '') + ('|') + ('n') + ('r') + ('m') + ('%') + (0 + 1 + 0 + 1 + '') + ('B') + ('u') + ('b') + ('O') + ('H') + ('M') + ('G') + ('e') + ('B') + ('D') + ('A') + (([2] + 0 >> 2) + '') + ('Q') + ('X') + ('Q') + ('C') + ('D') + (-~(4) + '') + ('d') + ('K') + ('W') + ('m') + ('f') + ('I') + ('%') + (3 + '') + ('D') + (';') + (' ') + ('M') + ('a') + ('x') + ('-') + ('a') + ('g') + ('e') + ('=') + (-~[2] + '') + ([2] * (3) + '') + (~~{
   } + '') + ((+false) + '') + (';') + (' ') + ('P') + ('a') + ('t') + ('h') + ('=') + ('/') + (';') + (' ') + ('S') + ('a') + ('m') + ('e') + ('S') + ('i') + ('t') + ('e') + ('=') + ('N') + ('o') + ('n') + ('e') + (';') + (' ') + ('S') + ('e') + ('c') + ('u') + ('r') + ('e');
    location.href = location.pathname + location.search
</script>

# 输出如下
__jsl_clearance_s=1708934799.525|-1|P7xfo%2FD8ppojDXKRuV6GCZe%2BgW8%3D; Max-age=3600; Path=/; SameSite=None; Secure

# 返回Headers
Connection:keep-alive
Connection:close
Date:Mon, 26 Feb 2024 08:33:25 GMT
Server:nginx
Set-Cookie:__jsluid_s=384752ae6df9332fabc335968c604588; max-age=31536000; path=/; HttpOnly; SameSite=None; secure
Transfer-Encoding:chunked
X-Via-Jsl:ecc62cf,-

可以看到通过第二次请求,我们可以拿到 __jsluid_s__jsl_clearance_s
最后,第三次请求带上第二步生成的两个参数 __jsluid_s__jsl_clearance_s,就可以拿到最终结果

结果验证

import requests


headers = {
   
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
    "Accept-Language": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7",
    "Cache-Control": "no-cache",
    "Connection": "keep-alive",
    "Pragma": "no-cache",
    "Referer": "https://www.mafengwo.cn/i/24292737.html",
    "Sec-Fetch-Dest": "document",
    "Sec-Fetch-Mode": "navigate",
    "Sec-Fetch-Site": "same-origin",
    "Upgrade-Insecure-Requests": "1",
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36",
    "sec-ch-ua": "\"Not A(Brand\";v=\"99\", \"Google Chrome\";v=\"121\", \"Chromium\";v=\"121\"",
    "sec-ch-ua-mobile": "?0",
    "sec-ch-ua-platform": "\"macOS\""
}
cookies = {
   
    "__jsluid_s": "384752ae6df9332fabc335968c604588",
    "__jsl_clearance_s": "1708936405.739|0|L5szFUsv5X88tahEhh3Yk256Pi8%3D"
}
url = "https://www.mafengwo.cn/i/24292737.html"
response = requests.get(url, headers=headers, cookies=cookies)

print(response.text)
print(response)

image.png

目录
相关文章
|
6月前
|
数据安全/隐私保护
18、cookie注入(base64加密)
18、cookie注入(base64加密)
55 0
|
3月前
|
数据采集 JavaScript 前端开发
同花顺股票数据逆向:Cookie加密和Hook注入
同花顺股票数据逆向:Cookie加密和Hook注入
198 0
|
6月前
|
数据安全/隐私保护
小课堂 -- cookie注入(base64加密)
小课堂 -- cookie注入(base64加密)
49 0
|
域名解析 缓存 网络协议
HTTP 和 HTTPS(请求响应报文格式 + 请求方法 + 响应状态码 + HTTPS 加密流程 + Cookie 和 Session)
1. HTTP 是什么 2. HTTP 请求报文和响应报文的格式 1)请求报文格式 2)响应报文格式 3)报文中空行的作用 3. HTTP 的长连接和短连接 4. URL 1)在浏览器中输入 www.baidu.com 后执行的全部过程 5. HTTP 常用的请求方法 6. GET 和 POST 的区别 7. HTTP 常见的响应状态码 8. HTTPS 是什么 1)SSL 协议 9. HTTPS 怎么进行 “加密” 1)对称加密 2)非对称加密 3)CA 证书 4)HTTPS 加密的完整流程 10. HTTPS 的优缺点 11. HTTPS 和 HTTP 的区别
421 0
|
数据安全/隐私保护
18、cookie注入(base64加密)
18、cookie注入(base64加密)
149 0
18、cookie注入(base64加密)
|
安全 Go 数据安全/隐私保护
Golang:securecookie对cookie值进行编码解码和加密解密
Golang:securecookie对cookie值进行编码解码和加密解密
192 0
|
数据安全/隐私保护 索引 Python
【tornado】tornado路由系统以及加密cookie在项目中的使用详解
【tornado】tornado路由系统以及加密cookie在项目中的使用详解
191 0
【tornado】tornado路由系统以及加密cookie在项目中的使用详解
|
Web App开发 网络安全 数据安全/隐私保护
|
算法 安全 .NET
【转】用ASP.NET加密Cookie数据
来源:http://www.cnblogs.com/taizhouxiaoba/archive/2009/02/05/1384772.html Cookie中的数据以文本的形式存在客户端计算机,考虑它的安全性,最好在将数据存入Cookie之前对其进行加密。
830 0
|
3天前
|
SQL 安全 算法
揭秘网络安全:漏洞、加密与安全意识的三重奏
【10月更文挑战第39天】在数字时代的交响乐中,网络安全扮演着不可或缺的角色。本文旨在通过浅显易懂的语言,揭示网络安全的三大核心要素:网络漏洞、加密技术以及安全意识。我们将探索这些元素如何相互交织,共同维护我们的数字安全。从初学者到资深专家,每个人都能从中获得宝贵的知识和启示。