安居客滑块js逆向 – 逻辑详解

安居客滑块js逆向 – 逻辑详解注:本篇博客仅供学习使用,请勿用做其他商业用途,如有侵权,请联系本菜鸟本菜鸟在最近的学习过程中又遇到了一个带有滑块的验证码,觉得有点意思,所以写这篇博客记录一下,对比而言,难度比某验和某盾的简单一丢丢目标网址:aHR0cHM6Ly93d3cuYW5qdWtlLmNvbS9jYXB0Y2hhLXZlcmlmeS8/aGlzdG9yeT1hSFIwY0hNNkx5OWlhVzU2YUc5MUxtRnVhblZyWlM1amIyMHZZMjl0YlhWdWFYUjVMejltY205dFBXVnpabDlzY

注:本篇博客仅供学习使用,请勿用做其他商业用途,如有侵权,请联系本菜鸟

本菜鸟在最近的学习过程中又遇到了一个带有滑块的验证码,觉得有点意思,所以写这篇博客记录一下,对比而言,难度比某验和某盾的简单一丢丢
目标网址:aHR0cHM6Ly93d3cuYW5qdWtlLmNvbS9jYXB0Y2hhLXZlcmlmeS8/aGlzdG9yeT1hSFIwY0hNNkx5OWlhVzU2YUc5MUxtRnVhblZyWlM1amIyMHZZMjl0YlhWdWFYUjVMejltY205dFBXVnpabDlzYVhOMCZuYW1lc3BhY2U9YW5qdWtlX3hpYW9xdV9wYyZzZXJpYWxJRD0yN2U5MDU1NGNhZDI1NGMyOGEwZjgwMTk1MzY5NzYwZF83YmFmMjZhODRlNTU0YTkyYmY5MzI1ODdlNDNkNmU1NCZjYWxsYmFjaz1zaGllbGQmZnJvbT1hbnRpc3BhbQ==
验证码是这个样子的:
在这里插入图片描述
不啰嗦,咱们直接分析流行
1.请求html页面,返回一个sessionId,这个值在后面起到了很大的作用
在这里插入图片描述
2.获取到图片信息
在这里插入图片描述
在这里插入图片描述
注:这里其实可以不用管这个info的加密参数,因为这其中包含的图片地址我们可以通过responseId直接拼接出来
3.提交验证信息
在这里插入图片描述
总体的逻辑就这三步,下面主要分析加密逻辑
1.搜索dInfo,跟进f i()l[_0x8co[7]]["AESEncrypt"] 由此行代码可看出dIfno参数是由一些固定的值(url、useragent等)通过AES加密得到
在这里插入图片描述
在这里插入图片描述
2.进入具体的加密逻辑获取到CBC模式加密所需的key和iv值

iv:sessionId字符串的单数下标字符拼接而成,key和iv相同

在这里插入图片描述
所以dInfo是由固定值 + sessionId中获取到的key和iv通过AES CBC 加密得到,此处的AES加密可以用python代码直接完成加密,也可以用第二种方法:
这是一个典型的webpack,其中funtion h(t)为webpack的加载器,所以我们也可以按照webpack的扣取方式将程序的加密逻辑扣取出来,如果不知道webpack是啥东西的 可以移步这篇文章学习学习
在这里插入图片描述
3.data参数加密逻辑
处理缺口的时候需要注意的是:原始图片的大小为480 × 270 px而浏览器渲染的大小是280 × 158 px所以我们需要用from PIL import Image 这个模块对图片进行缩放处理再进行缺口识别
在这里插入图片描述
直接搜索track定位到轨迹加密的地方,值得注意的的是这里的轨迹检测的不严格,我们可以伪造一个轨迹,通过"|"间隔每次的移动数据,第一位是x,第二位是y,第三位是时间间隔
在这里插入图片描述
在这里插入图片描述
总结data参数的加密方式和前面的dInfo参数一样用的AES CBC 加密的,区别就在于一个用的轨迹和缺口数据一个用的固定值
最后看看运行截图:
在这里插入图片描述
好了,此篇博客到此结束
写在最后:请勿将本篇内容用于商业用途,如有疑问请联系本小菜鸟

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/38133.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注