首页 > 其他分享 >JS逆向实战16——猿人学第20题 新年挑战-wasm进阶

JS逆向实战16——猿人学第20题 新年挑战-wasm进阶

时间:2023-06-01 18:35:17浏览次数:60  
标签:发现 这个 20 函数 16 JS wasm sign 我们

声明

本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!

网站

https://match.yuanrenxue.cn/match/20

网站分析

首先进去网站,我们查看下接口

发现有两个值是改变的
分别是sign t 这个t有点像时间戳 ,但是不太确定
然后我们进栈。


发现t确实是解析的时间戳
而这个sign 则是页码加上时间戳经过一个sign的方法 构建出来的,这个sign值有点像md5
抱着试一试的心态我们试下md5

发现什么都没有

参数分析

既然t的数值已经有了,也知道传参的值了,那我们只要解析window.sign就行了
之后我们进入这个函数


然后我们发现
getStringFromWasm0(r0, r1) 这个函数返回的值就是我们所需要的值。

而且经过多次测试 发现这个r0 和 r1 也是写死的



这里就带给我们考虑了,既然是写死的,那这个值又怎么会每次都会变化呢?
我们进入这个函数看看源码

从这个函数可以看出他根本不是解密函数。这只是个还原解码函数,我们继续往上看

发现这个ptr0 和这个len0 和r0,和r1有点像啊,我们不妨抱着试一试的心态,把这个值放入 getStringFromWasm0
函数中

然后发现,诶 这不就是我们一开始传的值吗,那更加确信了这不是个解码函数,而既然这个能还原出我们传过去的值


看到了 _index_bg_wasm__WEBPACK_IMPORTED_MODULE_0__["sign"](retptr, ptr0, len0)
这个函数也是sign 而且和我们需要的值同名,说明这个才是我们加密的函数
我们进入这个函数看看

发现这在一个wasm文件中,
作为一个没有学过wasm语法的人,看到sign 下意识的就会回想,是不是和我们加密的函数sign有关系呢?
管他呢,我们搜索sign ,全部都打上断点,wasm也是文件,反正也会经过的,只有经过就肯定也会断住。

把所有的关于sign的方法全部打上断点。


然后发现在这个断点中
他的长度和value都变了

经过我们多次测试
发现这个后面多出来的值是个定值
'2|1685613529000D#uqGdcw41pWeNXm'
然后我们放到MD5中加密看看值


一模一样

结论
通过页码+时间戳+D#uqGdcw41pWeNXm再加上MD5加密 构成了sign值

标签:发现,这个,20,函数,16,JS,wasm,sign,我们
From: https://www.cnblogs.com/zichliang/p/17449582.html

相关文章

  • node.js安装
    F:\ProgramFiles\nodejs\ windows安装npm教程(nodejs)[就是参照这个编辑安装]https://www.cnblogs.com/kakashi-feng/p/16483727.htmlnpm安装详细教程https://blog.csdn.net/cleve_baby/article/details/125632341npmconfigsetcache"F:\ProgramFiles\nodejs\node_......
  • SMU Spring 2023 Trial Contest Round 11
    A.TheTextSplitting题意:给出字符串长度,给出p和q两种切割方式,任选其中一种,把字符串分割输出结果。 题解:先进行判断,p和q是否能整个的分割n,利用p和q的函数关系判断(见代码),再计算有几个p几个q,再进行输出即可voidsolve(){cin>>n>>p>>q;cin>>s;if(p>......
  • js 中的 this
     <!DOCTYPEhtml><html><head><metacharset="UTF-8"><title>Inserttitlehere</title><scripttype="text/javascript">vartool={a:'somemsg',show:functi......
  • 业务安全情报第16期 | 大促8成优惠券竟被“羊毛党”抢走!?
    近期,某电商小程序举办美食节营销活动,提供高额折扣券,并允许用户进行秒杀。然而,羊毛党团伙利用作弊手段,抢购囤券,然后倒卖变现,严重损害了商家的利益。八成秒杀账户是羊毛党根据顶象防御云编号为BSI-2023-rutq业务安全情报发现,某电商平台为吸引人气和促进销售推,推出高额折扣券福利......
  • 2016-05-05就加入博客园的我,直到23年5月才开始真正的学习编程
    去年从工作4年的上家公司离职后,发现自己连工作都找不到,浑浑噩噩一点点把手里的钱全部用完了,发现自己一无所有,看着2016第一篇随笔上的加油,是多么的讽刺开始后悔,开始回忆自己的过往,想起初中时对游戏外挂的幻想,想起高二的那一天找到了脚本之家,找到了一本编程的书籍,写了人生中第一个C......
  • net.sf.json-lib 下载不下来
    必须加上classifier官网:http://json-lib.sourceforge.net/Json-libcomesintwoflavors,dependingonthejdkcompatibility.json-lib-x.x-jdk13iscompatiblewithJDK1.3.1andupwards.json-lib-x.x-jdk15iscompatiblewithJDK1.5,includessupportforEnums......
  • day16 Python下的三元运算符
    Python下的三元运算符【一】引言三元表达式(三目运算符)能够简洁我们的代码三元表达式其实是将if...else...判断语句的简化表达,代替很多ifelse和if-else一样,只有一个表达式会被执行。因此,三元表达式中的if和else可以包含大量的计算,但只有True的分支会被执行在Java、C......
  • 2023-06-01 微信开发者工具看不了报错
    具体表现为:开发工具捕获到1个error,点击开发工具的调试器也显示有1个error,点击查看,发现是空白,没有显示任何内容。原因:开发工具的调试器设置了一个【selectedcontextonly】,勾选上后就不会显示具体报错内容,而是只显示error的数量。解决方案:在开发工具的右上角的第二个setting,点进......
  • 去往js函数式编程(5)
    日志记录  我们可以写一个高阶函数,它以两个函数作为参数,并允许第一个函数只能执行一次,从那一点开始调用第二个函数。constonceAndAfter=(f,g)=>{lettoCall=freturn(...args)=>{letresult=toCall(...args)toCall=greturnresult}}......
  • 使用vue的简单的纯前端JS验证码实现
    使用vue的简单的纯前端JS验证码实现感觉人不能在SQL里面淹死,得看看别的东西了因为是上班摸鱼偷摸搞的,所以人比较懒,很多东西也懒得修修改改,直接放在一个html文件下了页面如下js的生成图形逻辑是21年毕业的时候百度CV的,出处是找不到了<!DOCTYPEhtml><htmllang="en"><head......