好吧,国庆节来了自己一个人没有选择出去玩,因为失业了还要找工作,苦逼呀…在找工作之前自己这几天肯定要准备点东西,真惨…不矫情了。分享一个破解js方法的模块吧。
在工作中有些网站是涉及到加密的问题,因为作者所做的网站大部分涉及到登录问题,那么在登录的时候我们知道最有可能遇到的是账号密码的加密,今天就分享一下自己在工作中实际遇到的问题以及解决方法,直接上代码如下:
{"LoginKey":"46fd82c2-3108-b2a4-3056-0eaa426f975b","data":"{\"User_Oid\":\"账号\",\"User_Password\":\"密码\"}"}
自己想要模拟登录的时候发现无缘无故的多了一个键值对:"LoginKey":"46fd82c2-3108-b2a4-3056-0eaa426f975b",
此时不禁在想难道是个固定值,又或者在其他页面上生成的数据吗?然而当作者实际测试的时候发现固定值这个想法太简单了,可是也没有从其他的页面获取到值呀?不禁猜想一定是js文件进行了加密,于是那就找js文件吧,查找js文件这里作者就不教大家怎样查找了,如果不会可以去作者之前的分享看一下,因为涉及到工作网站,这里作者也不对外提供网址了,今天分享的是我们找到js文件是怎样才能破解和实现。这里作者贴出来找到的js函数:
function s4() {
return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);
};
function guid() {
return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();
}
这就是生成LoginKey
值的js文件,那么进行破解吧,js2py模块的应用正式开始。
- 安装
pip install js2py
- 应用
#coding=utf-8
import js2py
LoginKey = js2py.eval_js('''
function s4() {
return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);
};
function guid() {
return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();
}
var a = guid() // 在这里是需要调用的
''')
print LoginKey
好了是不是破解到这里就结束了,是不是这个模块的应用是非常简单的,破解js说明白了就是怎样找到加密的函数才是关键。
大家国庆节快乐哈,这几天会连续分享点东西的。