首页 > 其他分享 >猿人学web端爬虫攻防大赛赛题第19题——乌拉乌拉乌拉

猿人学web端爬虫攻防大赛赛题第19题——乌拉乌拉乌拉

时间:2024-11-02 13:08:39浏览次数:4  
标签:web cn 19 乌拉 sec yuanrenxue Hm ua match

题目网址:https://match.yuanrenxue.cn/match/19

解题步骤

  1. 看触发的数据包。
    image
    image

  2. 有这么好的事情,没有加密的参数,url非常简单,直接写代码访问。

    import requests
    
    url = "https://match.yuanrenxue.cn/api/match/19?page=1"
    headers = {'Host': 'match.yuanrenxue.cn', 'Connection': 'keep-alive', 'Pragma': 'no-cache', 'Cache-Control': 'no-cache',
    	'sec-ch-ua-platform': '"Windows"', 'X-Requested-With': 'XMLHttpRequest',
    	'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36',
    	'Accept': 'application/json, text/javascript, */*; q=0.01',
    	'sec-ch-ua': '"Chromium";v="130", "Google Chrome";v="130", "Not?A_Brand";v="99"', 'sec-ch-ua-mobile': '?0',
    	'Sec-Fetch-Site': 'same-origin', 'Sec-Fetch-Mode': 'cors', 'Sec-Fetch-Dest': 'empty',
    	'Referer': 'https://match.yuanrenxue.cn/match/16', 'Accept-Encoding': 'gzip, deflate, br, zstd',
    	'Accept-Language': 'zh-CN,zh;q=0.9',
    	'Cookie': 'Hm_lvt_9bcbda9cbf86757998a2339a0437208e=1730505879; HMACCOUNT=5B8060E4DC36D34F; Hm_lvt_c99546cf032aaa5a679230de9a95c7db=1730505879; qpfccr=true; no-alert3=true; tk=-5370204167750759641; sessionid=39ahw8ftocq8eghmui7twey3qbw7lek8; Hm_lpvt_9bcbda9cbf86757998a2339a0437208e=1730505890; Hm_lpvt_c99546cf032aaa5a679230de9a95c7db=1730506377', }
    resp = requests.get(url, headers=headers)
    print(resp.text)
    

    运行一下,发现啥也获取不到。
    image

  3. 再看数据包,是个http2.0协议,尝试用httpx库访问。
    image

    import httpx
    
    url = "https://match.yuanrenxue.cn/api/match/19?page=1"
    headers = {'Host': 'match.yuanrenxue.cn', 'Connection': 'keep-alive', 'Pragma': 'no-cache', 'Cache-Control': 'no-cache',
    	'sec-ch-ua-platform': '"Windows"', 'X-Requested-With': 'XMLHttpRequest',
    	'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36',
    	'Accept': 'application/json, text/javascript, */*; q=0.01',
    	'sec-ch-ua': '"Chromium";v="130", "Google Chrome";v="130", "Not?A_Brand";v="99"', 'sec-ch-ua-mobile': '?0',
    	'Sec-Fetch-Site': 'same-origin', 'Sec-Fetch-Mode': 'cors', 'Sec-Fetch-Dest': 'empty',
    	'Referer': 'https://match.yuanrenxue.cn/match/16', 'Accept-Encoding': 'gzip, deflate, br, zstd',
    	'Accept-Language': 'zh-CN,zh;q=0.9',
    	'Cookie': 'Hm_lvt_9bcbda9cbf86757998a2339a0437208e=1730505879; HMACCOUNT=5B8060E4DC36D34F; Hm_lvt_c99546cf032aaa5a679230de9a95c7db=1730505879; qpfccr=true; no-alert3=true; tk=-5370204167750759641; sessionid=39ahw8ftocq8eghmui7twey3qbw7lek8; Hm_lpvt_9bcbda9cbf86757998a2339a0437208e=1730505890; Hm_lpvt_c99546cf032aaa5a679230de9a95c7db=1730506377', }
    client = httpx.Client(http2=True)
    resp = client.get(url, headers=headers)
    print(resp.text)
    

    运行发现还是啥都获取不到。
    image

  4. 真无厘头啊,尝试用fiddler工具抓包。
    image
    也只有一个数据包,重放一下,发现还是可以正常获取数据。
    image
    image

  5. 经过查资料,大概这里是判断了tls指纹。

    tls指纹可参考https://developer.baidu.com/article/details/3348512

    python中可以通过安装curl_cffi库来模拟浏览器的tls指纹(在请求时指定 impersonate 关键字参数即可)
    安装命令:pip install curl_cffi
    image

  6. 编写代码尝试获取第一页的数据。

    from curl_cffi import requests
    
    url = "https://match.yuanrenxue.cn/api/match/19?page=1"
    headers = {'Host': 'match.yuanrenxue.cn', 'Connection': 'keep-alive', 'Pragma': 'no-cache', 'Cache-Control': 'no-cache',
    	'sec-ch-ua-platform': '"Windows"', 'X-Requested-With': 'XMLHttpRequest',
    	'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36',
    	'Accept': 'application/json, text/javascript, */*; q=0.01',
    	'sec-ch-ua': '"Chromium";v="130", "Google Chrome";v="130", "Not?A_Brand";v="99"', 'sec-ch-ua-mobile': '?0',
    	'Sec-Fetch-Site': 'same-origin', 'Sec-Fetch-Mode': 'cors', 'Sec-Fetch-Dest': 'empty',
    	'Referer': 'https://match.yuanrenxue.cn/match/16', 'Accept-Encoding': 'gzip, deflate, br, zstd',
    	'Accept-Language': 'zh-CN,zh;q=0.9',
    	'Cookie': 'Hm_lvt_9bcbda9cbf86757998a2339a0437208e=1730505879; HMACCOUNT=5B8060E4DC36D34F; Hm_lvt_c99546cf032aaa5a679230de9a95c7db=1730505879; qpfccr=true; no-alert3=true; tk=-5370204167750759641; sessionid=39ahw8ftocq8eghmui7twey3qbw7lek8; Hm_lpvt_9bcbda9cbf86757998a2339a0437208e=1730505890; Hm_lpvt_c99546cf032aaa5a679230de9a95c7db=1730506377', }
    resp = requests.get(url, headers=headers, impersonate="chrome110")
    print(resp.text)
    

    运行成功获取到页面数据。
    image

  7. 看来我们的思路没错,完整爬虫代码如下。

    from curl_cffi import requests
    import re
    
    res_sum = 0
    pattern = '{"value": (.*?)}'
    
    for i in range(1, 6):
    	url = "https://match.yuanrenxue.cn/api/match/19?page={}".format(i)
    	headers = {'Host': 'match.yuanrenxue.cn', 'Connection': 'keep-alive', 'Pragma': 'no-cache',
    			   'Cache-Control': 'no-cache', 'sec-ch-ua-platform': '"Windows"', 'X-Requested-With': 'XMLHttpRequest',
    			   'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36',
    			   'Accept': 'application/json, text/javascript, */*; q=0.01',
    			   'sec-ch-ua': '"Chromium";v="130", "Google Chrome";v="130", "Not?A_Brand";v="99"',
    			   'sec-ch-ua-mobile': '?0', 'Sec-Fetch-Site': 'same-origin', 'Sec-Fetch-Mode': 'cors',
    			   'Sec-Fetch-Dest': 'empty', 'Referer': 'https://match.yuanrenxue.cn/match/16',
    			   'Accept-Encoding': 'gzip, deflate, br, zstd', 'Accept-Language': 'zh-CN,zh;q=0.9',
    			   'Cookie': 'Hm_lvt_9bcbda9cbf86757998a2339a0437208e=1730505879; HMACCOUNT=5B8060E4DC36D34F; Hm_lvt_c99546cf032aaa5a679230de9a95c7db=1730505879; qpfccr=true; no-alert3=true; tk=-5370204167750759641; sessionid=39ahw8ftocq8eghmui7twey3qbw7lek8; Hm_lpvt_9bcbda9cbf86757998a2339a0437208e=1730505890; Hm_lpvt_c99546cf032aaa5a679230de9a95c7db=1730506377', }
    	resp = requests.get(url, headers=headers, impersonate="chrome110")
    	string = resp.text
    	findall = re.findall(pattern, string)
    	for item in findall:
    		res_sum += int(item)
    print(res_sum)
    

    运行得到结果。
    image

  8. 提交结果,成功通过。
    image

