某科网滑块登录逆向解析

网址如下,使用base64解码获得
aHR0cHM6Ly9pLmZrdy5jb20vaW5kZXguanNw

滑块登录逆向最基本的步骤还是先确定两个请求,获得验证码请求和校验验证码请求,我们先来看获得验证码请求

通过反复错误登录后,触发滑动验证码,刷新验证码,拿到get请求,如下:
在这里插入图片描述
接着分析请求参数,由以下部分组成
在这里插入图片描述
跟栈进去查看参数来源,通过如下图片跟栈得知,参数都是固定参数,所以固定参数请求即可
在这里插入图片描述
在这里插入图片描述
接下来,看校验验证码的请求
在这里插入图片描述
通过观察发现,实际上就是多了一个vi参数,我们跟栈查看vi参数的由来
在这里插入图片描述
跟栈发现,vi在t的参数里面,而t是由加密生成,其中e是需要传的关键参数, 加密方法为ue,ve,其中e是由按下滑块y值和抬上滑块y值和偏移x值和滑块轨迹4个部分组成,这里所有值都可以通过自己写的算法生成,具体怎么写,要看网站校验严不严格,这里可以参考我之前的一篇文章,里面有滑块轨迹的简单生成方法yun片滑块登录逆向
在这里插入图片描述
这里,我们先查看一下e和用ve加密e的的区别,发现只是将传参的字典加入进去,那么ve加密可以不用扣了,我们来看下ue加密
在这里插入图片描述
这里ue的加密内部直接展示了vi的生成方法就是N加密函数,并且传入N的参数也是之前生成好的,没有变化,所以这里我们只要扣出N函数即可

	function N(e) {
    
    
		for (var t, n, i = String(e), o = 0, a = K, r = ""; i.charAt(0 | o) || (a = "=",
		o % 1); r += a.charAt(63 & t >> 8 - o % 1 * 8)) {
    
    
			if ((n = i.charCodeAt(o += .75)) > 255)
				throw new L("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");
			t = t << 8 | n
		}
		return r
	}

我们这里直接扣下N,发现没有其他的加密函数依赖,这个加密就非常的简单,最后组装成python代码,这里我就不验证正确的拖动值了
在这里插入图片描述

拿到正确的返回拖动错误的响应

猜你喜欢

转载自blog.csdn.net/qq_36551453/article/details/135241215