前言
目标网址:CWh0dHBzOi8vYXBpLmFuanVrZS5jb20vd2ViL2dlbmVyYWwvY2FwdGNoYU5ldy5odG1sP2N2PTUuMCZzZXJpYWxJRD1jYjYwZjQxN2Q1MWIzZTUzZTIwZDEzYjVmMTUyZTM5NV9lYmE2OTg0YWFjZmU0NDJmYWUzZmM3OWE3NGFlYjYxMiZuYW1lX3NwYWNlPWFuanVrZV9jX3hpYW9jaGVuZ3h1Jl91bmxlc3M9dW5sZXNzCgk=
呃,因为没有什么目标就找一些大佬文章,然后找网址练习(要是不会还可以看大佬的思路,一举多得啊)。这是大佬的文章链接(https://mp.weixin.qq.com/s/ehhFkMmj9Tu1IIwqEs2VfQ)。
一.思路
1.访问首页,得到网页源代码得到 sessionId
2.得到dInfo参数 是由js生产,一个AES 加密
3.访问 /captcha/getInfoTp 得到responseId
4.得到 滑块和背景图 /captcha/captcha_img?rid= responseId &it=_big
5.模拟滑块加密过程
6.访问 /captcha/checkInfoTp
二.观察目标网址
因为有滑块嘛,我们的首要目标就是得到背景图和滑块图吧
可以很明白的知道是这两个链接,然后我们具体看到,需要一个 rid=b3a8a875681c42d9b2a24709c1b0623f 这个参数,那我们就需要去寻找这个参数了。
最后找到了这里
看到这,这是一个请求后返回的信息,那我们就需要请求这个链接,然后就可以得到所需要的图片的连接了。
看看这个url的参数
这里注意的就是 sessionId 和 dInfo 这两个参数,而对于sessionId这个很好找,
就在页面得网页源代码中,可以通过正则得到
而 dInfo 就需要分析js了。
三.js分析
通过搜索很容易定位到加密的位置
而参数e正好就是sessionId,而t也是固定的,那么得到这个加密函数就可以了。
复制全部,然后折叠看了一下是一个webpack,函数p就是它的加载函数,至于如何弄webpack,我这里推荐远哥的视频,远哥讲得很清楚很明白
当然我们这里知道了是个AES加密也可以调库。
经过以上几步我们算是拿到了滑块的图片和背景图,那么下一步就是去过掉滑块啦啦
四.滑块轨迹分析
先从我们得到这些信息要去请求的网址入手,看是否好的定位的方法
看到了几个很熟悉的参数啊 sessionId responseId dInfo data 这几个参数只有data是我们不知道的,那这个data估计就是和滑块的信息有关系了。
可以通过搜索,也可以通过堆栈回去找,有关滑块信息的位置也很容易定位到
然后等我们进入加密的部分,很高兴的发现和之前加密 dInfo地方是一样的啊
然后很有技术含量的东西我就借鉴了大佬的思路,大佬讲这里并没有对滑块的轨迹做检测,所以只需要有一条轨迹就可以了。但后面我发现,成功率与我们所构造的轨迹也有些关系。我自己就是很慢的把页面上的滑块滑倒最后,然后通过同上的位置,让页面自动加载出来,我就当作我滑块的轨迹选择。当然有更好的方法,请大佬指导一下,留个言。
至于模拟轨迹的代码,大佬文章里面有哦,可以去看一下哦。
同时还需要注意的一点就是,就是大小问题。
页面的大小是280158,我们通过请求得到的图片是480270。之前我想的是,先就用大图,然后除以一个比例,但是我用得到结果去对比发现这个比例并不好找。。。后面想着那我可把图片大小变成一样的规格啊
然后识别后差距就很小了。
这样整体下来,请求/captcha/checkInfoTp这个网址参数也全部得到了,那也就结束了