JS逆向之webpack实战一(某壳网)

咱趁热打铁来温故一下webpack如何抠代码的实战,小小逆一下某壳网学习一下,别干违法事情哦,我这只是大家一起学习的一个记录,多行不义必自毙,搞任何事与本人无关。

01

逆向参数


网址:

aHR0cHM6Ly9zaC5rZS5jb20v

接口:

aHR0cHM6Ly9jbG9naW4ua2UuY29tL2F1dGhlbnRpY2F0aW9uL2F1dGhlbnRpY2F0ZQ==

参数:

– ‍loginTicketId

– srcId

– password


02

实战流程

01

抓包找接口

明确我们需要逆向的参数。

02

XHR下断

03

明确方法栈位置

通过对前几个方法栈的调用我们可以去看e在异步前传入的。

那我们就需要断入到异步的位置重新请求。

看到t是传入的对象位置。

发现找到定义的位置了。

04

password参数

我们可以发现password是从credential的t来的。

我们看看t参数如何来的,srcId = window.srcId我们到时候去hook。

t.password是这样产生的,我们再看看o,o肯定在上文中,往上找。

发现o在这里被定义的,下一个断点查看上一个方法栈。

下一个断点,调试查看结果。

发现通过new u.default(s)之后这个结果就被返回了,往上找u结果就发现熟悉的身影。

u = m(n(53)),那就先断一个d看看n是啥。

n就是加载器啊,这一看就是,加载器也找到了,那主文件就是这个了。

直接抠主文件下来。

定义一个全局参数,然后将最后一行的init去掉,换成tool = i,导出结果。

发现打印结果,对比浏览器结果。

发现是一致的。

我们再来看看o是什么。

发现就是一个处理函数。

结果是一样的,所以我们可以知道他是没啥用的ahhh。

看回到new的定义:

s将数据写入我们看看。

s中的this.captcha是由上文生成,我们往上找。

发现是由v new过来的,再找下v,结果肯定也是从加载器中拿过来的。

发现v是n(6)。

其实走的是n(29)用的逗号表达式,我们直接去定义一个。

搞定v之后直接去看看this.captcha

直接写一个new。

再定义一个s,最终代码如下:

执行输出:

下面的警告先不管它,也不知道有用没用的。

反正结果已经拿到了,这个结果就是o。

那我们看到加密password的位置。

直接改下代码测试一下。

发现生成了结果,由于这个加密数据会变,就不放原网站的调试结果了。

长度是一致的。

05

srcId参数

我们去hook,先断住加载。

控制台写入hook代码。

(function(){
//严格模式
'use strict';
Object.defineProperty(window,'srcId',{
set:function (val) {
debugger;
return val;
}
})
})();

然后把load勾去掉,放行就会发现被hook住了。

去他上一个方法栈找加密代码。

这里看到没有做混淆直接设置的那可以直接搜”window.srcId=”直接可以搜索到位置。

用V8引擎带的btoa()编码查看,发现只是base64对内容进行编码。

发现一毛一样只是编码了一下。

那就看里面的数据了。

将断点放到这个方法栈。

发现在这个方法栈有一个设置值的代码。

通过设置a7的数据来设置这个值。

先找b方法的位置。

技巧:控制台输入,点击方法代码直接定位。

然后看a是什么代码就需要将作用域打进来。

发现a是一个数组,那这段代码的作用就是获取数组中的第几个值,这个是混淆常见结果。

e- 0x0的作用就是将字符串当数字类型转。

所以取到的是a[41]。

所以结果是:a7 = c[‘responseText’]

就要看c了,c是一个XMLHttpResponse对象,那结果的数据肯定是来自请求的。

我们直接去看XMLHttpResquest的responseURL。

发现找到数据了,所以这里数据是t的值,我们可以写个爬虫来获取,这里就不写了。

它的请求头是base64编码过的,就是n。

断住后发现是对T数据的data进行base64编码,那我们找上一个方法栈。

往上一个方法栈找,结果在这里jv方法是获取数据的,am是处理成请求数据的,可以直接控制台调一下看看。

可以直接打印一下进去抠两个方法都这样抠,和webpack没关系就不抠了,给个思路。

06

loginTicketId参数

直接搜关键词。

发现随便一个设置值的地方都是长这样。

一看就知道是通过请求拿到的resposne再处理的,我们搜一下数据。

直接搜结果数据。

发现确实通过请求得到。

03

password完整代码

代码量较大,如要查看具体代码,请于交流群里获取。

喜欢就点个关注一起进步吧

此文章仅做学习之用,请勿做违法违纪之事。

声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/218405.html

(0)
联系我们
联系我们
分享本页
返回顶部