企业信用信息公开网-极验

企业信用信息公开网-极验_第1张图片
本文制作研究使用

首先还是抓包
企业信用信息公开网-极验_第2张图片
这一段代码看着好恶心:

var x="@eval@while@chars@@8@Dec@@Bh@@toLowerCase@parseInt@catch@@@03@@firstChild@02@@Tue@join@@@false@19@match@17@0@@1@@1500@@__jsl_clearance@@substr@window@1576548148@length@@location@https@@@Path@@4@0xFF@D@div@@917@@for@RegExp@@B@onreadystatechange@28@setTimeout@36@@@if@g@7@@@else@JgSe0upZ@@split@d@@replace@rOm9XFMtA3QKV7nYsPGT4lifyWwkq5vcjH2IdxUoCbhERLaz81DNB6@reverse@pathname@cookie@innerHTML@@function@challenge@captcha@createElement@@@var@href@String@C@try@@WwQ@charAt@return@Array@toString@attachEvent@charCodeAt@Expires@DOMContentLoaded@zCP@fromCharCode@GMT@@addEventListener@@E@@@@2@f@@e@search@a@@0xEDB88320@document@@@@@new@".replace(/@*$/,"").split("@"),y="131 27=123(){75('52.132=52.117+52.166.114(/[\\?|&]125-124/,\\'\\')',41);172.120='43=47.65|35|'+(123(){131 27=[([-~[]-~(+!{})-~(+!{})]*(-~[]-~(+!{})-~(+!{}))+[[]][35]),(-~[]+[]+[])+(60+[[]][35]),(103+[]+[[]][35]),(-~[]+[]+[])+[-~[]+162],[(-~![]+[(-~![]<<-~![])])/[(-~![]<<-~![])]],(60+[[]][35]),(-~[]+[]+[])+((-~![]<<-~![])+[]+[[]][35]),(-~[]+[]+[]),[(+!{})],((-~![]<<-~![])+[]+[[]][35]),[-~![]-~[-~[]-~(-~![]-~[-~(+!{})-~(+!{})])]],(-~[]+[]+[])+(([(-~![]<<-~![])]+~~!/!/>>(-~![]<<-~![]))+[]+[[]][35]),(-~[]+[]+[])+(-~[]+[]+[]),(-~[]+[]+[])+[(+!{})],(([(-~![]<<-~![])]+~~!/!/>>(-~![]<<-~![]))+[]+[[]][35]),[-~[]+162]],113=142(27.50);67(131 64=35;64<27.50;64++){113[27[64]]=['%',[-~[]+162],'72','137%',[[(-~![]<<-~![])]/(+!{})+[]+[[]][35]][35].140((+!{}))+[((-~(+!{})-~(+!{})^-~![]))/~~''+[]][35].140(-~-~(+!{})),(([(-~![]<<-~![])]+~~!/!/>>(-~![]<<-~![]))+[]+[[]][35])+[((-~(+!{})-~(+!{})^-~![]))/~~''+[]][35].140(-~-~(+!{}))+[(+!{})],[-~[]+162]+([]-{}+[]+[]).140(~~'')+[{}+[]+[]][35].140(-~[-~-~(+!{})+(-~(+!{})-~(+!{})^-~![])])+((-~![]<<-~![])+[]+[[]][35]),'150',([(-~![]<<-~![])]/(+!{})+[[]][35]).140((-~(+!{})-~(+!{})^-~![]))+[{}+[]+[[]][35]][35].140(-~[])+[[(-~![]<<-~![])]/(+!{})+[]+[[]][35]][35].140((+!{}))+[-~![]-~[-~[]-~(-~![]-~[-~(+!{})-~(+!{})])]],[{}+[[]][35]][35].140(-~(-~![]-~[-~(+!{})-~(+!{})]))+([-~[]-~(+!{})-~(+!{})]*(-~[]-~(+!{})-~(+!{}))+[[]][35]),[(+!(+[]))/(+!{})+[]+[[]][35]][35].140(-~![]),'62','11',((-~![]<<-~![])+[]+[[]][35]),'134','156'][64]};141 113.26('')})()+';146=25, 34-7-32 20:23:74 152;56=/;'};101((123(){135{141 !!46.154;}15(165){141 31;}})()){172.154('147',27,31)}106{172.144('73',27)}",f=function(x,y){var a=0,b=0,c=0;x=x.split("");y=y||99;while((a=x.shift())&&(b=a.charCodeAt(0)-77.5))c=(Math.abs(b)<13?(b+48.5):parseInt(a,36))+y*c;return c},z=f(y.match(/\w/g).sort(function(x,y){return f(x)-f(y)}).pop());while(z++)try{eval(y.replace(/\b\w+\b/g, function(y){return x[f(y,z)-1]||("_"+y)}));break}catch(_){}

