滑块验证码问题

淺唱寂寞╮ 提交于 2021-02-18 16:52:48

看了下面两篇

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和路径可以得到滑动验证码内容和新的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的部分

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

 

 

 

 

 

 

  

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!