滑块验证码问题

coding

看了下面两篇

https://www.jianshu.com/p/3726581d218a

https://blog.csdn.net/qq_24850089/article/details/78633666

目前常用的是6.0.9,第一篇是6.0.1有js混淆可以参考,第二篇是5.x,差别比较大

按照教程下载demo在本地研究

地址:https://github.com/GeeTeam/gt-python-sdk

django的demo没打开,提示版本不对,用了flask

下载HFS软件,把gt.js文件放在本地

地址:https://pan.baidu.com/s/1c26btBE

 尝试把geetest.js从本地导入失败,应该被覆盖

可以得到的参数有challenge和gt和一些js路径:

带上gt、challenge和路径可以得到滑动验证码" title="滑动验证码">滑动验证码内容和新的challenge

失败滑动一次

通过get提交的参数有一个w,需要执行js获取

失败获得的参数

 成功获得的参数

这里challenge是新challenge,validate滑块成功获得,seccod只是加了“|jordan”

post

最重要的是参数w,通过调试得知在geetest.6.0.9.js里

\x67\x64是十六进制字符gt,后面是chellenge和w

需要知道是怎么加密的,找到w需要的参数,开始读代码

前两段

B2BB.y9r = function() {

return {F: M(48, 14)};

} ();

function M(m, P) {

var J = [];

var l = 0;

while(l < m ){

J[(l + P) % m] = [];

l += 1;

}

var R = 0;

while (R < m ){

var d = m - 1;

while (d >= 0 ){

J[R][(d + P * R) % m] = J[d];

d -= 1;

}

R += 1;

}

return J

}

B2BB.z8z = function() {

return {F:function('LFMU^Q')

}();

function(d){

var M = '';

var R = decodeURI("*3!9%3C6r%25?0?%25)x/7%60%22$。。。。太长省略“)
var J = 0, m = 0;

while ( J < R.length ){

if(m===d.length){

m = 0;

M += String.fromCharCode(R.charCodeAt(J) ^ d.charCodeAt(m));

J++;

m++;

} else {

M += String.fromCharCode(R.charCodeAt(J) ^ d.charCodeAt(m));

J++;

m++;

}

}

M = M.split('+');

return M

}  

发现6.0.9也有aa,ep,impload,passtime,rp,userresponse,继续处理得到w,对6.0.1比发现只多了生成w的部分

比较麻烦,不想在看了。。。

  

以上是 滑块验证码问题 的全部内容, 来源链接: utcz.com/z/509500.html

回到顶部