某酒店网登陆密码AES加密逆向,采用的是 AES cbc 模式加密方式,如果能快速定位到加密关键位置代码,加密函数的话还是比较简单,不过搜索关键字结果干扰还是比较多的,需要多尝试,测试!
网址:
代码语言:javascript
复制
aHR0cHM6Ly9ob3RlbC5iZXN0d2Vob3RlbC5jb20vTmV3TG9naW4vP2dvPWh0dHBzJTNBJTJGJTJGaG90ZWwuYmVzdHdlaG90ZWwuY29tJTJG
特征:
代码语言:javascript
复制
#123456
password: "JfYot+NjHbQacTYI6d5KMQ=="
- 账号登陆测试网站
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