吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 16004|回复: 90
收起左侧

[Web逆向] 某网站webpack逆向

    [复制链接]
Akihi6 发表于 2022-3-30 11:36
本帖最后由 Akihi6 于 2022-3-30 13:19 编辑

目标网站:aHR0cHM6Ly9tLmN0eXVuLmNuL3dhcC9tYWluL2F1dGgvbG9naW4/cmVkaXJlY3Q9JTJGbXk=

寻找加密函数入口

输入邮箱、密码点击登录抓取请求信息(user@163.com、654321)

202203300922977.png

这里看到password加密了(des加密)

在请求中看堆栈信息(Initiator)可以看到login的信息,点进去看一下

202203300922977.png

可以看到password的赋值操作,在这行打上断点重新请求一下

202203300922977.png

可以看到a.value是输入的密码,s.value是输入的邮箱

202203300922977.png

202203300922977.png

复制这行在控制台打印一下,可以看到密码就经过加密处理了

202203300922977.png

美化一下代码,在控制台打印一下结果一样

encodeURI(Object(l["c"])(a.value, Object(l["f"])(Object(l["g"])(s.value))))
l["c"](a.value, l["f"](l["g"](s.value)))

202203300922977.png

先找l["c"]方法,可以看到H方法,追进去看一下,

202203300922977.png

202203300922977.png

可以看到最后返回s.toString()  s = p.a.TripleDES.encrypt(e, d, l)

202203300922977.png

这是参数e是传参过来的、d是也是p.a的方法生成的、l也是p.a的方法生成的,找一下p.a在哪儿构建的,ctrl+f搜索后发现找不到,那就找p的构建

202203300922977.png

看到这里就可以确定是webpack了

webpack处理
第一种姿势

这里用漁佬(@漁滒 )的AST自动扣webpack

这里附上神器地址

使用教程:ast自动扣webpack脚本实战

​        源码:渔滒 / webpack_ast

寻找加载器的js文件保存到本地

​        在password断点文件中看一下有没有加载器加载函数

202203300922977.png

​        在文件开头可以看到r("854c")这个r肯定就是加载器了,在这行打一个断点,重新刷新页面

202203300922977.png

​        这里可以看到r的函数体u(),追进去

202203300922977.png

​        这个u()就是加载器了,直接将这个js文件保存到本地

202203300922977.png

寻找函数模块的js文件保存到本地

​        刚刚发现p是通过t.n(t('3452'))加载出来的在 s = t("3452")打个断点重新刷新页面,发现这个的t就是我们的u构造器那就好办了

202203300922977.png

​         202203300922977.png

​        F11单步追t("3452")就可以找到函数模块,把这个文件保存到本地
202203300922977.png
使用大佬写好的AST代码

现在目录下有3个文件

202203300922977.png

执行node .\webpack_mixer.js -l .\main.03a4fbe9.js -m .\chunk-vendors.f4efd280.js -o webpack_sdk.js

生成了扣好的webpack代码

202203300922977.png

第二种姿势

自己扣webpack

往上看找加载器 可以看到开头function(e)先扣下来

将加载器(function(e) {里面的全部内容}扣下来,封装为匿名函数

202203300922977.png

声明一个全部变量,再将加载器u赋值给use

202203300922977.png

202203300922977.png

先把函数模块js文件保存下来

202203300922977.png

搜索3452,将3452传给匿名函数

202203300922977.png

加载一下3452函数,window未定义,补上window

202203300922977.png

202203300922977.png

202203300922977.png

再次运行发现TypeError: Cannot read property 'call' of undefined这个错误,这个错误就是少函数模块,然后发现3452里面加载了其他函数模块

202203300922977.png

202203300922977.png

将其他函数模块粘过来,粘完之后运行就不报错了

202203300922977.png

构造password生成代码

将H()函数扣下来,生成p

202203300922977.png

这里用漁佬的生成加载器赋给了module.exports,所以用module.exports加载3452,

202203300922977.png

202203300922977.png

202203300922977.png

调用H函数(这里我将u赋值给了use,所以用use加载3452函数)发现不报错了

202203300922977.png

之前美化的调用h方法的代码就变成了

// 第一步美化
l["c"](a.value, l["f"](l["g"](s.value)))
// 第二步美化
H(a.value, l["f"](l["g"](s.value)))

这里a.value和s.value之前分析过,a.value是密码明文,s.value是邮箱

看一下l["f"](l["g"](s.value))干了什么,这里看到就是给邮箱加了12个0

202203300922977.png

封装加密函数

202203300922977.png

202203300922977.png

可以看到结果跟页面结果一样,至此加密完成!

202203300922977.png

免费评分

参与人数 32吾爱币 +30 热心值 +31 收起 理由
cosct + 2 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
cy51168 + 1 + 1 我很赞同!
see1 + 1 + 1 用心讨论,共获提升!
wkiwi + 1 + 1 我很赞同!
CharlesWang98 + 1 + 1 我很赞同!
tianjifuyun + 1 + 1 热心回复!
jackies + 1 + 1 热心回复!
erthbgf008 + 1 用心讨论,共获提升!
wdraemv + 1 + 1 谢谢@Thanks!
seei + 1 用心讨论,共获提升!
yeah1 + 1 + 1 谢谢@Thanks!
fengbolee + 2 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
1MajorTom1 + 1 我很赞同!
pelephone + 1 + 1 我很赞同!
victos + 1 + 1 谢谢@Thanks!
wskill60 + 1 + 1 我很赞同!
404undefined + 1 + 1 我很赞同!
tracyshenzl + 1 + 1 我很赞同!
eoo + 1 谢谢@Thanks!
myown126 + 1 + 1 我很赞同!
gaosld + 1 + 1 谢谢@Thanks!
Tunx + 1 + 1 谢谢@Thanks!
oyfj + 1 我很赞同!
ksiv + 1 + 1 谢谢@Thanks!
笙若 + 1 + 1 谢谢@Thanks!
WSLFY + 1 + 1 用心讨论,共获提升!
puz_zle + 1 + 1 想了想 赞下吧
xiong930626 + 1 + 1 谢谢@Thanks!
469164323 + 1 + 1 我很赞同!
Tonyha7 + 1 用心讨论,共获提升!
我是不会改名的 + 2 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Quincy379 + 1 + 1 鼓励转贴优秀软件安全工具和文档!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

symbolshen 发表于 2022-3-31 08:30
思路不错 学习了
_小白_ 发表于 2023-11-7 16:38
自己试了一下,有以下几点问题:
1.p.a就是crypto的源码,直接导入用就可以了,不用扣代码
2.这个网站坑很多,不光密码加密的,请求头里面也有加密,我目前还没完全解决,不知道楼主有没有实现完整登录逻辑分享下
kds0221 发表于 2022-3-30 16:50
tony1990 发表于 2022-3-30 20:36
真的很好,提供了不同的思路。
xd223 发表于 2022-3-31 08:55
又学到了新技术
Tony2009 发表于 2022-3-31 09:18
真厉害啊
haitunhv 发表于 2022-3-31 09:48
真的很好,提供了不同的思路。学习了
爱吃鹅肉饭 发表于 2022-3-31 10:12
webpack也能逆向,真 · 大佬啊。
1024A1024 发表于 2022-3-31 11:07
不是擅长的领域,进来看看怎么逆向,学习一下
ongp1347 发表于 2022-3-31 12:19
大佬 我想请教一下 JS 逆向需要用啥工具 谢谢
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 07:10

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表