这几天的确有空了,看更新多快,专门研究了一下几个网站登录中密码加密方法,比起滑块验证码来说都相对简单,适合新手js逆向入门,大家可以自己试一下,试不出来了再参考我的js代码。篇幅有限,完整的js代码在这里:从今天开始种树
前戏
今天要碰的是汽车之家
,关于这个网站网上大多都再研究其字体反爬,如果想研究字体反爬的话直接搜一下就有很多。
今天主要是研究汽车之家在登录时的password
加密方法,并通过python
调用js
的方式运行出加密结果。
开始
老规矩,打开登录页面,长下面这样,与大多网站一样的布局,切换到账号密码登录。
接下来应该知道怎么做了吧(花5秒钟假装思考一下),跟长颈鹿装进冰箱里一样,一共4步:
- 把冰箱门打开:F12,切到
Network
页签(一般默认就是这个页签,建议大家都用chrome
); - 把大象拿出来:输入账号密码,可别输入正确的哦;
- 把长颈鹿放进去:在请求列表里查询关于登录发起的请求;
- 把冰箱门关上:找到请求,查看
POST
(一般都是post请求,暂时还没见过其它方式的) url,还有FormData
里的参数。
把冰箱门打开
按F12打开工具
把大象拿出来
输入错误的账号密码。
把长颈鹿放进去
找到请求,一般这种就需要就经验了,有时候这种请求名称会带login
等字眼,通常都是ajax
请求(切到XHR
可以只看ajax请求,如果实在找不到可以切换到XHR),这样就不会有乱七八糟的图片、css、js请求干扰你。
把冰箱门关上
这里只截取了部分数据,后面没截的大都是滑块验证码相关参数,这个后续再进行研究,今天只看这个pwd
参数。
分析
有了前面查看的结果,我们可以直接拿这个pwd
去sourecs
里查找相关的js文件,从下图看有两个文件包含pwd
关键字,第一个看着都不像,不信你可以点进去看看,第二个包含了login
关键字,八九不离十就是它,点进去。
进行来后继续搜索pwd
关键字,幸运的是只有一个结果:
那可以确定加密函数就是hex_md5
了,一般我们会碰到的就是带有rsa
、MD5
、encrypt
之类的函数,可以作为经验留意一下。
调试
整一个断点,我整在了413行,大家看自己的在第几行。
输入账号密码,点击登录然后应该就会跳转到413行,点击右侧下一步箭头,就是下面这个:
hex_md5函数
一步一步运行进入hex_md5
函数,函数长这样:
function hex_md5(s) {
return binl2hex(core_md5(str2binl(s), s.length * chrsz