标签:web,cn,19,乌拉,sec,yuanrenxue,Hm,ua,match
From: https://www.cnblogs.com/sbhglqy/p/18521837

相关文章

  • [转]创建Visual Studio 2019离线安装包
    可以在不同的网络环境和不同的计算机上在线安装微软VisualStudio2019。微软提供的在线安装工具(VisualStudiowebinstaller)可以让用户在线下载最新版本VisualStudio安装包、补丁程序等。但是在许多场景中,用户并不能连接到互联网,或者由于防火墙的安全策略导致用户不能连接微软......
  • # 20222419 2024-2025-1 《网络与系统攻防技术》实验四实验报告
    1.实验内容一、恶意代码文件类型标识、脱壳与字符串提取对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下:(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;(2)使用超级巡警脱壳机等脱壳软件,......
  • 猿人学web端爬虫攻防大赛赛题第16题——js逆向 - window蜜罐
    题目网址:https://match.yuanrenxue.cn/match/16解题步骤看触发数据包。明显m是经过特殊处理的,需要知道它的加密逻辑。看Initiator模块的window.request。m和t的赋值就在上面,打断点。先分析t。r.t=p_s=Date[e(496)](newDate)[e(517)]()将其中跟e相关的进行还原后,r.......
  • PythonWeb项目开发(Django)在PyCharm定义模型并与mysql数据库绑定
    测试所用的django项目结构如下:---------------------------------------------------------------------------------------------------------------------------------定义模型(以创建好的blog应用为例):重点操作对象1:之前创建应用(这里是blog文件夹)下面的models.py文件......
  • 地级市-计算恩格尔系数(2001-2019年)
    数据文档数据介绍数据名称:地级市-计算恩格尔系数数据年份:2001-2019年数据范围:全国297个城市数据来源:地方统计局指标说明行政区划代码人均消费支出-农村-食品地区名称人均消费支出-城镇年份人均消费支出-城镇-食品人均消费支出人均消费支出-食品人均消费支出-......
  • 上市公司专利质量数据-原始+stata代码+结果(1990-2023年)
    为了测算上市公司专利质量,本文通过分析公司所申请专利的主分类号,并采用知识宽度来衡量专利质量。中国的IPC分类号采用“部-大类-小类-大组-小组”的格式,如“A01B01/00”。若仅根据专利分类号数量评估专利质量可能存在偏差,因此本文参考赫芬达尔指数计算企业在不同大组下的专利分......
  • CTF之web题集详情随手笔记
    《Web安全》http://mp.weixin.qq.com/s?__biz=MzkwNjY1Mzc0Nw==&mid=2247484238&idx=1&sn=ca66551c31e37b8d726f151265fc9211&chksm=c0e47a12f793f3049fefde6e9ebe9ec4e2c7626b8594511bd314783719c216bd9929962a71e6&scene=21#wechat_redirect1    WEB1......
  • 解释 RESTful API,以及如何使用它构建 web 应用程序。
    RESTfulAPI(RepresentationalStateTransfer)是一种设计风格,用于构建可扩展的网络服务。它基于HTTP协议,并使用标准的HTTP方法(例如GET、POST、PUT、DELETE)来实现对资源的创建、读取、更新和删除操作。RESTfulAPI的关键原则是将服务端的资源通过URL(统一资源定位符)暴露给......
  • Web组件之 Listener (监听器)
    文章目录1.1Listener概述1.2Listener快速入门①xml版本②注解版本1.3案例:模拟spring框架1.1Listener概述​JavaWeb中的监听器是监听ServletContextHttpSessionHttpServletRequest三个数据域对象创建和销毁以及监听数据域对象中数据的变化,就是监听......
  • StableDiffusionWebUI 让我找到了宫崎骏动漫里的夏天
    前言一直以来想部署一个自己的StableDiffusion模型,但是在构建模型过程中遇到许多问题,后来发现可以用HAI可以快速构建并且部署,给我带来了极大的便利,省去了许多麻烦事。高性能应用服务(HyperApplicationInventor,HAI)是一款面向AI和科学计算的GPU/NPU应用服务产品,提供即插即用......