记录一下js逆向的网站
先写到这里吧~~~~ 下次再会(2020.08.25)
如果多人关注的话,会继续更新,且更新更频繁,你给的星星star就是我的动力,越多,更新越快!
- glidesky相关爬虫练习题目 请查看CSDN文章,目前只发了少量的文章
- ji验验证码w参数 - 2020.07.06(后续会继续更新ji验验证码) ☆☆☆☆
- 某易易盾 - 2020.08.25 从指纹fp、随机鼠标轨迹加密 到 验证通过 一条龙服务 指纹:☆☆ 滑块轨迹:☆☆☆☆ (分析的过程难,最后随机生成的鼠标轨迹不难)
- 天yan验证码 - 官网已经挂掉,只剩首页空壳 目前只扣了初始化的js
- 建议可以学习一下这个某盾的分析过程,在本验证码源码里面,我提供了很多份js文件,里面大部分关键点都已经被我上注释了;
- 建议直接使用Chrome浏览器自带的Overrides,个人感觉比 Reres 还好用,强烈推荐
下面是前面提到的部分网站的分析步骤(下面的顺序是:倒序,将最新的进展放在前面)
0x09、 - 某易易盾 - 2020.08.25 指纹fp、随机鼠标轨迹一条龙服务 指纹:☆☆ 滑块轨迹分析:☆☆☆☆ (分析的过程难,但最后随机生成的鼠标轨迹方法不难)
说明:
已经分析了下面这些参数:
1.cb参数
2.fp参数
3.根据验证码缺口位置,随机生成鼠标轨迹
4.滑块轨迹加密
最后测试情况,很理想:998/1000,通过率约等于100%
对于我们这种不想花钱、又不想弄机器学习来识别验证码的人来说,简直就是爽爆了,简单粗暴的使用方式
最新前线消息:开源代码真的好景不长啊
- 2020.12.10 有开发者向我反映,当前这份代码识别缺口,准确率有所降低了,估计被制裁了(图片混淆比之前严重了),GG,但是JS加密部分还是可以用的,如需使用,可能你得换识别缺口的部分
- 之前还说不想用机器学习,现在知道错了嘛,啪啪啪打脸
0x08、ji验验证码w参数 - 2020.07.06(后续会继续更新ji验验证码) ☆☆☆☆
说明:
1.最主要就是 w 参数
0x07、微bo登录 ☆☆☆
说明:
1.最主要就是 sp 参数
0x06、零du代理 ☆☆ (网站好像已经挂了)
详细步骤说明
本次js解密过程,首先观察网页数据,查看加密情况,发现是将返回的数据进行解码的
- 1、那么肯定网页标签是有 id 可以定位的,于是去查看 ip 地址标签,发现一个 ip-list 这个 id
- 2、那肯定搜就完事了,反正也不知道是不是,那就先试试水嘛
- 3、然后发现好几处都是有,然后一个一个观察上下文,随便附近打断点
- 4、进行调试,慢慢调试,即可发现了一个 decode_str 和 encode_str ,长得这样的顾名思义的,可能是解密的方法,进去看就完事了
- 5、发现一调试就是对的
- 6、接下来就是扣函数,扣 decode_str 函数,将加密字符串传递过去,本地运行
- 7、缺啥找啥,发现Base64"\x64\x65\x63\x6f\x64\x65"; 其中 \x64\x65\x63\x6f\x64\x65 就是 decode 的意思,说明这个就是 base64 解码 那么转换过来 nodejs 就是 Buffer.from(scHZjLUh1, 'base64').toString()
- 8、下面继续调试发现缺少 windows 对象,发现是调用 windows 对象 String.fromCharCode() 方法, 那么这就是直接能够够用 String.fromCharCode((scHZjLUh1"charCodeAt") 来替换原来的 window["String"]["fromCharCode"](scHZjLUh1"charCodeAt"
- 9,继续调试,然后也是将 base64 解密转换为 nodejs的base64 解密,最后得出答案,恭喜,又破解一个网站!!! 完毕!!
0x05、犀niu数据 ☆☆
说明:
1.调试后,你会发现 请求前后都是进行了对应的加密、解密的操作
2.这里是加密函数,是将指定参数进行加密之后,进行post请求,然后再对返回来的response参数进行解密
说明:
1.坑:atob在nodejs里面就是使用Buffer.from(要解密的字符串, 'base64').toString());
2.遇到window对象的话,看看是否是使用了指定的方法进行解密,比如eval、ato、
3.这种是window对象的String、fromCharCode、parseInt,
4.如:_0xcbc80b['String']['fromCharCode'](_0xcbc80b['parseInt'](_0x1c0cdf[_0x33c80e], 0x2))可以写成String.fromCharCode(parseInt(_0x1c0cdf[_0x33c80e], 0x2))
-
_0xcbc80b['eval']('\x28' + _0x1c0cdf + '\x29')可以直接写成 eval('\x28' + _0x1c0cdf + '\x29')
-
Buffer.from(_0x1c0cdf, 'base64').toString()等于Buffer(_0x1c0cdf, 'base64').toString(),这两种写法是一样的
-
_0xcbc80b'atob'可以写成 Buffer.from(_0x1c0cdf, 'base64')
-
以上的总结中,_0xcbc80b就是window对象
9.强烈建议练习一下这个例子的扣 js 的过程,主要是学习如何使定位 js 代码
10.总的来说,这里面的思路就是,将前端页面的一串字符串,经过指定的解码,得到的正确答案
0x04、梦幻xi游 ☆☆
0x03、刺猬mao小说 ☆☆
说明:
1.调试后,你会发现其实网站对小说的文本内容进行加密再返回本地,然后本地通过js解密再渲染到前端
2.加密方式:不详,网站使用自己的封装的函数
3.同阿li文学加解密思路一样
4.建议练习一下扣 js 的过程,主要是学习如何使定位 js 代码
0x02、阿li文学(同刺猬猫加解密思路一样) ☆
说明:
1.调试后,你会发现其实网站对小说的文本内容进行加密再返回本地,然后本地通过js解密再渲染到前端
2.加密方式:不详,网站使用自己的封装的函数
3.同刺猬mao小说加解密思路一样
0x01、谷ge学术镜像网 ☆
说明:
1.调试后,你会发现其实就是网站的url进行加密了,但是,这里的加密分发很简单.
2.加密方式:使用两串字符进行加密,解密 js 已经抠出来
0x00、百du指数 ☆
说明:
1.调试后,你会发现其实就是一个 decrypt 解密函数,直接将对应的 key 和 加密内容传递进去即可;
2.提供了两种方法,1-使用 execjs 来执行 js 代码,因为 js 代码比较简单;2-使用 Python 来改写 js 解密代码.
如果你觉得笔者辛苦了,可以的话请我喝杯咖啡,感谢你的支持
你的赞赏就是我的动力