首页 > 其他分享 >第二届猿人学web比赛第一题浅记

第二届猿人学web比赛第一题浅记

时间:2023-06-19 23:56:46浏览次数:59  
标签:web 加密 猿人 js 改写 token 题浅记 一致 比赛

上个月的猿人学逆向比赛终于参加了一次,本着嫖一件文化衫的目的与做出第一题的目标,开始了比赛。过程是艰苦的,结果还是满意的,文化衫嫖到了,现在记录一下第一题的过程。(基于补环境)

链接地址:https://match2023.yuanrenxue.cn/topic/1

1、网站分析:

照常F12看发包的请求:

对比多个请求发现变化的加密参数为token与now。话不多说直接开整

2、加密参数分析

老办法先全局搜索,在第一个js文件中就能找到token加密点

哇哦,这么简单,AES后的md5加密。断住验证下。

可以看到网页上加密值与标准库加密值不一致,魔改了加密算法。果然没有这么简单。接下来直接分析js文件吧

3、加密参数逆向

查看js开头与结构发现为webpack,但是又比常见的webpack多了一层

用我的半吊子js知识解释就是,自执行函数主入口是0x2,调用的时候会提前加载它的依赖模块,例如0x2的依赖就是0xc。执行完之后就会将token的值计算出来,之后发送ajax请求。

我们将js代码中的ajax请求删除,将函数定义为全局,然后固定d(页数),e(时间戳)与图中一致,用来测试

如下图类似:

可以看到有返回值了,与ad89a4a42dcf791951274db0fec65768不一致,大致原因为进行了环境判断,修改了算法。

有经验的可能直接全局搜索常见的global、location、 navigation等,本人比较笨,是断住加密点进行单步调试的。

单步到此处发现问题,有一个location的环境检测,对比后发现浏览器中的返回值也是有区别:

题目中的返回值为true

本地直接将此处替换,Q = p(Q, R, S, P, L, 0x12, k[0x3b]),再次重试,打印token值,与比赛题目结果一致。

4、pycharm改写

直接将刚才chrome执行的正确函数pycharm执行

按照提示补充环境

此类直接在浏览器中打上断点进行分析改写,此处对比后能直接改为

经过改写或者删除补充的环境大概为:

但是此时结果还是不一致,上下文进行关键字搜索,发现最后的点

删除了window导致结果不一直,进行改写,执行,结果一致

结尾:之后可能会用扣代码的方式重新实现一遍,可能吧,之后再说吧。

代码获取方式还是跟以前一样,公众号:码字的秃猴,发送:比赛题1,获取

标签:web,加密,猿人,js,改写,token,题浅记,一致,比赛
From: https://www.cnblogs.com/FlowerNotGiveYou/p/17492527.html

相关文章

  • 【web开发】PHP命名空间中的子空间和公共空间详解及相关术语解读
    前言PHP的命名空间和文件系统的结构很像,文件夹可以有子文件夹,命名空间中也可以定义子空间来描述各个空间之间的所属关系。比如:cart购物车和order订单这两个模块都处于同一个shop商城项目内,通过命名空间子空间表达关系的:<?phpnamespaceshop\cart;classDemo{ //类的成员}name......
  • BUUCTF:[安洵杯 2019]easy_web
    https://buuoj.cn/challenges#[%E5%AE%89%E6%B4%B5%E6%9D%AF%202019]easy_webTXpVek5UTTFNbVUzTURabE5qYz0经过base64decode->base64decode->hexdecode得到555.png解码编码脚本或者自己利用在线工具编码也行frombinasciiimport*frombase64import*defdecode(param):r......
  • BUUCTF:[CISCN2019 华东南赛区]Web11
    注意到了banner中信息说是smarty,并且将XFF输出到页面直接尝试Smarty模板注入{$smarty.version}Smarty3官方手册:https://www.smarty.net/docs/zh_CN/language.function.if.tpl{ifsystem('ls-lha/')}{/if}{ifsystem('cat/flag')}{/if}......
  • 什么是 SAP Commerce Cloud SmartEdit 的 webApplicationInjector.js
    SAPCommerceCloudSmartEdit是SAP提供的一种基于云的电子商务平台,旨在帮助企业轻松管理和优化他们的在线商店。SmartEdit是SAPCommerceCloud的一个功能强大的组件,用于简化网站内容的编辑和管理。通过SmartEdit,商家可以在一个易于使用的界面中轻松地修改和更新网站布局......
  • BUUCTF:[SWPU2019]Web3
    参考:https://www.leavesongs.com/PENETRATION/client-session-security.htmlhttp://forever404.cn/2019/12/14/SWPU2019web%E5%A4%8D%E7%8E%B0/点击upload有权限设置,猜测cookie伪造权限不够,查看session使用P师傅的脚本可以解这个session#!/usr/bin/envpython3importsysimpor......
  • js-audio-recorder 插件实现web端录音
    介绍js-audio-recorder是一个纯js实现的浏览器端录音插件。目前支持以下功能:录音,暂停,恢复,和录音播放。音频数据的压缩,支持单双通道录音。录音时长、录音大小的显示。导出录音文件,格式为pcm或wav。录音波形显示,可自己定制。相关链接GitHub地址官网主页地址项目在线演......
  • js WebUploader 分块上传
    ​ 由于项目需要上传文件到服务器,于是便在文件上传的基础上增加了拖拽上传。拖拽上传当然属于文件上传的一部分,只不过在文件上传的基础上增加了拖拽的界面,主要在于前台的交互, 拖拽上传区域-->class="dropBox_wrap"><div id="dropbox" class="drop"><h4>请将文件拖拽到此......
  • SpringMVC WebUploader 分块上传
    ​ 4GB以上超大文件上传和断点续传服务器的实现随着视频网站和大数据应用的普及,特别是高清视频和4K视频应用的到来,超大文件上传已经成为了日常的基础应用需求。但是在很多情况下,平台运营方并没有大文件上传和断点续传的开发经验,往往在网上找一些简单的PHP或者Java程序来实现基......
  • 前端WebSocket 封装
    前言实际工作中可能会遇到需要封装WebSocket的场景,以下基于ts做了WebSocket的封装,包括心跳机制和重连1、封装逻辑如下,新建ws文件://websocket封装enumConnectionState{//websocket连接状态'CONNECTING','CONNECTED','DISCONNECTED','RECONNECTING','REC......
  • SpringCloud WebUploader 分块上传
    ​ 第一点:Java代码实现文件上传FormFilefile=manform.getFile();StringnewfileName= null;Stringnewpathname= null;StringfileAddre= "/numUp";try{    InputStreamstream=file.getInputStream();// 把文件读入    StringfilePath=request.......