【JS逆向系列】qcc页面cookie

声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢!

@TOC


前言

地址:aHR0cHM6Ly9tLnFjYy5jb20v


一、获取生成cookie的JS

注意:qcc手机端访问过多会使用IP异常,无法返回生成cookie的JS,需要添加代理请求

<font color=#999AAA >示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。


二、acw_sc__v2的生成

qcc主要的cookie就是这个acw_sc__v2参数,我们来看下之前返回的JS里是如何生成这个cookie的,进来一看,发现还是sojson混淆的,如果看着麻烦的话可以反混淆一下。 在这里插入图片描述

反混淆后,可以清晰的看到acw_sc__v2生成的方法,是在这个L里面

在这里插入图片描述

然后分析一下方法里面的东东,他自写了String的hexXor和unsbox两个方法,之后运行就能得到acw_sc__v2的值了 在这里插入图片描述 在这里插入图片描述


三、测试cookie

import requests,re,execjs
from lxml import etree

headers = {
    'authority': 'm.qcc.com',
    'cache-control': 'max-age=0',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 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.9',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-user': '?1',
    'sec-fetch-dest': 'document',
    'referer': 'https://m.qcc.com/',
    'accept-language': 'zh-CN,zh;q=0.9',
}

with open('./qcc.js',encoding='utf8') as f:
    js_func = execjs.compile(f.read())

session = requests.session()

response = session.get('https://m.qcc.com/', headers=headers)
cookies = requests.utils.dict_from_cookiejar(response.cookies)
# print(response.text)

print('起始cookie:',cookies)
try:
    arg1 = re.compile("arg1='(.*?)'").findall(response.text)[0]
    print('生成cookie的参数:',arg1)
    acw_sc__v2 = js_func.call('get_acw_sc__v2', arg1)
    cookies['acw_sc__v2'] = acw_sc__v2
    print('更新cookie:', cookies)
    response = session.get('https://m.qcc.com/search?key=阿里巴巴', headers=headers, cookies=cookies)
    # print(response.text)
except Exception:
    print('无需更新cookie')
    response = session.get('https://m.qcc.com/search?key=阿里巴巴', headers=headers)
    # print(response.text)

# print(response.text)
hrefs = re.compile('<a href="(.*?)" onclick="zhugeTrack.*?class="a-decoration "').findall(response.text)
# print(hrefs)

if len(hrefs) != 0:
    res = session.get('https://m.qcc.com/'+hrefs[0], headers=headers, cookies=cookies)
    # print(res.text)
    sel = etree.HTML(res.text)
    name = sel.xpath('/html/body/div[1]/div[2]/div[1]/div[1]/h1/text()')[0].replace('\n','').strip()
    print(name)
    phone = sel.xpath('/html/body/div[1]/div[2]/div[1]/div[3]/a[1]/text()')[0].replace('\n','').strip()
    print(phone)
    email = sel.xpath('/html/body/div[1]/div[2]/div[1]/div[3]/a[2]/text()')[0].replace('\n','').strip()
    print(email)
    addr = sel.xpath('/html/body/div[1]/div[2]/div[1]/div[4]/text()')[0].replace('\n','').strip()
    print(addr)
    summary = sel.xpath('/html/body/div[1]/div[2]/div[1]/div[5]/text()')[0].replace('\n','').strip()
    print(summary)
else:
    print('cookie异常')
    print(response.text)
复制代码

image.png

おすすめ

転載: juejin.im/post/7031423854744436767