前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【JS逆向】某江酒店登陆密码AES加密逆向分析探索!

【JS逆向】某江酒店登陆密码AES加密逆向分析探索!

作者头像
二爷
发布2024-01-11 14:38:57
1590
发布2024-01-11 14:38:57
举报
文章被收录于专栏:二爷记二爷记

某酒店网登陆密码AES加密逆向,采用的是 AES cbc 模式加密方式,如果能快速定位到加密关键位置代码,加密函数的话还是比较简单,不过搜索关键字结果干扰还是比较多的,需要多尝试,测试!

网址:

代码语言:javascript
复制
aHR0cHM6Ly9ob3RlbC5iZXN0d2Vob3RlbC5jb20vTmV3TG9naW4vP2dvPWh0dHBzJTNBJTJGJTJGaG90ZWwuYmVzdHdlaG90ZWwuY29tJTJG

特征:

代码语言:javascript
复制
#123456
password: "JfYot+NjHbQacTYI6d5KMQ=="
  1. 账号登陆测试网站

2.获取到加密特征信息

3.老规矩,搜索关键字 password

4.分析搜索结果,找到最可疑的地方,这里找了许久,找到两处

经过断点登陆调试,发现不是该处

第二处,看上去很像加密,同时返回的数据格式也很一致

5.打上断点调试检验一下

6.可以看到结果已经出来了,正是此处加密

代码语言:javascript
复制
password: r.encryptAES(t),
password: 'JfYot+NjHbQacTYI6d5KMQ==', 

7.打开加密函数查看

8.可以看到关键加密函数 l

代码语言:javascript
复制
encryptAES: function(e) {
            return l(e)
        },

这里我陷入了误区,一直在找加密函数,其实就是 l !

9.不放心可以继续断点调试,下一行调试

10.打开 l 加密函数查看,很典型的 AES 加密函数

代码语言:javascript
复制
    function l(e) {
        var n = CryptoJS.enc.Latin1.parse("h5LoginKey123456")
          , a = CryptoJS.enc.Latin1.parse("h5LoginIv1234567")
          , t = e
          , o = CryptoJS.AES.encrypt(t, n, {
            iv: a,
            mode: CryptoJS.mode.CBC,
            padding: CryptoJS.pad.ZeroPadding
        });
        return o.toString()
    }

11.扣代码,参数,整理,本地运行

需要说明的是经本地 python 直接AES cbc 加密方式与本地调用js文件生成加密不一致,故方法仅供参考学习!

声明 本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系立即删除!

参考来源:

Python爬虫进阶必备 | 关于 AES 的案例分析与总结(一)-咸鱼学Python

https://mp.weixin.qq.com/s/gup5O0K1PQRUVRm0ufwfsA

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-01-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python与SEO学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档