免责声明:本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!
前言
webpack抠JS的一个案例,同样用来熟练如何从webpack打包的JS代码中抠关键的JS代码。
抠JS过程
网址:aHR0cHM6Ly9hZXJmYXlpbmcuY29tLw==
目标:登录接口的请求参数t和s分析。
老规矩,先抓包。
可以看到请求参数中username和password都是明文,t参数目测是一个时间戳,s是一串加密之后的密文。
从请求堆栈Initiator中一个个点进去,看看能否找到s生成的地方。
点击上面的文件,发现有个报错:
遇到这种Could not load content for webpack:///的错误,需要更改下浏览器的默认配置,Settings/Preferences/Sources,去掉Enable Javascript source maps的勾选。
修改配置之后,就可以看到相关JS文件的代码了。找到一块疑似加密的代码,如下:
window.Blockey.SecuritySalt,w和n都是固定的值。
根据上面生成s的代码,我们整理代码如下:
1 | var window = global; |
然后我们的目标就很明确了,就是抠出c.default的函数,填入到我们的JS文件,我们浏览器中点进去c.default函数:
我们上边猜想的t是一个时间戳,不准确,可以看到t是一个时间戳加上了一个固定的数值。然后s参数是一个Sha1算法生成的密文。
我们继续点进去Sha1.hash函数:
然后将抠出来的JS函数一个个填充到JS文件中去,缺啥抠啥。具体详细过程不一步步展示了。最终整理的代码如下:
1 | var n = "/WebApi/Users/Login"; |
输出结果,跟预期一致:
总结
这个案例比较简单,没有什么难度,提这个案例主要目的有2点,第一就是遇到按照webpack方式组织的JS代码,不一定非得按照前面介绍的分五步走,先找模块加载器,然后编写自执行等等,一些简单的webpack可以直接去抠JS代码的。第二就是遇到``Could not load content for webpack:///`这种报错,需要去修改浏览器配置。
关于代码
若需要代码,扫描加微信。