ni**的网站的登录需要的sensor_data怎么来

日常学python

共 1641字,需浏览 4分钟

 ·

2020-06-09 23:24

sensor_data 这个东西,相信都有很多人知道这个东西,我之前也搞过这个网站的登录,但是不成功,只能得到某些网页的数据,对于登录,当时是一直被拒绝的,就像下面这样。

73570085ae2f328818c2b155609393b2.webp


在今天,终于把它拿下了。

b9fa87a40f0fe2ccf5a006f89a95c5fa.webp
接下来说下这个东西需要的东西,如果你会使用ast还原代码的话,这个网站对你来说还是很容易的。还原之后是这个样子的:
5df9a914fac98e439d0b58c3828b5e0c.webp
不过这个网站很神奇,我在还原代码之后,使用 fiddler 替换 js文件,网站报错了,然后我试着不开重定向 js 文件,还是不行,清除了 cookie 所所有的东西都是不行,但是别人的电脑却可以,如果有大神知道原因的话,希望能交流下。

还原之后,一眼下去就知道这个网站检测的啥了,都是些浏览器指纹,在第一次初始化 sensor_data 的时候,只用到了少部分浏览器指纹,比如 ua、浏览器宽高等这些属性,比较多的指纹都在几个定时器上面加载的,如下面:

465f0f178a090c731fb463053390f221.webp
所以需要在一些获取浏览器指纹的地方打个断点,多个几个也没事,宁可错杀,不可放过。

里面比较厉害的是,浏览器指纹这些都是明文的,不加密,这样子如果量爬的话,就会很容易被封浏览器,需要大量的浏览器指纹,这也是个很大难度的事,有经验的也可以交流下。

里面的 getforminfo 这个函数是获取当前页面的 input 表单的属性,这个可以模拟,也可以直接固定,反正我固定也是可以过的,不需要改变。

里面的定时函数需要自己在适当的时候调用,大概的调用顺序如下:

67e252415242569f7ad54a8fb16803de.webp


这个有经验的话还是好处理的,接下来就是比较难的了,里面设置了很多监听事件,如 click、mousedown、keydown、mousemove等17个事件,不过主要是 mousemove 和 mousedown这两个事件,因为mousedown 这个事件会更新 abck cookie,mousemove的话无处不在,但是只记录前100个 mousemove,其他的暂时不清楚,没细看。

如果需要模拟事件的话,可以自己在 js里面加上些自己的js语句来收集事件轨迹,用 fiddler 的重定向来就行了。注意的是,一定需要 mousedown 事件是最后的,因为只有这个事件才会更新 sensor_data, 其他的都是在收集信息,所以需要他是最后一个事件。
来到这里就差不多成功了,就只剩下模拟请求了。他这里初始化的话会一开始就有两个请求,
b3191d9b6eb685d9f4a4be6ae894d45a.webp
第一个是请求获取这个文件的 js,这个文件就是用来生成 sensor_data 的,第二个是获取初始化的 sensor_data 并发送到服务器校验。

接下来定时器会有个请求,因为他更新了sensor_data, 所以也需要发送到服务器。

因为我们需要模拟登录,所以还会有两个 mousedown 事件,一个是点击登录来显示登录控件的。

79c8f5aee834c27f1975beaacceb880c.webp
还有一个是点击登录按钮来进行登录的

bc55ea15b580ecdf5716b05dfa791647.webp
所以还需要两个这样的请求,所以总共校验了 5 次,这个是很重要的。
如果你只是模拟了四次,成功率大概有 50%左右,而且分分钟也运行不了,模拟了五次之后,成功率就稳稳的了
4b61af3076894f9746e8ad81aee82cfc.webp
接下来就是登录请求了,登录请求的 data 参数我直接固定了,因为我只是学习下,并不爬或者做其他事,所以直接固定了事。登录请求需要东西只有这些即可:
99ab10ee2a6b92c6e44e12c29dab5230.webp
最后,还是比较重要的,因为这个网站里面需要用到很多中间变量来一步步加密 sensor_data,每次加密的变量都和上一次有关的,所以需要使用 nodejs 开个 api 接口来搞,直接用 execjs 来的话,很难搞,开个 api 也不难,直接如下:

70e0674764e824a3f7044ba15fae42f6.webp
最后的最后,做完这些,你就能登录了,这个网站难点在于轨迹,不过好像轨迹也不怎么校验,其他的都不难,,里面的加密都只是用到 base64 和一个摘要算法好像,基本都是明文,所以不难,你会操作ast还原代码的话更加容易了。

原创不易,对你有帮助的话,希望能点个在看再走,能转发分享留言就更好不过了。

END


往期文章回顾


记录下某ua的逆向过程

某数分析第二弹


在看越多,更新越快

浏览 40
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报