可以看到是操作了cookie,这个是第一步,解析了这一步才可以正常的请求到http://www.gsxt.gov.cn/index.html.
代码混淆的样式使用的是一个类似JSFuck的混淆器,不过这些都不重要.重要的是可以执行就完了.

输入查询的条件:
企业信用信息公开网-极验_第3张图片
是极验的滑块,网上又很多类似分析教程,有的也过期了.

这里简单分析下极验的滑块都干了哪些事:

浏览器环境检测 (无痕验证)
点击一次验证或者自主校验
滑块验证

浏览器环境检测:

目前的代码是在fullpage.8.8.8.js中,版本号会经常有更新.

先看抓包:
企业信用信息公开网-极验_第4张图片
代码是这样的:
企业信用信息公开网-极验_第5张图片
混淆的很成功,基本上不知道极验内部在干些啥

但是不会影响我们分析,把代码解混淆一下:
企业信用信息公开网-极验_第6张图片
多少还是可以看明白的.

大概做了一些事情:

传入了gt,challenge,极验各个版本的检测js版本信息,屏幕等硬件信息,使用随机AESkey进行AES加密,生成的就是W参数

自主校验:

有的地方是出来一个点击验证,有的没有提示.像这样:
在这里插入图片描述
企业信用信息公开网-极验_第7张图片
代码也是在fullpagejs中,大概过程:

加密的东西有网页加载的情况,点击的位置信息,focus,mousedown,pointerdown,mousemove,mouseup.pointerup等等,还有环境加测的一些信息等等,同样是使用AES加密.
在这里插入图片描述
类似这样.

有时候这一步检测就会返回validate值了
企业信用信息公开网-极验_第8张图片
滑块验证:
企业信用信息公开网-极验_第9张图片
slide代表需要滑块

滑块比较有意思,自己请求得到的是错乱的图片,格式是webp,还不是JPG/PNG的,需要转换:

企业信用信息公开网-极验_第10张图片
正常的图片是这样的:

企业信用信息公开网-极验_第11张图片
新版的是用canvas画图组合的,有的旧版用的是background-position组合拼接的:

企业信用信息公开网-极验_第12张图片
这样就一目了然了,使用cv2将混乱的照片按照background-position位置标识就可以正常的拼接了.不知道为什么有的人写的很复杂.

识别缺口位置:

这个网上有很多的人发过,基本都是使用cv2的matchTemplate来识别的.也很简单

计算轨迹:

[-30,-33,0],[0,0,0],[1,-1,846],[2,-1,939],[4,-1,1023],[5,-1,1186]....

第一个是位置信息,第二个是上下的偏移,第三个是时间差

如果需要模拟真实的操作的话,还是需要花一些时间的.
企业信用信息公开网-极验_第13张图片
正常返回的是validate值

轨迹的加密思路和上面的是差不多的,这里就不在复述了

最后使用python模拟下:
在这里插入图片描述

你可能感兴趣的:(爬虫)