当前位置: 首页 > news >正文

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解密,如有什么问题发出来讨论哦,加油加油
http://www.cnnetsun.cn/news/52558.html

相关文章:

  • 基于python+django的在线考试系统(源码+lw+部署文档+讲解等)
  • C语言一维与二维数组名详解:从本质理解到高手应用
  • 当水印遇见AI:一场像素级的美学修复之旅
  • 软件测试是保障软件质量的关键环节,尤其在当前无法完全依赖形式化方法证明软件正确性的背景下,测试成为发现缺陷最主要、最有效的手段
  • 如何用AI快速生成Flink面试题答案?
  • 10分钟搞定:DeepSeek本地开发环境快速搭建方案
  • 豆包AI手机智能操控的硬核原理
  • CVE-2023-48795漏洞深度解析:原理与影响
  • 深入解析strspn:字符串扫描的精确尺子
  • 纺织AI设计系统:用技术重构创意与效率
  • 用AI辅助开发:weditor的自动化测试新体验
  • vivo真机adb 命令获取手机当前窗口信息
  • 3分钟极速安装!MinGW自动化方案对比
  • Spring Boot依赖冲突:新手必看指南
  • 1小时快速搭建Kiro下载工具原型
  • GitLab本地部署效率革命:比官方文档快3倍的极简方案
  • 智能问数如何让数据分析效率提升10倍
  • Phyfusion在游戏开发中的5个惊艳应用案例
  • 电商网站商品筛选栏的sticky定位实战
  • 零基础学结构体:从概念到实战5个例子
  • 5分钟搭建status_invalid_image_hash检测原型
  • 人工智能应用-机器视觉:车牌识别(1)
  • 5分钟搞定node-sass配置:快速原型开发指南
  • 幽冥大陆(四十九)PHP打造Java的Jar实践——东方仙盟筑基期
  • 从产线到质检,兰亭妙微教你做 “工人愿意用” 的工业 UI
  • 【数学】【微积分】 ① 导数的基础概念与计算法则
  • 咱们聊聊Spring循环依赖那点事儿:从“死锁”到“三级缓存”的奇妙之旅
  • Linux 文件拷贝性能对比:裸 `read/write` VS `fread/fwrite` —— 页面缓存与用户缓冲的真相(附完整测试代码)
  • 主散线指标 通达信源码
  • 提升开关频率(一) PRISEMI芯导科技MOSFET工艺结构的发展与演进