当前位置: 首页 > 后端技术 > Node.js

小微企业目录geetest破解验证

时间:2023-04-03 14:51:53 Node.js

尝试破解小微企业查询系统geetestoffline的git地址简介最近因为需要对爬取的非上市公司进行验证,而非上市公司多为小微企业,相比之下有了企业征信系统,小微企业名录就更方便了。基于node.jsaxios,全程破解,无需下载图片,无需模拟轨迹。线下模式任性,感觉不错。帮我Star~破解流程首先,我们按照正常的获取数据流程打开。小微企业目录,打开控制台,可以看到大概有这些请求http://xwqy.gsxt.gov.cn/security/verify_iphttp://xwqy.gsxt.gov.cn/security/verify_keywordhttp://xwqy.gsxt.gov.cn/pc-geetest/register?t=1516872325770看response(当然熟悉geetest的话会发现register是geetest的初始化请求)。success:0其中可以发现success基本为0,也就是说离线模式是什么?基本上就是geetest不参与判断的状态。验证部分在前台和中间服务器完成。回头看看之前系统下载的js,会发现geetest文件提供的jsgeetest.0.0.0.jsoffline.6.0.0.js两个源也提供在项目中了滑块拼发了一个新的的验证请求http://xwqy.gsxt.gov.cn/pc-geetest/validaterequest如下:geetest_challenge:a1d0c6e83f027327d8461063f4ac58a61cgeetest_validate:010886ec_0084e_10100077776egeetest_seccode:010886ec_0084e_10100077776e|jordanchallenge在第一步我们Alreadygotit,thequestionishowtogetthevalidate?同时,seccode被validate添加了一个jordan,因为它是关闭的ine然后分析offline.js并查看代码以查看此返回c>=f-3&&c<=f+3?{成功:!0,消息:“成功”,验证:b.A(c,e.d.挑战)+“_”+b.A(a.b(“rand0”,e.c),e.d.挑战)+“_”+b.A(a.b(“rand1",e.c),e.d.challenge),score:Math.round(d/200)}:{success:0,message:"fail"}这不就是我们想要的吗!验证:b.A(c,e.d.challenge)+"_"+b.A(a.b("rand0",e.c),e.d.challenge)+"_"+b.A(a.b("rand1",e.c),e.d.challenge),离线。6.0.0.js和offline.5.0.0.js可以看出是使用keyrandrand1加密得到一个值。一半的解决方案是靠集合案例来逆向,但我们不再赘述如果你搜索轮子的github关键字,你会发现已经有人整理了'https://github.com/9468305/python-script/blob/master/geetest_offline/util.py',所以后续只与它相关。爬虫和页面跳转有问题。具体可以看util中的代码也可以直接在micro_lib中搜索验证地址发送到http://xwqy.gsxt.gov.cn/mirco...并相应修改发送方式输入值organId即可:100000textfield:encodedkeywordfwId:1400searchOrganId:channelId:99captcha:geetest_challenge:3ef815416f775098fe977004015c619332geetest_validate:010886ec_0084e_10100077776egeetest_seccode:010886ec_0084e_10100077776e|jordanrestful-api已经做了一个api形式,可以直接在url中输入关键字爬取运行步骤npminstallnpmrunstartcurlhttp://127.0.0.1:4001/companykeywords