1、访问观察目标网站
2、分析目标逆向需求
3、快速生成请求代码
4、定位关键逆向位置
5、加密解密算法分析
6、数据加密解密实操
1、访问观察目标网站
aHR0cDovL2FlcmZheWluZy5jb20v
2、分析目标逆向需求
情况说明:在登陆的时候,会有一个签名值
3、快速生成请求代码
https://curlconverter.com/
4、定位关键逆向位置
推荐使用正则搜索 \bs\b:
经过几次测试,都只在这里停下来,所以,除了这个断点,其他的就可以取消了
而且,从某种程度上来说,这个地方就是sign生成的位置,r就是参数
那么相对应的hash就是加密函数
但是,我们这里是要练习webpack,所以,我们不用扣js代码的方式,所以,我们换一种方式定位
并且我们可以确认,这里就是sign值生成的位置,也就是加密函数调用的位置
那么,这个加密函数具体都做了什么呢?我们就可以通过堆栈回溯,去看他上一步都在做什么
5、加密解密算法分析
webpack启动,我们这次不针对具体的方法本身,我们针对函数进行
所以,如果,我们能够复刻函数c,直接从c里面直接调用加密方法defalt,那么,也就完成了加密方法的还原
由于,代码都是从上往下的运行,所以,我们需要的方法,肯定就需要从下往上找
断点重放,找到n这个webpack加载器的位置
随后,直接将整个文件直接考走
然后找到我们的webpack的加载器
为了能够更好的去全局使用这个加载器,我们现在要去创建一个变量环境文件来储存全局变量
Windows
当前只需要一个,所以只写一个
执行逻辑,用单独的main.js 来实现
其次,变量环境文件要优先放到首位,否则其他地方没法使用到这个全局变量环境文件
现在变量环境做好之后,就可以去给我们的调度器,去设置全局变量了,这样子才能够随处使用
最后,就是测试调度器是否可以随处可用
既然调度器可用了,那么接下来就是,复刻原本调用的方式和流程
n是我们的调度器,141 是要调用的目标
所以给我们的调度器传参
再往后我们补全所有状态
继续补全状态
继续补全环境,经过测试,要补全很多,所以干脆把相关的都拿过来,多了不怕,少了会出问题
最后,测试看一下是否能看到数据了
这下就能够正常的看到时间戳和sign值了
为了方便调用,我们现在要把生成sign的这部分,变成一个函数
然后现在,就是要把这些东西装载到py文件中了
经过测试,能够正常的获取到时间戳t和sign值s
但是,这里得到的数据是字典{} 如何放到json格式的文件中呢?
这样就动态的将数据更新进去了,因为账号密码本身就是不对的,所以,肯定会报错
如果后续,再将,账号和密码,制作成为动态的,就可以进行漏洞的测试和批量账号的登陆了
6、数据加密解密实操
具体的代码没法提供,实在是太多了,几万行,跟着做其实很快就能搞定