news 2026/5/7 6:53:30

005-AES:采招网

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
005-AES:采招网

本文来做一个标准AES案例:采招网

找加密参数

这里有一个响应是密文,今天来解密响应内容:

找解密位置

试过hook,直接pass掉,因为鼠标一移动到页面上就会断下来,可以试试再加些条件来判断(类似条件断点),本人不想想就直接关键字搜索了,搜的decrypt(然后全打断点段在这里:

但是你往里看会发现还有一个断点:

注释也写得明明白白,直接进来扣这里的代码

扣代码

扣这里,这里是核心代码,不用扣整个函数:

然后我们找一下密钥,看看是不是前端写死的:

是写死的,直接拿过来,然后看一下CryptoJS是不是标准库:

是标准的(没有FunctionLocation,而且里面内容齐全),补上库,然后运行一下:

这个玩意儿根本没用上,先注释掉,再运行:

然后是解密的密文没有,拿一个过来测试一下:

不报错了,好像没啥问题,打印一下看看:

这样的需要toString一下:

我去,还是密文,大意了,看一下网站里这里出来是啥:

也是密文,那我放心了,解密位置应该在下面:

ok,将toString删掉,然后扣下这一行,将nContent传入:

ok,拿下,接着py拿一下密文数据再传给js再返回给py即可

py代码

生成基础爬虫代码之后看一下哪些参数代表什么,比如翻页是page:

弄清楚这些后开始封装和传参, js分装如下:

下面是py封装和传参:

importrequestsimportosimporttimeimportexecjsclassJSExecutor:def__init__(self,js_file_path):ifnot os.path.exists(js_file_path):print('error:'+js_file_path+'不存在!!!')withopen(js_file_path,'r',encoding='utf-8')asf:self.js_code=f.read()self.js_code=execjs.compile(self.js_code)defcall(self,func_name,*args):returnself.js_code.call(func_name,*args)defget_data(page):headers={#'accept':'text/plain, */*; q=0.01',#'accept-language':'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',#'cache-control':'no-cache',#'content-type':'application/x-www-form-urlencoded; charset=UTF-8',#'origin':'https://search.bidcenter.com.cn',#'pragma':'no-cache',#'priority':'u=1, i',#'referer':'https://search.bidcenter.com.cn/',#'sec-ch-ua':'"Chromium";v="142", "Microsoft Edge";v="142", "Not_A Brand";v="99"',#'sec-ch-ua-mobile':'?0',#'sec-ch-ua-platform':'"Windows"',#'sec-fetch-dest':'empty',#'sec-fetch-mode':'cors',#'sec-fetch-site':'same-site','user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36 Edg/142.0.0.0',}data={'from':'6137','guid':'bc1e4ec7-5d8d-41d9-91de-3b81e32f6386','location':'6138','token':'','next_token':'','keywords':'%E5%88%80','mod':'0','page':f'{page}'}response=requests.post('https://interface.bidcenter.com.cn/search/GetSearchProHandler.ashx',headers=headers,data=data)returnresponse.textif__name__=='__main__':js_executor=JSExecutor('5.js')foriinrange(10):print(f' · · ---————————————————开始爬取并解密第{i}页——————————————————---- · ·')res=js_executor.call('decryptData',get_data(i))print(res)time.sleep(1)

运行如下:

拿下✌

小结

本文就是一个标准的AES解密,如有什么问题发出来讨论哦,加油加油
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/19 5:06:21

【设计模式|第五篇】代理模式:控制访问的智能中介

什么是代理模式?生活化的比喻核心角色为什么要使用代理模式?代理模式在Java中的实现静态代理动态代理静态代理与动态代理的区别实际应用场景什么是代理模式? 代理模式(Proxy Pattern)是一种结构型设计模式&#xff0c…

作者头像 李华
网站建设 2026/5/4 16:51:33

如何进行gif动画制作?GIF动画在线制作全攻略

想制作专属表情包、工作演示动图,或是记录生活中的趣味瞬间?不用纠结专业软件的复杂操作,一款便捷的GIF动画在线制作工具就能满足需求,从素材上传到动画生成全程简单易懂,新手也能快速上手,轻松解锁创意动画制作技能。…

作者头像 李华
网站建设 2026/5/4 13:14:10

代码随想录 并查集理论基础

一、背景 1.并查集可解决的问题:并查集常用来解决连通性问题。也就是说当我们需要判断两个元素是否在同一个集合里的时候,就想到要用并查集。 2.并查集的功能: (1)将两个元素添加到一个集合中。 (2)判断两个元素在不在同一个集合。 二、原理:从代码层面上讲,如何…

作者头像 李华
网站建设 2026/5/3 21:28:54

Jenkins自由风格作业构建和推送dokcer镜像

云原生环境下Dockerfile 职责分工的主流实践—— 核心逻辑是「研发主导编写、运维兜底适配、Dockerfile 随代码版本化管理」,既符合 “谁开发谁负责” 的权责匹配,也保障了镜像构建的标准化和环境兼容性,Dockerfile 本质是「应用运行环境的代码化描述」&…

作者头像 李华
网站建设 2026/4/23 20:03:22

雨燕直播案例分析:如何打造高并发直播平台

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 分析一个高并发直播平台的架构设计,包括:1. 负载均衡策略;2. 视频流分发网络(CDN)配置;3. 弹幕消息队列处理;4. 用户行为…

作者头像 李华