逆向11-毛毛租


毛毛租

目标接口

image
image

请求加密

image
经过分析,得知上图是我们的目标
image

o.default.aes_encrypt(JSON.stringify(a))

// 1. a是 {Type: 0, page: 1, expire: 1722579551355} 是页码加时间的参数
// 2.JSON.stringify(a) 是对第一步进行了一个字符串序列化
// 3.o.default.aes_encrypt()是最终的结果

对于前两步都比较好理解,至于第三步,我们需要进去分析一下他的aes加密是如果操作的
1 鼠标悬浮,点进去
image
2 分析代码
image
image

python代码复现

# aes_en_de.py
import base64
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad
from hashlib import md5

def md_5(a):
    # (1)生成md5并取前16位
    obj = md5()
    obj.update("www_maomaozu_com".encode('utf-8'))
    iv_k = obj.hexdigest()[0:16]
    key = iv_k.encode()
    iv = iv_k.encode()
    # (2)创建AES对象
    aes = AES.new(key, AES.MODE_CBC, iv) # key, 模式, iv
    # (3)对数据做加密
    data = a.encode() 
    pad_data = pad(data, 16)
    encrypt_date = aes.encrypt(pad_data)
    # (4)base64编码
    base64_encrypt_date = base64.b64encode(encrypt_date).decode()
    return base64_encrypt_date

主代码使用

import requests
from aes_en_de import md_5

url = "https://www.maomaozu.com/index/build.json"
a = '{"Type":0,"page":2,"expire":1722500796970}'
payload = md_5(a) # 传参数
headers = {
'Accept': '*/*',
'Accept-Language': 'zh-CN,zh;q=0.9',
'Connection': 'keep-alive',
'Content-Type': 'application/json; charset=UTF-8',
'Cookie': 'Hm_lvt_6cd598ca665714ffcd8aca3aafc5e0dc=1722498703; Hm_lpvt_6cd598ca665714ffcd8aca3aafc5e0dc=1722498703; HMACCOUNT=FA0EEA6697020683; SECKEY_ABVK=3UFsRdQh7qfr5xq/c0dr986UtfSmE0r7muQmdpwKqiw%3D; PHPSESSID=j80e34ab6sr23cha65u6647j9a; BMAP_SECKEY=1dFKO_h5UFac_sadPPn1uLCyeNKorcbCzdoHnqLz-xDmBjIxVbwYScnE2QFDMEGdlxNwE5y4EfNUqdSbonVKsjZbDq6Y_Mj3MX9QEkhHGqtYiXRqBt896eTEFrF-DWwSKuNnXd9JreIw5jhOVHtW_lsaltgVgqQnWvOFrxr1rlU',
'Origin': 'https://www.maomaozu.com',
'Referer': 'https://www.maomaozu.com/',
'Sec-Fetch-Dest': 'empty',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Site': 'same-origin',
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36',
'sec-ch-ua': '"Chromium";v="124", "Google Chrome";v="124", "Not-A.Brand";v="99"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Linux"'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)

获取加密的数据
image

返回值解密

image
image
image

代码实现

# aes_en_de.py
def jiemi(text):
    obj = md5()
    obj.update("www_maomaozu_com".encode('utf-8'))
    iv_k = obj.hexdigest()[0:16][::-1] # 翻转
    base64_encrypt_date = text
    # (1)base64解码
    encrypt_date = base64.b64decode(base64_encrypt_date)
    # (2)解密
    # 2.1 确认好解密的参数
    key = iv_k.encode()
    iv = iv_k.encode()
    # 2.2 创建AES对象
    aes = AES.new(key, AES.MODE_CBC, iv) # key 模式 iv
    # 2.3 对数据进行解密
    data = aes.decrypt(encrypt_date)
    # 2.4 将字节转换为字符串
    print(data.decode(), type(data.decode()))

总代码

import requests
from aes_en_de import md_5, jiemi

url = "https://www.maomaozu.com/index/build.json"
a = '{"Type":0,"page":2,"expire":1722500796970}'
payload = md_5(a)
headers = {
'Accept': '*/*',
'Accept-Language': 'zh-CN,zh;q=0.9',
'Connection': 'keep-alive',
'Content-Type': 'application/json; charset=UTF-8',
'Cookie': 'Hm_lvt_6cd598ca665714ffcd8aca3aafc5e0dc=1722498703; Hm_lpvt_6cd598ca665714ffcd8aca3aafc5e0dc=1722498703; HMACCOUNT=FA0EEA6697020683; SECKEY_ABVK=3UFsRdQh7qfr5xq/c0dr986UtfSmE0r7muQmdpwKqiw%3D; PHPSESSID=j80e34ab6sr23cha65u6647j9a; BMAP_SECKEY=1dFKO_h5UFac_sadPPn1uLCyeNKorcbCzdoHnqLz-xDmBjIxVbwYScnE2QFDMEGdlxNwE5y4EfNUqdSbonVKsjZbDq6Y_Mj3MX9QEkhHGqtYiXRqBt896eTEFrF-DWwSKuNnXd9JreIw5jhOVHtW_lsaltgVgqQnWvOFrxr1rlU',
'Origin': 'https://www.maomaozu.com',
'Referer': 'https://www.maomaozu.com/',
'Sec-Fetch-Dest': 'empty',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Site': 'same-origin',
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36',
'sec-ch-ua': '"Chromium";v="124", "Google Chrome";v="124", "Not-A.Brand";v="99"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Linux"'
}
response = requests.request("POST", url, headers=headers, data=payload)
# print(response.text)
jiemi(response.text)

image

这才接可以修改参数进行批量化爬取了

posted @ 2024-08-02 14:57  流年中渲染了微笑  阅读(2)  评论(0)    收藏  举报