前提
- python 3.8
- requests
- scrapy
- splash
- selenium
问题展示
- 地址:https://www.dlzb.com/c-842214/
- requests请求返回码521
- selenium无法加载
分析过程

image.png
第一次请求

image.png

image.png
- 返回response Set-Cookie
Set-Cookie: D3z_vi-ds=fdb45603a3fea6483b8d1afa2c9c4021; expires=Tue, 21-Dec-2021 15:59:59 GMT; Max-Age=27190; path=/; domain=.dlzb.com; secure
- 返回一段js,使用解混淆工具
<script>document.cookie=('_')+('_')+('j')+('s')+('l')+('_')+('c')+('l')+('e')+('a')+('r')+('a')+('n')+('c')+('e')+('_')+('s')+('=')+(-~[]+'')+(1+5+'')+((2)*[2]+'')+(~~[]+'')+(~~false+'')+((1+[4]>>1)+'')+(([2]+0>>2)+'')+(1+3+'')+(-~[]+'')+(3+6+'')+('.')+(1+7+'')+(-~1+'')+((1+[2]>>2)+'')+('|')+('-')+(-~[]+'')+('|')+('D')+('A')+('B')+('T')+('H')+('f')+('p')+('P')+('x')+('X')+('F')+('Q')+(7+'')+('j')+('h')+('x')+('J')+('P')+('g')+('N')+('f')+('Z')+('W')+('p')+('W')+(4+5+'')+(~~false+'')+('%')+((1|2)+'')+('D')+(';')+('m')+('a')+('x')+('-')+('a')+('g')+('e')+('=')+(-~[2]+'')+([2]*(3)+'')+(~~{}+'')+(~~''+'')+(';')+('p')+('a')+('t')+('h')+('=')+('/');location.href=location.pathname+location.search</script>
解析后
document.cookie = "__jsl_clearance_s=1640075419.823|-1|DABTHfpPxXFQ7jhxJPgNfZWpW90%3D;max-age=3600;path=/";
location.href = location.pathname + location.search;
第二次请求

image.png
Cookie: __jsluid_s=ab7693e07421b4ca797ef7e5a6f4f0d9; __jsl_clearance_s=1640075203.879|-1|geHz8HOHNHnj0bUqvPj84xEHiMQ%3D
- __jsluid_s= 第一次请求返回的Set-Cookie
- __jsl_clearance_s = 第一次请求返回JS的运输结果(值不同是因为第一次请求返回的JS是使用postman模拟的,浏览器看不到返回的JS,所以JS执行的结果不同)
第二次请求返回值

image.png
<script>var _0x1075=['G8OcwpZP','EsOGwrh1','LgvDkGw=','woJCMiU=','XXTDv8OO','W8OPHMOD','w7jCv8KGQg==','wqFjwqTDoQ==','w5RffsOF','w4BGw70b','w4vDqkNO','TsOdFcOF','GxXDoz4=','bFrDlcKX','wplzGFw=','w4nDtgJD','wrdnCgs=','ABPDo0g=','QMKvasK3','wpvCrcOEw5M=','KMK+w6AM','N8ODwrVc','wqNKKUg=','FMOeCA0=','X8OOCMOo','MBvDkcKZ','IcOlw7zCsg==','wo/DksKuw6k=','UcORGMOD','w5HDt8K8','bcKbXgc=','w6TDuUlN','NcK0w7I/','KiXDnSA=','w41RfsOM','w6TCvcKORw==','w5IiXsKj','w6JAw7wx','woFrwodI','WynDnX0=','w6AKJB4=','dkTDtg==','w7/Du8KSwqM=','NMO5w5LCpQ==','ZBDDqH0=','w5bDq0NI','wr7CjlDDgg==','RGPDpMKJ','wp9jwrfDmg==','w7s/ABo=','w59vw53Clg==','ScO9w4rCiA==','AgHDnAQ=','V8OKw7fDjw==','wq5yw5rCig==','wpBCICs=','wolDw7/CnQ==','wqhQT8O+','XSgdwqw=','wooTw5ch','wo3CgMODw5Y=','w7t7w4zCkw==','wpLCt8OEw4g=','Z17Dj8Kf','w45YfsOV','w7JGw7XCug==','EMOjPAE=','SDoNwoY=','wrlhf8O9','w4vCjcOaeQ==','w5AKYsKN','FMO1wo5G','w6rDncKbw5M=','w5ocMAQ=','w7VJw7Re','KsOJw7nCvg==','PBXDvCQ=','eB9ew48=','wqlVw6zCog==','w758w7fCqw==','DMO/w5M=','wpfDucKuw7c=','RibDs0U=','C8Kgw5If','woAAwqTCiA==','wqzDqsKjw5I=','wrhUWcO1','w6Nuw5pc','VsOXw5XDjg==','w7Fxw7jCvg==','w4EbHg8=','wrlresOh','QsOrw7vDlA==','w4nDgzd0','VMOCE8OW','w4AgasKC','w6MifMKu','bl7DusOI','wr0Kw5g8','wofCl8KvHw==','w6rDhmlS','w7xXw7TCsA==','worDrcKkw60=','wpEdWcKq','wqNGwo5N','fgrDtWw=','wrJNJhc=','wqESw6Ie','wrB1w7HCvA==','wqM9w7Eb','V8KubMKQ','w5o6wpcc','VsOGEMOU','w7gxOQE=','w4PDpzV7','w77DkMKqwpQ=','wpoRQsKU','acKSSxo=','wpsOw5ki','YUrDt8OQ','w4jCvsO6RQ==','w51mw59S','w7bDiMKyw5g=','wpzDucOWAg==','wq3Dt1UE','wrhpwqlP','w7fCqkYP','w4LCqcKSWA==','w513w4vCnQ==','YGjDgsO5','w6zDtMKuwrc=','MMO4PAM=','wpnCtMK1Jw==','VsOYw7DCjQ==','BA3DpkU=','w6xLwrfDhg==','G8OfAww=','L8O1UAA=','w417w5TCtg==','C8OOBBk=','w4VpXcOY','w4kUwrQh','wqPCj1DDlg==','wpZBEiQ=','wrVywqU=','wqxHw7zCgA==','w4plw5TCkg==','WErDv8OQ','wqcTwpNp','woYZw5UZ','w4wCRcKu','w6BPw6gd','wqdHwrvDmg==','JAHDpEE=','6K2P5rK66ai06K+L','w5fDt1pG','wp/Dp8OOZQ==','R03DqMOZ','w5htw4hE','ZMKYW8KZ','w6FSw4oc','Hj/DqgI=','Tl3DksKd','w65hw7nCsg==','w5QKNhs='];(function(_0x551a31,_0x107505){var _0x314296=function(_0x41d067){while(--_0x41d067){_0x551a31['push'](_0x551a31['shift']());}};_0x314296(++_0x107505);}(_0x1075,0x1c9));var _0x3142=function(_0x551a31,_0x107505){_0x551a31=_0x551a31-0x0;var _0x314296=_0x1075[_0x551a31];if(_0x3142['VVxAQg']===undefined){(function(){var _0x6f57a=function(){var _0xa13d74;try{_0xa13d74=Function('return\x20(function()\x20'+'{}.constructor(\x22return\x20this\x22)(\x20)'+');')();}catch(_0x1ff0bf){_0xa13d74=window;}return _0xa13d74;};var _0xf2e19f=_0x6f57a();var _0x20cd2f='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';_0xf2e19f['atob']||(_0xf2e19f['atob']=function(_0xe242ab){var _0x27f4e6=String(_0xe242ab)['replace'](/=+$/,'');var _0x4f60dd='';for(var _0x575274=0x0,_0x509bf3,_0x21da96,_0x435f49=0x0;_0x21da96=_0x27f4e6['charAt'](_0x435f49++);~_0x21da96&&(_0x509bf3=_0x575274%0x4?_0x509bf3*0x40+_0x21da96:_0x21da96,_0x575274++%0x4)?_0x4f60dd+=String['fromCharCode'](0xff&_0x509bf3>>(-0x2*_0x575274&0x6)):0x0){_0x21da96=_0x20cd2f['indexOf'](_0x21da96);}return _0x4f60dd;});}());var _0x35df89=function(_0x3f3ade,_0x197892){var _0x2ef4a4=[],_0x32fae8=0x0,_0xa470d4,_0x23afc7='',_0x5978d0='';_0x3f3ade=atob(_0x3f3ade);for(var _0x45c2ba=0x0,_0x9bc38b=_0x3f3ade['length'];_0x45c2ba<_0x9bc38b;_0x45c2ba++){_0x5978d0+='%'+('00'+_0x3f3ade['charCodeAt'](_0x45c2ba)['toString'](0x10))['slice'](-0x2);}_0x3f3ade=decodeURIComponent(_0x5978d0);var _0x2b735c;for(_0x2b735c=0x0;_0x2b735c<0x100;_0x2b735c++){_0x2ef4a4[_0x2b735c]=_0x2b735c;}for(_0x2b735c=0x0;_0x2b735c<0x100;_0x2b735c++){_0x32fae8=(_0x32fae8+_0x2ef4a4[_0x2b735c]+_0x197892['charCodeAt'](_0x2b735c%_0x197892['length']))%0x100;_0xa470d4=_0x2ef4a4[_0x2b735c];_0x2ef4a4[_0x2b735c]=_0x2ef4a4[_0x32fae8];_0x2ef4a4[_0x32fae8]=_0xa470d4;}_0x2b735c=0x0;_0x32fae8=0x0;for(var _0x545c88=0x0;_0x545c88<_0x3f3ade['length'];_0x545c88++){_0x2b735c=(_0x2b735c+0x1)%0x100;_0x32fae8=(_0x32fae8+_0x2ef4a4[_0x2b735c])%0x100;_0xa470d4=_0x2ef4a4[_0x2b735c];_0x2ef4a4[_0x2b735c]=_0x2ef4a4[_0x32fae8];_0x2ef4a4[_0x32fae8]=_0xa470d4;_0x23afc7+=String['fromCharCode'](_0x3f3ade['charCodeAt'](_0x545c88)^_0x2ef4a4[(_0x2ef4a4[_0x2b735c]+_0x2ef4a4[_0x32fae8])%0x100]);}return _0x23afc7;};_0x3142['AumfXg']=_0x35df89;_0x3142['rnagVx']={};_0x3142['VVxAQg']=!![];}var _0x41d067=_0x3142['rnagVx'][_0x551a31];if(_0x41d067===undefined){if(_0x3142['eQblpq']===undefined){_0x3142['eQblpq']=!![];}_0x314296=_0x3142['AumfXg'](_0x314296,_0x107505);_0x3142['rnagVx'][_0x551a31]=_0x314296;}else{_0x314296=_0x41d067;}return _0x314296;};function hash(_0x552a82){var _0x26a3ab={};_0x26a3ab[_0x3142('0x29','jY@t')+'j']=function(_0x418fe4,_0x47f50f){return _0x418fe4^_0x47f50f;};_0x26a3ab[_0x3142('0x6d','RVW5')+'k']=function(_0x197a02,_0x4c06c8){return _0x197a02^_0x4c06c8;};_0x26a3ab[_0x3142('0x85','SRy%')+'c']=function(_0x29b879,_0x362aeb){return _0x29b879+_0x362aeb;};_0x26a3ab[_0x3142('0x8a','(DsA')+'N']=function(_0x1a611b,_0x3d26f5){return _0x1a611b&_0x3d26f5;};_0x26a3ab[_0x3142('0x7b','h]u%')+'M']=_0x3142('0xa1','SNL3')+_0x3142('0xa','Jz[z')+_0x3142('0xa2','C!sW')+_0x3142('0x9','w[j!');_0x26a3ab[_0x3142('0xb','V1Bk')+'V']=function(_0xc6bca0,_0x175d18){return _0xc6bca0>=_0x175d18;};_0x26a3ab[_0x3142('0x46','ymrI')+'F']=function(_0x16bc88,_0x4ff475){return _0x16bc88<_0x4ff475;};_0x26a3ab[_0x3142('0x38','tQ[%')+'B']=function(_0x56c439,_0xa47f2e){return _0x56c439*_0xa47f2e;};_0x26a3ab[_0x3142('0x8e','@u2q')+'R']=function(_0x2d2d86,_0x247225){return _0x2d2d86*_0x247225;};_0x26a3ab[_0x3142('0x31','UXs3')+'v']=function(_0x125e04,_0x217603){return _0x125e04>>_0x217603;};_0x26a3ab[_0x3142('0x91','Yzuv')+'l']=function(_0x2da547,_0x11e772){return _0x2da547-_0x11e772;};_0x26a3ab[_0x3142('0x3b','RVW5')+'p']=function(_0x4da387,_0x5a3d46){return _0x4da387<<_0x5a3d46;};_0x26a3ab[_0x3142('0x66','1W%f')+'L']=function(_0x3c1974,_0x11447b){return _0x3c1974<_0x11447b;};_0x26a3ab[_0x3142('0x53','(DsA')+'Z']=function(_0x45fadc,_0xb4a19b){return _0x45fadc^_0xb4a19b;};_0x26a3ab[_0x3142('0x1','0&!@')+'Z']=function(_0x89ce77,_0x37dd50){return _0x89ce77|_0x37dd50;};_0x26a3ab[_0x3142('0x70','!8)K')+'D']=function(_0x43d445,_0xdb2e4f){return _0x43d445&_0xdb2e4f;};_0x26a3ab[_0x3142('0x5d','jY@t')+'S']=function(_0x1b6a5c,_0x4141b0){return _0x1b6a5c^_0x4141b0;};_0x26a3ab[_0x3142('0x67','V1Bk')+'W']=function(_0x57e10b,_0x53b621){return _0x57e10b!==_0x53b621;};_0x26a3ab[_0x3142('0x68','w[j!')+'L']=_0x3142('0x74','V4cT')+'G';_0x26a3ab[_0x3142('0x9e','%dfz')+'j']=function(_0x288f3f,_0x41987e){return _0x288f3f<_0x41987e;};_0x26a3ab[_0x3142('0x81','peD!')+'y']=function(_0x2c35fb,_0x148a6e,_0x50924d){return _0x2c35fb(_0x148a6e,_0x50924d);};_0x26a3ab[_0x3142('0x14','!ucn')+'W']=function(_0x5804a3,_0xe23306){return _0x5804a3^_0xe23306;};_0x26a3ab[_0x3142('0x88','Yzuv')+'T']=function(_0x3ad3bc,_0x1a4a63){return _0x3ad3bc-_0x1a4a63;};_0x26a3ab[_0x3142('0x5e','V4cT')+'t']=function(_0x851467,_0x20a194,_0x4ffb18){return _0x851467(_0x20a194,_0x4ffb18);};_0x26a3ab[_0x3142('0x21','T7sn')+'s']=function(_0x36ea2b,_0x197f58,_0x421123){return _0x36ea2b(_0x197f58,_0x421123);};_0x26a3ab[_0x3142('0x39','[P)^')+'B']=function(_0x45a4da,_0x3f8306,_0x2e0779,_0x1f5f03,_0x11812a){return _0x45a4da(_0x3f8306,_0x2e0779,_0x1f5f03,_0x11812a);};_0x26a3ab[_0x3142('0x28','mM9@')+'O']=function(_0xa23983,_0x12c3df,_0x383776){return _0xa23983(_0x12c3df,_0x383776);};_0x26a3ab[_0x3142('0x6','&y]5')+'s']=function(_0x417f3c,_0x2f387a,_0xdfde18){return _0x417f3c(_0x2f387a,_0xdfde18);};_0x26a3ab[_0x3142('0x49','SNL3')+'u']=function(_0x182972,_0xd3f1f7,_0x5d96b3){return _0x182972(_0xd3f1f7,_0x5d96b3);};_0x26a3ab[_0x3142('0x7','mM9@')+'z']=function(_0x1b12a9,_0x650610,_0x359172){return _0x1b12a9(_0x650610,_0x359172);};_0x26a3ab[_0x3142('0x82',')n1I')+'l']=function(_0x2db6e9,_0x4764a5,_0x95697d){return _0x2db6e9(_0x4764a5,_0x95697d);};_0x26a3ab[_0x3142('0x73','ZG5u')+'L']=function(_0x4aeea7,_0x27e65e){return _0x4aeea7+_0x27e65e;};_0x26a3ab[_0x3142('0x10','jY@t')+'m']=function(_0x1d9234,_0x4def1c){return _0x1d9234(_0x4def1c);};_0x26a3ab[_0x3142('0x71','h^$h')+'I']=function(_0x18f85a,_0xe3d10a){return _0x18f85a(_0xe3d10a);};var _0x546a2a=_0x26a3ab;function _0x9178f0(_0x2ea035,_0x21505c){return _0x546a2a[_0x3142('0x7d','!8)K')+'j'](_0x546a2a[_0x3142('0x3a','ymrI')+'k'](_0x546a2a[_0x3142('0x50','5ItM')+'c'](_0x2ea035&0x7fffffff,_0x546a2a[_0x3142('0x62','[P)^')+'N'](_0x21505c,0x7fffffff)),_0x2ea035&0x80000000),_0x546a2a[_0x3142('0x3c','De0w')+'N'](_0x21505c,0x80000000));}function _0x245dd7(_0x2f8cb1){var _0x3790d4=_0x546a2a[_0x3142('0x16','Yzuv')+'M'];var _0x1c94dc='';for(var _0x17288d=0x7;_0x546a2a[_0x3142('0x64','[P)^')+'V'](_0x17288d,0x0);_0x17288d--){_0x1c94dc+=_0x3790d4[_0x3142('0x99','5ItM')+'At'](_0x546a2a[_0x3142('0x55','rl#y')+'N'](_0x2f8cb1>>_0x17288d*0x4,0xf));}return _0x1c94dc;}function _0x124d3e(_0x38921b){var _0x2a45c6=(_0x38921b[_0x3142('0x65','rl#y')+'th']+0x8>>0x6)+0x1,_0x4ec702=new Array(_0x2a45c6*0x10);for(var _0x2a5bcc=0x0;_0x546a2a[_0x3142('0x3','5ItM')+'F'](_0x2a5bcc,_0x546a2a[_0x3142('0x4b','T7sn')+'B'](_0x2a45c6,0x10));_0x2a5bcc++){_0x4ec702[_0x2a5bcc]=0x0;}for(_0x2a5bcc=0x0;_0x546a2a[_0x3142('0x5a','6gFE')+'F'](_0x2a5bcc,_0x38921b[_0x3142('0x84','UXs3')+'th']);_0x2a5bcc++){_0x4ec702[_0x2a5bcc>>0x2]|=_0x38921b[_0x3142('0x9b','Uyet')+_0x3142('0x2e','1W%f')+'At'](_0x2a5bcc)<<0x18-_0x546a2a[_0x3142('0x6f','qQ0s')+'R'](_0x2a5bcc&0x3,0x8);}_0x4ec702[_0x546a2a[_0x3142('0x8b','w4Ws')+'v'](_0x2a5bcc,0x2)]|=0x80<<0x18-_0x546a2a[_0x3142('0x2c','SNL3')+'R'](_0x546a2a[_0x3142('0xa3','@u2q')+'N'](_0x2a5bcc,0x3),0x8);_0x4ec702[_0x546a2a[_0x3142('0x6c','SRy%')+'l'](_0x2a45c6*0x10,0x1)]=_0x38921b[_0x3142('0x8d','2#H9')+'th']*0x8;return _0x4ec702;}function _0x27157a(_0x494fea,_0x4b6a65){return _0x546a2a[_0x3142('0x80','qQ0s')+'p'](_0x494fea,_0x4b6a65)|_0x494fea>>>0x20-_0x4b6a65;}function _0x1e855e(_0x36db38,_0x58013f,_0xe58463,_0x1a1bba){if(_0x546a2a[_0x3142('0x61','Yzuv')+'L'](_0x36db38,0x14))return _0x546a2a[_0x3142('0x72','6gFE')+'N'](_0x58013f,_0xe58463)|_0x546a2a[_0x3142('0x79','ymrI')+'N'](~_0x58013f,_0x1a1bba);if(_0x36db38<0x28)return _0x546a2a[_0x3142('0x24','V1Bk')+'Z'](_0x58013f,_0xe58463)^_0x1a1bba;if(_0x546a2a[_0x3142('0x47','6gFE')+'L'](_0x36db38,0x3c))return _0x546a2a[_0x3142('0x37','mM9@')+'Z'](_0x58013f&_0xe58463|_0x58013f&_0x1a1bba,_0x546a2a[_0x3142('0x86','SRy%')+'D'](_0xe58463,_0x1a1bba));return _0x546a2a[_0x3142('0x23','rl#y')+'S'](_0x546a2a[_0x3142('0x1e','!ucn')+'S'](_0x58013f,_0xe58463),_0x1a1bba);}function _0x465cdf(_0x25d947){if(_0x546a2a[_0x3142('0x83','H6Ob')+'W'](_0x3142('0x57','qQ0s')+'G',_0x546a2a[_0x3142('0x32','6gFE')+'L'])){_0x568ed7[_0x7fd499]=_0x50d0cc[_0x3efa1e+_0x7fd499];}else{return _0x546a2a[_0x3142('0x93','Yzuv')+'j'](_0x25d947,0x14)?0x5a827999:_0x546a2a[_0x3142('0x95','US2A')+'j'](_0x25d947,0x28)?0x6ed9eba1:_0x25d947<0x3c?-0x70e44324:-0x359d3e2a;}}var _0x50d0cc=_0x124d3e(_0x552a82);var _0x568ed7=new Array(0x50);var _0x1ec245=0x67452301;var _0x1c76a0=-0x10325477;var _0x18f848=-0x67452302;var _0x34dd3f=0x10325476;var _0x47a926=-0x3c2d1e10;for(var _0x3efa1e=0x0;_0x546a2a[_0x3142('0x12','V4cT')+'j'](_0x3efa1e,_0x50d0cc[_0x3142('0x7f','V1Bk')+'th']);_0x3efa1e+=0x10){var _0xb6c985=_0x1ec245;var _0x485115=_0x1c76a0;var _0x30ea5d=_0x18f848;var _0x3cca7d=_0x34dd3f;var _0x24e6ee=_0x47a926;for(var _0x7fd499=0x0;_0x7fd499<0x50;_0x7fd499++){if(_0x7fd499<0x10){_0x568ed7[_0x7fd499]=_0x50d0cc[_0x546a2a[_0x3142('0x2','!ucn')+'c'](_0x3efa1e,_0x7fd499)];}else{_0x568ed7[_0x7fd499]=_0x546a2a[_0x3142('0x7a','[vn6')+'y'](_0x27157a,_0x546a2a[_0x3142('0x94','tQ[%')+'S'](_0x546a2a[_0x3142('0x48','1W%f')+'W'](_0x546a2a[_0x3142('0x25','qQ0s')+'W'](_0x568ed7[_0x7fd499-0x3],_0x568ed7[_0x7fd499-0x8]),_0x568ed7[_0x546a2a[_0x3142('0x4d','T^Cn')+'T'](_0x7fd499,0xe)]),_0x568ed7[_0x546a2a[_0x3142('0x77','h]u%')+'T'](_0x7fd499,0x10)]),0x1);}t=_0x9178f0(_0x546a2a[_0x3142('0x58','w4Ws')+'t'](_0x9178f0,_0x546a2a[_0x3142('0x5b',')n1I')+'s'](_0x27157a,_0x1ec245,0x5),_0x546a2a[_0x3142('0x40','h^$h')+'B'](_0x1e855e,_0x7fd499,_0x1c76a0,_0x18f848,_0x34dd3f)),_0x9178f0(_0x9178f0(_0x47a926,_0x568ed7[_0x7fd499]),_0x465cdf(_0x7fd499)));_0x47a926=_0x34dd3f;_0x34dd3f=_0x18f848;_0x18f848=_0x546a2a[_0x3142('0x63','V1Bk')+'O'](_0x27157a,_0x1c76a0,0x1e);_0x1c76a0=_0x1ec245;_0x1ec245=t;}_0x1ec245=_0x546a2a[_0x3142('0x89','bUJT')+'s'](_0x9178f0,_0x1ec245,_0xb6c985);_0x1c76a0=_0x546a2a[_0x3142('0x9c','Yzuv')+'u'](_0x9178f0,_0x1c76a0,_0x485115);_0x18f848=_0x546a2a[_0x3142('0x51','h^$h')+'z'](_0x9178f0,_0x18f848,_0x30ea5d);_0x34dd3f=_0x9178f0(_0x34dd3f,_0x3cca7d);_0x47a926=_0x546a2a[_0x3142('0x82',')n1I')+'l'](_0x9178f0,_0x47a926,_0x24e6ee);}return _0x546a2a[_0x3142('0x36','jY@t')+'c'](_0x546a2a[_0x3142('0x22','6gFE')+'L'](_0x245dd7(_0x1ec245),_0x546a2a[_0x3142('0x6e','PMP)')+'m'](_0x245dd7,_0x1c76a0))+_0x245dd7(_0x18f848)+_0x546a2a[_0x3142('0xd','1W%f')+'I'](_0x245dd7,_0x34dd3f),_0x546a2a[_0x3142('0x8f','SHhH')+'I'](_0x245dd7,_0x47a926));}function go(_0x21ad44){var _0x310e52={};_0x310e52[_0x3142('0x97','qQ0s')+'G']=function(_0x3ed186,_0x3d2cf7){return _0x3ed186<_0x3d2cf7;};_0x310e52[_0x3142('0x9a','2#H9')+'V']=function(_0x2ea12f,_0x53ef0a){return _0x2ea12f+_0x53ef0a;};_0x310e52[_0x3142('0x20','tQ[%')+'b']=function(_0x50d0e7,_0x31f340){return _0x50d0e7-_0x31f340;};_0x310e52[_0x3142('0x52','SHhH')+'a']=function(_0x5479fd,_0x1c185a){return _0x5479fd+_0x1c185a;};_0x310e52[_0x3142('0x19','H$db')+'F']=_0x3142('0x8','H$db')+_0x3142('0x92','V1Bk')+'=';_0x310e52[_0x3142('0x27','RVW5')+'W']=function(_0x4af987){return _0x4af987();};_0x310e52[_0x3142('0x5c','V4cT')+'u']=function(_0xe709d1,_0x26b852,_0x2100d7){return _0xe709d1(_0x26b852,_0x2100d7);};_0x310e52[_0x3142('0x59','&y]5')+'B']=_0x3142('0x1b','%dfz')+'失败';var _0x5cac0f=_0x310e52;function _0x21535b(){var _0x2ff712=window[_0x3142('0x17','SRy%')+_0x3142('0x5f','peD!')+'r'][_0x3142('0x54','YL5s')+_0x3142('0x45','(DsA')+'t'],_0x4e1409=[_0x3142('0x7e',')n1I')+_0x3142('0x76','h^$h')];for(var _0x5dfef2=0x0;_0x5cac0f[_0x3142('0x41','h]u%')+'G'](_0x5dfef2,_0x4e1409[_0x3142('0x3d','w[j!')+'th']);_0x5dfef2++){if(_0x2ff712[_0x3142('0x9f','!8)K')+_0x3142('0x43','PMP)')](_0x4e1409[_0x5dfef2])!=-0x1){return!![];}}if(window[_0x3142('0x9d','!ucn')+_0x3142('0x18','T7sn')+_0x3142('0x4f','!ucn')]||window[_0x3142('0xa0','PMP)')+_0x3142('0x30','(DsA')]||window[_0x3142('0x56','H$db')+_0x3142('0x1f','!8)K')]||window[_0x3142('0x0','SNL3')+_0x3142('0x60','hcU@')+'r'][_0x3142('0x7c','peD!')+_0x3142('0x1c','(DsA')+'r']||window[_0x3142('0x5','bUJT')+_0x3142('0x44','Uyet')+'r'][_0x3142('0x2a','!ucn')+_0x3142('0x42','UXs3')+_0x3142('0x13','0&!@')+_0x3142('0x87','!ucn')+'e']||window[_0x3142('0x4e','qQ0s')+_0x3142('0x33','rl#y')+'r'][_0x3142('0x1d','buFt')+_0x3142('0xa4','C!sW')+_0x3142('0x2d','H$db')+_0x3142('0x98','H6Ob')+_0x3142('0x34','De0w')]){return!![];}};if(_0x5cac0f[_0x3142('0x78','SHhH')+'W'](_0x21535b)){return;}var _0x4f237e=new Date();function _0x16e649(_0x421cc5,_0xa847d3){var _0x13c8e0=_0x21ad44[_0x3142('0x2b','UXs3')+'s'][_0x3142('0x1a','mM9@')+'th'];for(var _0x382d6d=0x0;_0x382d6d<_0x13c8e0;_0x382d6d++){for(var _0x510e07=0x0;_0x5cac0f[_0x3142('0x4c','@u2q')+'G'](_0x510e07,_0x13c8e0);_0x510e07++){var _0xfa00da=_0x5cac0f[_0x3142('0x3e','UXs3')+'V'](_0x5cac0f[_0x3142('0x90','jY@t')+'V'](_0xa847d3[0x0]+_0x21ad44[_0x3142('0xe','US2A')+'s'][_0x3142('0xc','w[j!')+'tr'](_0x382d6d,0x1),_0x21ad44[_0x3142('0x75','V1Bk')+'s'][_0x3142('0x6b','%dfz')+'tr'](_0x510e07,0x1)),_0xa847d3[0x1]);if(hash(_0xfa00da)==_0x421cc5){return[_0xfa00da,_0x5cac0f[_0x3142('0x6a','peD!')+'b'](new Date(),_0x4f237e)];}}}};var _0x48ef22=_0x5cac0f[_0x3142('0x69','hcU@')+'u'](_0x16e649,_0x21ad44['ct'],_0x21ad44[_0x3142('0x11','H$db')]);if(_0x48ef22){var _0x1c4183;if(_0x21ad44['wt']){_0x1c4183=parseInt(_0x21ad44['wt'])>_0x48ef22[0x1]?parseInt(_0x21ad44['wt'])-_0x48ef22[0x1]:0x1f4;}else{_0x1c4183=0x5dc;}setTimeout(function(){document[_0x3142('0x26','RVW5')+'ie']=_0x5cac0f[_0x3142('0x4','w[j!')+'a'](_0x21ad44['tn'],'=')+_0x48ef22[0x0]+_0x5cac0f[_0x3142('0x4a','SRy%')+'F']+_0x21ad44['vt']+(_0x3142('0x3f','rl#y')+_0x3142('0x15','Yzuv')+'\x20/');location[_0x3142('0xf','YL5s')]=location[_0x3142('0x2f','T7sn')+_0x3142('0x96','UXs3')]+location[_0x3142('0x8c','h]u%')+'ch'];},_0x1c4183);}else{alert(_0x5cac0f[_0x3142('0x35','H6Ob')+'B']);}};go({"bts":["1640078441.015|0|jdf","DzgF6cGJcfTYQMB7d2IV24%3D"],"chars":"QpRCFtGwkYApwtQMwoB4hG","ct":"3897594edc5ae48b2c1a9f9408c53eb045e7707a","ha":"sha1","tn":"__jsl_clearance_s","vt":"3600","wt":"1500"})</script>
解析后
function hash(_0x552a82) {
function _0x9178f0(_0x2ea035, _0x21505c) {
return (_0x2ea035 & 2147483647) + (_0x21505c & 2147483647) ^ _0x2ea035 & 2147483648 ^ _0x21505c & 2147483648;
}
function _0x245dd7(_0x2f8cb1) {
var _0x3790d4 = "0123456789abcdef";
var _0x1c94dc = "";
for (var _0x17288d = 7; _0x17288d >= 0; _0x17288d--) {
_0x1c94dc += _0x3790d4["charAt"](_0x2f8cb1 >> _0x17288d * 4 & 15);
}
return _0x1c94dc;
}
function _0x124d3e(_0x38921b) {
var _0x2a45c6 = (_0x38921b["length"] + 8 >> 6) + 1,
_0x4ec702 = new Array(_0x2a45c6 * 16);
for (var _0x2a5bcc = 0; _0x2a5bcc < _0x2a45c6 * 16; _0x2a5bcc++) {
_0x4ec702[_0x2a5bcc] = 0;
}
for (_0x2a5bcc = 0; _0x2a5bcc < _0x38921b["length"]; _0x2a5bcc++) {
_0x4ec702[_0x2a5bcc >> 2] |= _0x38921b["charCodeAt"](_0x2a5bcc) << 24 - (_0x2a5bcc & 3) * 8;
}
_0x4ec702[_0x2a5bcc >> 2] |= 128 << 24 - (_0x2a5bcc & 3) * 8;
_0x4ec702[_0x2a45c6 * 16 - 1] = _0x38921b["length"] * 8;
return _0x4ec702;
}
function _0x27157a(_0x494fea, _0x4b6a65) {
return _0x494fea << _0x4b6a65 | _0x494fea >>> 32 - _0x4b6a65;
}
function _0x1e855e(_0x36db38, _0x58013f, _0xe58463, _0x1a1bba) {
if (_0x36db38 < 20) {
return _0x58013f & _0xe58463 | ~_0x58013f & _0x1a1bba;
}
if (_0x36db38 < 40) {
return _0x58013f ^ _0xe58463 ^ _0x1a1bba;
}
if (_0x36db38 < 60) {
return _0x58013f & _0xe58463 | _0x58013f & _0x1a1bba | _0xe58463 & _0x1a1bba;
}
return _0x58013f ^ _0xe58463 ^ _0x1a1bba;
}
function _0x465cdf(_0x25d947) {
return _0x25d947 < 20 ? 1518500249 : _0x25d947 < 40 ? 1859775393 : _0x25d947 < 60 ? -1894007588 : -899497514;
}
var _0x50d0cc = _0x124d3e(_0x552a82);
var _0x568ed7 = new Array(80);
var _0x1ec245 = 1732584193;
var _0x1c76a0 = -271733879;
var _0x18f848 = -1732584194;
var _0x34dd3f = 271733878;
var _0x47a926 = -1009589776;
for (var _0x3efa1e = 0; _0x3efa1e < _0x50d0cc["length"]; _0x3efa1e += 16) {
var _0xb6c985 = _0x1ec245;
var _0x485115 = _0x1c76a0;
var _0x30ea5d = _0x18f848;
var _0x3cca7d = _0x34dd3f;
var _0x24e6ee = _0x47a926;
for (var _0x7fd499 = 0; _0x7fd499 < 80; _0x7fd499++) {
if (_0x7fd499 < 16) {
_0x568ed7[_0x7fd499] = _0x50d0cc[_0x3efa1e + _0x7fd499];
} else {
_0x568ed7[_0x7fd499] = _0x27157a(_0x568ed7[_0x7fd499 - 3] ^ _0x568ed7[_0x7fd499 - 8] ^ _0x568ed7[_0x7fd499 - 14] ^ _0x568ed7[_0x7fd499 - 16], 1);
}
t = _0x9178f0(_0x9178f0(_0x27157a(_0x1ec245, 5), _0x1e855e(_0x7fd499, _0x1c76a0, _0x18f848, _0x34dd3f)), _0x9178f0(_0x9178f0(_0x47a926, _0x568ed7[_0x7fd499]), _0x465cdf(_0x7fd499)));
_0x47a926 = _0x34dd3f;
_0x34dd3f = _0x18f848;
_0x18f848 = _0x27157a(_0x1c76a0, 30);
_0x1c76a0 = _0x1ec245;
_0x1ec245 = t;
}
_0x1ec245 = _0x9178f0(_0x1ec245, _0xb6c985);
_0x1c76a0 = _0x9178f0(_0x1c76a0, _0x485115);
_0x18f848 = _0x9178f0(_0x18f848, _0x30ea5d);
_0x34dd3f = _0x9178f0(_0x34dd3f, _0x3cca7d);
_0x47a926 = _0x9178f0(_0x47a926, _0x24e6ee);
}
return _0x245dd7(_0x1ec245) + _0x245dd7(_0x1c76a0) + _0x245dd7(_0x18f848) + _0x245dd7(_0x34dd3f) + _0x245dd7(_0x47a926);
}
function go(_0x21ad44) {
function _0x21535b() {
var _0x2ff712 = window["navigator"]["userAgent"],
_0x4e1409 = ["Phantom"];
for (var _0x5dfef2 = 0; _0x5dfef2 < _0x4e1409["length"]; _0x5dfef2++) {
if (_0x2ff712["indexOf"](_0x4e1409[_0x5dfef2]) != -1) {
return true;
}
}
if (window["callPhantom"] || window["_phantom"] || window["Headless"] || window["navigator"]["webdriver"] || window["navigator"]["__driver_evaluate"] || window["navigator"]["__webdriver_evaluate"]) {
return true;
}
}
if (_0x21535b()) {
return;
}
var _0x4f237e = new Date();
function _0x16e649(_0x421cc5, _0xa847d3) {
var _0x13c8e0 = _0x21ad44["chars"]["length"];
for (var _0x382d6d = 0; _0x382d6d < _0x13c8e0; _0x382d6d++) {
for (var _0x510e07 = 0; _0x510e07 < _0x13c8e0; _0x510e07++) {
var _0xfa00da = _0xa847d3[0] + _0x21ad44["chars"]["substr"](_0x382d6d, 1) + _0x21ad44["chars"]["substr"](_0x510e07, 1) + _0xa847d3[1];
if (hash(_0xfa00da) == _0x421cc5) {
return [_0xfa00da, new Date() - _0x4f237e];
}
}
}
}
var _0x48ef22 = _0x16e649(_0x21ad44["ct"], _0x21ad44["bts"]);
if (_0x48ef22) {
var _0x1c4183;
if (_0x21ad44["wt"]) {
_0x1c4183 = parseInt(_0x21ad44["wt"]) > _0x48ef22[1] ? parseInt(_0x21ad44["wt"]) - _0x48ef22[1] : 500;
} else {
_0x1c4183 = 1500;
}
setTimeout(function () {
document["cookie"] = _0x21ad44["tn"] + "=" + _0x48ef22[0] + ";Max-age=" + _0x21ad44["vt"] + "; path = /";
location["href"] = location["pathname"] + location["search"];
}, _0x1c4183);
} else {
alert("\u8BF7\u6C42\u9A8C\u8BC1\u5931\u8D25");
}
}
go({
"bts": ["1640078441.015|0|jdf", "DzgF6cGJcfTYQMB7d2IV24%3D"],
"chars": "QpRCFtGwkYApwtQMwoB4hG",
"ct": "3897594edc5ae48b2c1a9f9408c53eb045e7707a",
"ha": "sha1",
"tn": "__jsl_clearance_s",
"vt": "3600",
"wt": "1500"
});

image.png
这段JS产生新cookie(__jsl_clearance_s)
参考各种文档后修改JS,终于可以运行,JS代码如下
请注意注释的部分
// var window = this;
//
// window.navigator = {};
// navigator = {
// // WT-JS_DEBUG
// appCodeName: "Mozilla",
// appMinorVersion: "0",
// appName: "Netscape",
// appVersion: "5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; InfoPath.3; rv:11.0) like Gecko",
// browserLanguage: "zh-CN",
// cookieEnabled: true,
// cpuClass: "x86",
// language: "zh-CN",
// maxTouchPoints: 0,
// msManipulationViewsEnabled: true,
// msMaxTouchPoints: 0,
// msPointerEnabled: true,
// onLine: true,
// platform: "Win32",
// pointerEnabled: true,
// product: "Gecko",
// systemLanguage: "zh-CN",
// userAgent: "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; InfoPath.3; rv:11.0) like Gecko",
// userLanguage: "zh-CN",
// vendor: "",
// vendorSub: "",
// webdriver: false
// }, window = this, window.navigator = navigator;
function hash(_0x552a82) {
function _0x9178f0(_0x2ea035, _0x21505c) {
return (_0x2ea035 & 2147483647) + (_0x21505c & 2147483647) ^ _0x2ea035 & 2147483648 ^ _0x21505c & 2147483648;
}
function _0x245dd7(_0x2f8cb1) {
var _0x3790d4 = "0123456789abcdef";
var _0x1c94dc = "";
for (var _0x17288d = 7; _0x17288d >= 0; _0x17288d--) {
_0x1c94dc += _0x3790d4["charAt"](_0x2f8cb1 >> _0x17288d * 4 & 15);
}
return _0x1c94dc;
}
function _0x124d3e(_0x38921b) {
var _0x2a45c6 = (_0x38921b["length"] + 8 >> 6) + 1,
_0x4ec702 = new Array(_0x2a45c6 * 16);
for (var _0x2a5bcc = 0; _0x2a5bcc < _0x2a45c6 * 16; _0x2a5bcc++) {
_0x4ec702[_0x2a5bcc] = 0;
}
for (_0x2a5bcc = 0; _0x2a5bcc < _0x38921b["length"]; _0x2a5bcc++) {
_0x4ec702[_0x2a5bcc >> 2] |= _0x38921b["charCodeAt"](_0x2a5bcc) << 24 - (_0x2a5bcc & 3) * 8;
}
_0x4ec702[_0x2a5bcc >> 2] |= 128 << 24 - (_0x2a5bcc & 3) * 8;
_0x4ec702[_0x2a45c6 * 16 - 1] = _0x38921b["length"] * 8;
return _0x4ec702;
}
function _0x27157a(_0x494fea, _0x4b6a65) {
return _0x494fea << _0x4b6a65 | _0x494fea >>> 32 - _0x4b6a65;
}
function _0x1e855e(_0x36db38, _0x58013f, _0xe58463, _0x1a1bba) {
if (_0x36db38 < 20) {
return _0x58013f & _0xe58463 | ~_0x58013f & _0x1a1bba;
}
if (_0x36db38 < 40) {
return _0x58013f ^ _0xe58463 ^ _0x1a1bba;
}
if (_0x36db38 < 60) {
return _0x58013f & _0xe58463 | _0x58013f & _0x1a1bba | _0xe58463 & _0x1a1bba;
}
return _0x58013f ^ _0xe58463 ^ _0x1a1bba;
}
function _0x465cdf(_0x25d947) {
return _0x25d947 < 20 ? 1518500249 : _0x25d947 < 40 ? 1859775393 : _0x25d947 < 60 ? -1894007588 : -899497514;
}
var _0x50d0cc = _0x124d3e(_0x552a82);
var _0x568ed7 = new Array(80);
var _0x1ec245 = 1732584193;
var _0x1c76a0 = -271733879;
var _0x18f848 = -1732584194;
var _0x34dd3f = 271733878;
var _0x47a926 = -1009589776;
for (var _0x3efa1e = 0; _0x3efa1e < _0x50d0cc["length"]; _0x3efa1e += 16) {
var _0xb6c985 = _0x1ec245;
var _0x485115 = _0x1c76a0;
var _0x30ea5d = _0x18f848;
var _0x3cca7d = _0x34dd3f;
var _0x24e6ee = _0x47a926;
for (var _0x7fd499 = 0; _0x7fd499 < 80; _0x7fd499++) {
if (_0x7fd499 < 16) {
_0x568ed7[_0x7fd499] = _0x50d0cc[_0x3efa1e + _0x7fd499];
} else {
_0x568ed7[_0x7fd499] = _0x27157a(_0x568ed7[_0x7fd499 - 3] ^ _0x568ed7[_0x7fd499 - 8] ^ _0x568ed7[_0x7fd499 - 14] ^ _0x568ed7[_0x7fd499 - 16], 1);
}
t = _0x9178f0(_0x9178f0(_0x27157a(_0x1ec245, 5), _0x1e855e(_0x7fd499, _0x1c76a0, _0x18f848, _0x34dd3f)), _0x9178f0(_0x9178f0(_0x47a926, _0x568ed7[_0x7fd499]), _0x465cdf(_0x7fd499)));
_0x47a926 = _0x34dd3f;
_0x34dd3f = _0x18f848;
_0x18f848 = _0x27157a(_0x1c76a0, 30);
_0x1c76a0 = _0x1ec245;
_0x1ec245 = t;
}
_0x1ec245 = _0x9178f0(_0x1ec245, _0xb6c985);
_0x1c76a0 = _0x9178f0(_0x1c76a0, _0x485115);
_0x18f848 = _0x9178f0(_0x18f848, _0x30ea5d);
_0x34dd3f = _0x9178f0(_0x34dd3f, _0x3cca7d);
_0x47a926 = _0x9178f0(_0x47a926, _0x24e6ee);
}
return _0x245dd7(_0x1ec245) + _0x245dd7(_0x1c76a0) + _0x245dd7(_0x18f848) + _0x245dd7(_0x34dd3f) + _0x245dd7(_0x47a926);
}
function go(_0x21ad44) {
// function _0x21535b() {
// var _0x2ff712 = window["navigator"]["userAgent"],
// _0x4e1409 = ["Phantom"];
//
// for (var _0x5dfef2 = 0; _0x5dfef2 < _0x4e1409["length"]; _0x5dfef2++) {
// if (_0x2ff712["indexOf"](_0x4e1409[_0x5dfef2]) != -1) {
// return true;
// }
// }
//
// if (window["callPhantom"] || window["_phantom"] || window["Headless"] || window["navigator"]["webdriver"] || window["navigator"]["__driver_evaluate"] || window["navigator"]["__webdriver_evaluate"]) {
// return true;
// }
// }
//
// if (_0x21535b()) {
// return;
// }
var _0x4f237e = new Date();
function _0x16e649(_0x421cc5, _0xa847d3) {
var _0x13c8e0 = _0x21ad44["chars"]["length"];
for (var _0x382d6d = 0; _0x382d6d < _0x13c8e0; _0x382d6d++) {
for (var _0x510e07 = 0; _0x510e07 < _0x13c8e0; _0x510e07++) {
var _0xfa00da = _0xa847d3[0] + _0x21ad44["chars"]["substr"](_0x382d6d, 1) + _0x21ad44["chars"]["substr"](_0x510e07, 1) + _0xa847d3[1];
if (hash(_0xfa00da) == _0x421cc5) {
return [_0xfa00da, new Date() - _0x4f237e];
}
}
}
}
var _0x48ef22 = _0x16e649(_0x21ad44["ct"], _0x21ad44["bts"]);
if (_0x48ef22) {
var _0x1c4183;
if (_0x21ad44["wt"]) {
_0x1c4183 = parseInt(_0x21ad44["wt"]) > _0x48ef22[1] ? parseInt(_0x21ad44["wt"]) - _0x48ef22[1] : 500;
} else {
_0x1c4183 = 1500;
}
// setTimeout(function () {
// document["cookie"] = _0x21ad44["tn"] + "=" + _0x48ef22[0] + ";Max-age=" + _0x21ad44["vt"] + "; path = /";
// location["href"] = location["pathname"] + location["search"];
// }, _0x1c4183);
return _0x21ad44["tn"] + "=" + _0x48ef22[0] + ";Max-age=" + _0x21ad44["vt"] + "; path = /"
// return document["cookie"]
} else {
alert("\u8BF7\u6C42\u9A8C\u8BC1\u5931\u8D25");
}
}
// go({
// "bts": ["1640078441.015|0|jdf", "DzgF6cGJcfTYQMB7d2IV24%3D"],
// "chars": "QpRCFtGwkYApwtQMwoB4hG",
// "ct": "3897594edc5ae48b2c1a9f9408c53eb045e7707a",
// "ha": "sha1",
// "tn": "__jsl_clearance_s",
// "vt": "3600",
// "wt": "1500"
// });
执行JS
import execjs
sha1_sha256_md5 = {}
parameter = {
"bts": ["1640078441.015|0|jdf", "DzgF6cGJcfTYQMB7d2IV24%3D"],
"chars": "QpRCFtGwkYApwtQMwoB4hG",
"ct": "3897594edc5ae48b2c1a9f9408c53eb045e7707a",
"ha": "sha1",
"tn": "__jsl_clearance_s",
"vt": "3600",
"wt": "1500"
}
print(parameter)
js_file = "cookie.js"
print(js_file)
with open(js_file, "r", encoding="utf-8") as f:
js = f.read()
cmp = execjs.compile(js)
end_js = cmp.call("go", parameter).split(";")[0].split("=")[1]
print(end_js)
结果
1640078441.015|0|jdfF4DzgF6cGJcfTYQMB7d2IV24%3D
知道创宇的检测
-
浏览器直接打开
521 攻击检测.png -
postman 模拟
image.png
结论
- 浏览器访问不是每次都会触发
- 浏览器检测完成后显示正常页面
- postman模拟requests不是每次都会触发
- 使用selenium每次都会触发此检测
selenium每次都会触发此检测
原因
JS代码可以看出对selenium做了检测
function _0x21535b() {
var _0x2ff712 = window["navigator"]["userAgent"],
_0x4e1409 = ["Phantom"];
for (var _0x5dfef2 = 0; _0x5dfef2 < _0x4e1409["length"]; _0x5dfef2++) {
if (_0x2ff712["indexOf"](_0x4e1409[_0x5dfef2]) != -1) {
return true;
}
}
if (window["callPhantom"] || window["_phantom"] || window["Headless"] || window["navigator"]["webdriver"] || window["navigator"]["__driver_evaluate"] || window["navigator"]["__webdriver_evaluate"]) {
return true;
}
}
selenium怎么样才可以正常访问呢
import json
import time
import requests
from selenium import webdriver
url = 'https://www.yidaiyilu.gov.cn/xwzx/gnxw/87373.htm'
options = webdriver.ChromeOptions()
options.add_experimental_option("excludeSwitches", ["ignore-certificate-errors", "enable-automation"])
# options.add_argument("--headless") # => 为Chrome配置无头模式
driver = webdriver.Chrome(options=options)
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
"source": """
Object.defineProperty(navigator, 'webdriver', {
get: () => undefined
})
"""
})
driver.get(url)
driver.refresh()
time.sleep(2)
driver.refresh()
print(driver.get_cookies())
# print(driver.page_source)
# cookie = requests.utils.dict_from_cookiejar(driver.get_cookies())
# cookies_list = list(json.dumps(driver.get_cookies()))
cookies = {}
for cookie in driver.get_cookies():
name = cookie['name']
value = cookie['value']
cookies[name] = value
# cookies = json.dumps(cookies)
# print(cookies)
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36',
# 'Cookie': cookies
}
response = requests.get(url=url, headers=headers, cookies=cookies)
cookies = requests.utils.dict_from_cookiejar(response.cookies)
print(response.status_code)
print(response.cookies.items())
print(cookies)
# response 中文乱码问题
response.encoding = response.apparent_encoding
print(response.text)
driver.quit()
这样就可以了
知道创宇云防御

image.png

image.png
深度反爬虫
第三次请求

image.png
第二次请求返回的 js 的主体逻辑就是go函数,它主要完成的就是将__jsl_clearance_s分成两个部分,分别和传入 go 方法中传入的字符串进行拼接,然后根据ha中传入的参数进行 hash,将 hash 的结果进行比对,比对正确返回 cookie
注意:这里的 hash 有几种算法,md5、sha1、sha256
接下来执行JS模拟请求
import re
import execjs
import requests
import json
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
'(KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36',
}
url = 'https://www.cnvd.org.cn/shareData/download/718'
requests_session = requests.session()
# 第一个请求,response为第二个请求的__jsl_clearance_s
response1 = requests_session.get(url=url, headers=headers)
js1_search = re.compile(r"cookie=(.*?);location.href=")
js1_result = js1_search.search(response1.text).group(1)
__jsl_clearance_s = execjs.eval(js1_result).split(";")[0].split("=")[1]
# __jsl_clearance_s = execjs.eval(js_response1).split(";")[0].split("=")[1]
requests_session.cookies.set("__jsl_clearance_s", __jsl_clearance_s)
# 第二次请求
response2 = requests_session.get(url=url, headers=headers)
print(response2.request.headers)
sha1_sha256_md5 = json.loads(re.findall(r'};go\((.*?)\)</script>', response2.text)[0])
# 判断cookie生成方式
js_file = ""
if sha1_sha256_md5['ha'] == 'sha1':
js_file = 'sha1.js'
elif sha1_sha256_md5['ha'] == 'sha256':
js_file = 'sha256.js'
elif sha1_sha256_md5['ha'] == 'md5':
js_file = 'md5.js'
parameter = {
"bts": sha1_sha256_md5['bts'],
"chars": sha1_sha256_md5['chars'],
"ct": sha1_sha256_md5['ct'],
"ha": sha1_sha256_md5['ha'],
"tn": sha1_sha256_md5['tn'],
"vt": sha1_sha256_md5['vt'],
"wt": sha1_sha256_md5['wt']
}
print(parameter)
print(js_file)
with open(js_file, "r", encoding="utf-8") as f:
js = f.read()
cmp = execjs.compile(js)
end_js = cmp.call("go", parameter).split(";")[0].split("=")[1]
requests_session.cookies.set("__jsl_clearance_s", end_js)
response3 = requests_session.get(url=url, headers=headers)
with open("test.xml", "w", encoding="utf-8") as f:
f.write(response3.text)
js文件:
md5.js
function hash(_0x5f258a) {
function _0x225fec(_0x4917f2, _0x5e2fa6) {
return _0x4917f2 << _0x5e2fa6 | _0x4917f2 >>> 32 - _0x5e2fa6;
}
function _0x2baa30(_0x332e74, _0x29a20f) {
var _0x3b814a, _0x21e30c, _0x5af5ac, _0x21bf24, _0x5abb79;
_0x5af5ac = _0x332e74 & 2147483648;
_0x21bf24 = _0x29a20f & 2147483648;
_0x3b814a = _0x332e74 & 1073741824;
_0x21e30c = _0x29a20f & 1073741824;
_0x5abb79 = (_0x332e74 & 1073741823) + (_0x29a20f & 1073741823);
if (_0x3b814a & _0x21e30c) {
return _0x5abb79 ^ 2147483648 ^ _0x5af5ac ^ _0x21bf24;
}
if (_0x3b814a | _0x21e30c) {
if (_0x5abb79 & 1073741824) {
return _0x5abb79 ^ 3221225472 ^ _0x5af5ac ^ _0x21bf24;
} else {
return _0x5abb79 ^ 1073741824 ^ _0x5af5ac ^ _0x21bf24;
}
} else {
return _0x5abb79 ^ _0x5af5ac ^ _0x21bf24;
}
}
function _0xff7881(_0x4cd247, _0x261a5c, _0x426e7a) {
return _0x4cd247 & _0x261a5c | ~_0x4cd247 & _0x426e7a;
}
function _0x225312(_0x3a9a62, _0x12f97b, _0x181369) {
return _0x3a9a62 & _0x181369 | _0x12f97b & ~_0x181369;
}
function _0x9459b4(_0x14161c, _0x5d9462, _0x3a2786) {
return _0x14161c ^ _0x5d9462 ^ _0x3a2786;
}
function _0x45c549(_0x410fb5, _0x96c868, _0x16c9ce) {
return _0x96c868 ^ (_0x410fb5 | ~_0x16c9ce);
}
function _0x4b61b3(_0xe7a05e, _0x40f27e, _0x11e1be, _0x24ce0d, _0x1e3769, _0x43f825, _0x2deeff) {
_0xe7a05e = _0x2baa30(_0xe7a05e, _0x2baa30(_0x2baa30(_0xff7881(_0x40f27e, _0x11e1be, _0x24ce0d), _0x1e3769), _0x2deeff));
return _0x2baa30(_0x225fec(_0xe7a05e, _0x43f825), _0x40f27e);
}
function _0xa6ab6e(_0x2fe41b, _0x2d5422, _0x468bc0, _0x484ab4, _0x28dfdd, _0xbab5af, _0xb02213) {
_0x2fe41b = _0x2baa30(_0x2fe41b, _0x2baa30(_0x2baa30(_0x225312(_0x2d5422, _0x468bc0, _0x484ab4), _0x28dfdd), _0xb02213));
return _0x2baa30(_0x225fec(_0x2fe41b, _0xbab5af), _0x2d5422);
}
function _0x4e2180(_0x3671ce, _0xa39a91, _0x5d73c0, _0x4bfd56, _0x156613, _0x14099e, _0x2968cb) {
_0x3671ce = _0x2baa30(_0x3671ce, _0x2baa30(_0x2baa30(_0x9459b4(_0xa39a91, _0x5d73c0, _0x4bfd56), _0x156613), _0x2968cb));
return _0x2baa30(_0x225fec(_0x3671ce, _0x14099e), _0xa39a91);
}
function _0x49a149(_0x34f48e, _0x38b367, _0x2adbc7, _0x3c2c63, _0x31d20d, _0x2c9a14, _0x569fda) {
_0x34f48e = _0x2baa30(_0x34f48e, _0x2baa30(_0x2baa30(_0x45c549(_0x38b367, _0x2adbc7, _0x3c2c63), _0x31d20d), _0x569fda));
return _0x2baa30(_0x225fec(_0x34f48e, _0x2c9a14), _0x38b367);
}
function _0x2f28fe(_0x721914) {
var _0x1c6a13;
var _0x2f0796 = _0x721914["length"];
var _0x24ff98 = _0x2f0796 + 8;
var _0x1641e9 = (_0x24ff98 - _0x24ff98 % 64) / 64;
var _0x4e3205 = (_0x1641e9 + 1) * 16;
var _0x217115 = Array(_0x4e3205 - 1);
var _0x3e4d08 = 0;
var _0x132d5e = 0;
while (_0x132d5e < _0x2f0796) {
_0x1c6a13 = (_0x132d5e - _0x132d5e % 4) / 4;
_0x3e4d08 = _0x132d5e % 4 * 8;
_0x217115[_0x1c6a13] = _0x217115[_0x1c6a13] | _0x721914["charCodeAt"](_0x132d5e) << _0x3e4d08;
_0x132d5e++;
}
_0x1c6a13 = (_0x132d5e - _0x132d5e % 4) / 4;
_0x3e4d08 = _0x132d5e % 4 * 8;
_0x217115[_0x1c6a13] = _0x217115[_0x1c6a13] | 128 << _0x3e4d08;
_0x217115[_0x4e3205 - 2] = _0x2f0796 << 3;
_0x217115[_0x4e3205 - 1] = _0x2f0796 >>> 29;
return _0x217115;
}
function _0x40ca01(_0x524440) {
var _0x5a20b8 = "",
_0x8af065 = "",
_0x1095b5,
_0x4083f0;
for (_0x4083f0 = 0; _0x4083f0 <= 3; _0x4083f0++) {
_0x1095b5 = _0x524440 >>> _0x4083f0 * 8 & 255;
_0x8af065 = "0" + _0x1095b5["toString"](16);
_0x5a20b8 = _0x5a20b8 + _0x8af065["substr"](_0x8af065["length"] - 2, 2);
}
return _0x5a20b8;
}
var _0x855879 = Array();
var _0x47142b, _0x370c51, _0x26cc99, _0x1cb6dc, _0x45aaa9, _0x13b038, _0x539bd0, _0x8e801b, _0x488a20;
var _0x2d21a0 = 7,
_0x3a8a84 = 12,
_0x5809e6 = 17,
_0x57e9ce = 22;
var _0xb28db = 5,
_0x3b44a8 = 9,
_0xcfa034 = 14,
_0x24b06a = 20;
var _0x2ce3bf = 4,
_0x317c0e = 11,
_0x3e8112 = 16,
_0x4848a6 = 23;
var _0x4c2828 = 6,
_0x107363 = 10,
_0x50f86a = 15,
_0x54ae75 = 21;
_0x855879 = _0x2f28fe(_0x5f258a);
_0x13b038 = 1732584193;
_0x539bd0 = 4023233417;
_0x8e801b = 2562383102;
_0x488a20 = 271733878;
for (_0x47142b = 0; _0x47142b < _0x855879["length"]; _0x47142b += 16) {
_0x370c51 = _0x13b038;
_0x26cc99 = _0x539bd0;
_0x1cb6dc = _0x8e801b;
_0x45aaa9 = _0x488a20;
_0x13b038 = _0x4b61b3(_0x13b038, _0x539bd0, _0x8e801b, _0x488a20, _0x855879[_0x47142b + 0], _0x2d21a0, 3614090360);
_0x488a20 = _0x4b61b3(_0x488a20, _0x13b038, _0x539bd0, _0x8e801b, _0x855879[_0x47142b + 1], _0x3a8a84, 3905402710);
_0x8e801b = _0x4b61b3(_0x8e801b, _0x488a20, _0x13b038, _0x539bd0, _0x855879[_0x47142b + 2], _0x5809e6, 606105819);
_0x539bd0 = _0x4b61b3(_0x539bd0, _0x8e801b, _0x488a20, _0x13b038, _0x855879[_0x47142b + 3], _0x57e9ce, 3250441966);
_0x13b038 = _0x4b61b3(_0x13b038, _0x539bd0, _0x8e801b, _0x488a20, _0x855879[_0x47142b + 4], _0x2d21a0, 4118548399);
_0x488a20 = _0x4b61b3(_0x488a20, _0x13b038, _0x539bd0, _0x8e801b, _0x855879[_0x47142b + 5], _0x3a8a84, 1200080426);
_0x8e801b = _0x4b61b3(_0x8e801b, _0x488a20, _0x13b038, _0x539bd0, _0x855879[_0x47142b + 6], _0x5809e6, 2821735955);
_0x539bd0 = _0x4b61b3(_0x539bd0, _0x8e801b, _0x488a20, _0x13b038, _0x855879[_0x47142b + 7], _0x57e9ce, 4249261313);
_0x13b038 = _0x4b61b3(_0x13b038, _0x539bd0, _0x8e801b, _0x488a20, _0x855879[_0x47142b + 8], _0x2d21a0, 1770035416);
_0x488a20 = _0x4b61b3(_0x488a20, _0x13b038, _0x539bd0, _0x8e801b, _0x855879[_0x47142b + 9], _0x3a8a84, 2336552879);
_0x8e801b = _0x4b61b3(_0x8e801b, _0x488a20, _0x13b038, _0x539bd0, _0x855879[_0x47142b + 10], _0x5809e6, 4294925233);
_0x539bd0 = _0x4b61b3(_0x539bd0, _0x8e801b, _0x488a20, _0x13b038, _0x855879[_0x47142b + 11], _0x57e9ce, 2304563134);
_0x13b038 = _0x4b61b3(_0x13b038, _0x539bd0, _0x8e801b, _0x488a20, _0x855879[_0x47142b + 12], _0x2d21a0, 1804603682);
_0x488a20 = _0x4b61b3(_0x488a20, _0x13b038, _0x539bd0, _0x8e801b, _0x855879[_0x47142b + 13], _0x3a8a84, 4254626195);
_0x8e801b = _0x4b61b3(_0x8e801b, _0x488a20, _0x13b038, _0x539bd0, _0x855879[_0x47142b + 14], _0x5809e6, 2792965006);
_0x539bd0 = _0x4b61b3(_0x539bd0, _0x8e801b, _0x488a20, _0x13b038, _0x855879[_0x47142b + 15], _0x57e9ce, 1236535329);
_0x13b038 = _0xa6ab6e(_0x13b038, _0x539bd0, _0x8e801b, _0x488a20, _0x855879[_0x47142b + 1], _0xb28db, 4129170786);
_0x488a20 = _0xa6ab6e(_0x488a20, _0x13b038, _0x539bd0, _0x8e801b, _0x855879[_0x47142b + 6], _0x3b44a8, 3225465664);
_0x8e801b = _0xa6ab6e(_0x8e801b, _0x488a20, _0x13b038, _0x539bd0, _0x855879[_0x47142b + 11], _0xcfa034, 643717713);
_0x539bd0 = _0xa6ab6e(_0x539bd0, _0x8e801b, _0x488a20, _0x13b038, _0x855879[_0x47142b + 0], _0x24b06a, 3921069994);
_0x13b038 = _0xa6ab6e(_0x13b038, _0x539bd0, _0x8e801b, _0x488a20, _0x855879[_0x47142b + 5], _0xb28db, 3593408605);
_0x488a20 = _0xa6ab6e(_0x488a20, _0x13b038, _0x539bd0, _0x8e801b, _0x855879[_0x47142b + 10], _0x3b44a8, 38016083);
_0x8e801b = _0xa6ab6e(_0x8e801b, _0x488a20, _0x13b038, _0x539bd0, _0x855879[_0x47142b + 15], _0xcfa034, 3634488961);
_0x539bd0 = _0xa6ab6e(_0x539bd0, _0x8e801b, _0x488a20, _0x13b038, _0x855879[_0x47142b + 4], _0x24b06a, 3889429448);
_0x13b038 = _0xa6ab6e(_0x13b038, _0x539bd0, _0x8e801b, _0x488a20, _0x855879[_0x47142b + 9], _0xb28db, 568446438);
_0x488a20 = _0xa6ab6e(_0x488a20, _0x13b038, _0x539bd0, _0x8e801b, _0x855879[_0x47142b + 14], _0x3b44a8, 3275163606);
_0x8e801b = _0xa6ab6e(_0x8e801b, _0x488a20, _0x13b038, _0x539bd0, _0x855879[_0x47142b + 3], _0xcfa034, 4107603335);
_0x539bd0 = _0xa6ab6e(_0x539bd0, _0x8e801b, _0x488a20, _0x13b038, _0x855879[_0x47142b + 8], _0x24b06a, 1163531501);
_0x13b038 = _0xa6ab6e(_0x13b038, _0x539bd0, _0x8e801b, _0x488a20, _0x855879[_0x47142b + 13], _0xb28db, 2850285829);
_0x488a20 = _0xa6ab6e(_0x488a20, _0x13b038, _0x539bd0, _0x8e801b, _0x855879[_0x47142b + 2], _0x3b44a8, 4243563512);
_0x8e801b = _0xa6ab6e(_0x8e801b, _0x488a20, _0x13b038, _0x539bd0, _0x855879[_0x47142b + 7], _0xcfa034, 1735328473);
_0x539bd0 = _0xa6ab6e(_0x539bd0, _0x8e801b, _0x488a20, _0x13b038, _0x855879[_0x47142b + 12], _0x24b06a, 2368359562);
_0x13b038 = _0x4e2180(_0x13b038, _0x539bd0, _0x8e801b, _0x488a20, _0x855879[_0x47142b + 5], _0x2ce3bf, 4294588738);
_0x488a20 = _0x4e2180(_0x488a20, _0x13b038, _0x539bd0, _0x8e801b, _0x855879[_0x47142b + 8], _0x317c0e, 2272392833);
_0x8e801b = _0x4e2180(_0x8e801b, _0x488a20, _0x13b038, _0x539bd0, _0x855879[_0x47142b + 11], _0x3e8112, 1839030562);
_0x539bd0 = _0x4e2180(_0x539bd0, _0x8e801b, _0x488a20, _0x13b038, _0x855879[_0x47142b + 14], _0x4848a6, 4259657740);
_0x13b038 = _0x4e2180(_0x13b038, _0x539bd0, _0x8e801b, _0x488a20, _0x855879[_0x47142b + 1], _0x2ce3bf, 2763975236);
_0x488a20 = _0x4e2180(_0x488a20, _0x13b038, _0x539bd0, _0x8e801b, _0x855879[_0x47142b + 4], _0x317c0e, 1272893353);
_0x8e801b = _0x4e2180(_0x8e801b, _0x488a20, _0x13b038, _0x539bd0, _0x855879[_0x47142b + 7], _0x3e8112, 4139469664);
_0x539bd0 = _0x4e2180(_0x539bd0, _0x8e801b, _0x488a20, _0x13b038, _0x855879[_0x47142b + 10], _0x4848a6, 3200236656);
_0x13b038 = _0x4e2180(_0x13b038, _0x539bd0, _0x8e801b, _0x488a20, _0x855879[_0x47142b + 13], _0x2ce3bf, 681279174);
_0x488a20 = _0x4e2180(_0x488a20, _0x13b038, _0x539bd0, _0x8e801b, _0x855879[_0x47142b + 0], _0x317c0e, 3936430074);
_0x8e801b = _0x4e2180(_0x8e801b, _0x488a20, _0x13b038, _0x539bd0, _0x855879[_0x47142b + 3], _0x3e8112, 3572445317);
_0x539bd0 = _0x4e2180(_0x539bd0, _0x8e801b, _0x488a20, _0x13b038, _0x855879[_0x47142b + 6], _0x4848a6, 76029189);
_0x13b038 = _0x4e2180(_0x13b038, _0x539bd0, _0x8e801b, _0x488a20, _0x855879[_0x47142b + 9], _0x2ce3bf, 3654602809);
_0x488a20 = _0x4e2180(_0x488a20, _0x13b038, _0x539bd0, _0x8e801b, _0x855879[_0x47142b + 12], _0x317c0e, 3873151461);
_0x8e801b = _0x4e2180(_0x8e801b, _0x488a20, _0x13b038, _0x539bd0, _0x855879[_0x47142b + 15], _0x3e8112, 530742520);
_0x539bd0 = _0x4e2180(_0x539bd0, _0x8e801b, _0x488a20, _0x13b038, _0x855879[_0x47142b + 2], _0x4848a6, 3299628645);
_0x13b038 = _0x49a149(_0x13b038, _0x539bd0, _0x8e801b, _0x488a20, _0x855879[_0x47142b + 0], _0x4c2828, 4096336452);
_0x488a20 = _0x49a149(_0x488a20, _0x13b038, _0x539bd0, _0x8e801b, _0x855879[_0x47142b + 7], _0x107363, 1126891415);
_0x8e801b = _0x49a149(_0x8e801b, _0x488a20, _0x13b038, _0x539bd0, _0x855879[_0x47142b + 14], _0x50f86a, 2878612391);
_0x539bd0 = _0x49a149(_0x539bd0, _0x8e801b, _0x488a20, _0x13b038, _0x855879[_0x47142b + 5], _0x54ae75, 4237533241);
_0x13b038 = _0x49a149(_0x13b038, _0x539bd0, _0x8e801b, _0x488a20, _0x855879[_0x47142b + 12], _0x4c2828, 1700485571);
_0x488a20 = _0x49a149(_0x488a20, _0x13b038, _0x539bd0, _0x8e801b, _0x855879[_0x47142b + 3], _0x107363, 2399980690);
_0x8e801b = _0x49a149(_0x8e801b, _0x488a20, _0x13b038, _0x539bd0, _0x855879[_0x47142b + 10], _0x50f86a, 4293915773);
_0x539bd0 = _0x49a149(_0x539bd0, _0x8e801b, _0x488a20, _0x13b038, _0x855879[_0x47142b + 1], _0x54ae75, 2240044497);
_0x13b038 = _0x49a149(_0x13b038, _0x539bd0, _0x8e801b, _0x488a20, _0x855879[_0x47142b + 8], _0x4c2828, 1873313359);
_0x488a20 = _0x49a149(_0x488a20, _0x13b038, _0x539bd0, _0x8e801b, _0x855879[_0x47142b + 15], _0x107363, 4264355552);
_0x8e801b = _0x49a149(_0x8e801b, _0x488a20, _0x13b038, _0x539bd0, _0x855879[_0x47142b + 6], _0x50f86a, 2734768916);
_0x539bd0 = _0x49a149(_0x539bd0, _0x8e801b, _0x488a20, _0x13b038, _0x855879[_0x47142b + 13], _0x54ae75, 1309151649);
_0x13b038 = _0x49a149(_0x13b038, _0x539bd0, _0x8e801b, _0x488a20, _0x855879[_0x47142b + 4], _0x4c2828, 4149444226);
_0x488a20 = _0x49a149(_0x488a20, _0x13b038, _0x539bd0, _0x8e801b, _0x855879[_0x47142b + 11], _0x107363, 3174756917);
_0x8e801b = _0x49a149(_0x8e801b, _0x488a20, _0x13b038, _0x539bd0, _0x855879[_0x47142b + 2], _0x50f86a, 718787259);
_0x539bd0 = _0x49a149(_0x539bd0, _0x8e801b, _0x488a20, _0x13b038, _0x855879[_0x47142b + 9], _0x54ae75, 3951481745);
_0x13b038 = _0x2baa30(_0x13b038, _0x370c51);
_0x539bd0 = _0x2baa30(_0x539bd0, _0x26cc99);
_0x8e801b = _0x2baa30(_0x8e801b, _0x1cb6dc);
_0x488a20 = _0x2baa30(_0x488a20, _0x45aaa9);
}
var _0x3389fc = _0x40ca01(_0x13b038) + _0x40ca01(_0x539bd0) + _0x40ca01(_0x8e801b) + _0x40ca01(_0x488a20);
return _0x3389fc["toLowerCase"]();
}
function go(data) {
var chars = data["chars"]["length"];
for (var i = 0; i < chars; i++) {
for (var j = 0; j < chars; j++) {
var cookie = data["bts"][0] + data["chars"]["substr"](i, 1) + data["chars"]["substr"](j, 1) + data["bts"][1];
if (hash(cookie) == data["ct"]) {
return cookie;
}
}
}
}
sha1.js
function hash(_0x598fff) {
var _0x49b45e = 8;
var _0x24cbeb = 0;
function _0x1e2c4a(_0x22d2f0, _0x279b20) {
var _0x4cfd21 = (_0x22d2f0 & 65535) + (_0x279b20 & 65535);
var _0x328847 = (_0x22d2f0 >> 16) + (_0x279b20 >> 16) + (_0x4cfd21 >> 16);
return _0x328847 << 16 | _0x4cfd21 & 65535;
}
function _0x1e5263(_0x39c4e1, _0x4daf38) {
return _0x39c4e1 >>> _0x4daf38 | _0x39c4e1 << 32 - _0x4daf38;
}
function _0x30cd19(_0x47776a, _0x5d77bc) {
return _0x47776a >>> _0x5d77bc;
}
function _0x30c57c(_0x33afb8, _0x9b5e13, _0x250600) {
return _0x33afb8 & _0x9b5e13 ^ ~_0x33afb8 & _0x250600;
}
function _0x52ab50(_0x44fb21, _0x5e23f1, _0x207702) {
return _0x44fb21 & _0x5e23f1 ^ _0x44fb21 & _0x207702 ^ _0x5e23f1 & _0x207702;
}
function _0x168be7(_0x32dd62) {
return _0x1e5263(_0x32dd62, 2) ^ _0x1e5263(_0x32dd62, 13) ^ _0x1e5263(_0x32dd62, 22);
}
function _0x1268dc(_0x35c727) {
return _0x1e5263(_0x35c727, 6) ^ _0x1e5263(_0x35c727, 11) ^ _0x1e5263(_0x35c727, 25);
}
function _0x52baa8(_0x48259e) {
return _0x1e5263(_0x48259e, 7) ^ _0x1e5263(_0x48259e, 18) ^ _0x30cd19(_0x48259e, 3);
}
function _0x3ff1a3(_0x12bd2d) {
return _0x1e5263(_0x12bd2d, 17) ^ _0x1e5263(_0x12bd2d, 19) ^ _0x30cd19(_0x12bd2d, 10);
}
function _0x5c597b(_0x36294a, _0x1dd99a) {
var _0x5a0c84 = new Array(1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298);
var _0x6c9bea = new Array(1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225);
var _0xc3c450 = new Array(64);
var _0x373692, _0x3f68cd, _0x87a717, _0xb248f7, _0x3bf938, _0x20e59a, _0x4d419c, _0x2c7256, _0x40b379, _0x41163b;
var _0x4fdc54, _0x4adea3;
_0x36294a[_0x1dd99a >> 5] |= 128 << 24 - _0x1dd99a % 32;
_0x36294a[(_0x1dd99a + 64 >> 9 << 4) + 15] = _0x1dd99a;
for (var _0x40b379 = 0; _0x40b379 < _0x36294a["length"]; _0x40b379 += 16) {
_0x373692 = _0x6c9bea[0];
_0x3f68cd = _0x6c9bea[1];
_0x87a717 = _0x6c9bea[2];
_0xb248f7 = _0x6c9bea[3];
_0x3bf938 = _0x6c9bea[4];
_0x20e59a = _0x6c9bea[5];
_0x4d419c = _0x6c9bea[6];
_0x2c7256 = _0x6c9bea[7];
for (var _0x41163b = 0; _0x41163b < 64; _0x41163b++) {
if (_0x41163b < 16) {
_0xc3c450[_0x41163b] = _0x36294a[_0x41163b + _0x40b379];
} else {
_0xc3c450[_0x41163b] = _0x1e2c4a(_0x1e2c4a(_0x1e2c4a(_0x3ff1a3(_0xc3c450[_0x41163b - 2]), _0xc3c450[_0x41163b - 7]), _0x52baa8(_0xc3c450[_0x41163b - 15])), _0xc3c450[_0x41163b - 16]);
}
_0x4fdc54 = _0x1e2c4a(_0x1e2c4a(_0x1e2c4a(_0x1e2c4a(_0x2c7256, _0x1268dc(_0x3bf938)), _0x30c57c(_0x3bf938, _0x20e59a, _0x4d419c)), _0x5a0c84[_0x41163b]), _0xc3c450[_0x41163b]);
_0x4adea3 = _0x1e2c4a(_0x168be7(_0x373692), _0x52ab50(_0x373692, _0x3f68cd, _0x87a717));
_0x2c7256 = _0x4d419c;
_0x4d419c = _0x20e59a;
_0x20e59a = _0x3bf938;
_0x3bf938 = _0x1e2c4a(_0xb248f7, _0x4fdc54);
_0xb248f7 = _0x87a717;
_0x87a717 = _0x3f68cd;
_0x3f68cd = _0x373692;
_0x373692 = _0x1e2c4a(_0x4fdc54, _0x4adea3);
}
_0x6c9bea[0] = _0x1e2c4a(_0x373692, _0x6c9bea[0]);
_0x6c9bea[1] = _0x1e2c4a(_0x3f68cd, _0x6c9bea[1]);
_0x6c9bea[2] = _0x1e2c4a(_0x87a717, _0x6c9bea[2]);
_0x6c9bea[3] = _0x1e2c4a(_0xb248f7, _0x6c9bea[3]);
_0x6c9bea[4] = _0x1e2c4a(_0x3bf938, _0x6c9bea[4]);
_0x6c9bea[5] = _0x1e2c4a(_0x20e59a, _0x6c9bea[5]);
_0x6c9bea[6] = _0x1e2c4a(_0x4d419c, _0x6c9bea[6]);
_0x6c9bea[7] = _0x1e2c4a(_0x2c7256, _0x6c9bea[7]);
}
return _0x6c9bea;
}
function _0x233cde(_0xa4db63) {
var _0x150ea6 = Array();
var _0x4a31ad = 255;
for (var _0x381bf0 = 0; _0x381bf0 < _0xa4db63["length"] * _0x49b45e; _0x381bf0 += _0x49b45e) {
_0x150ea6[_0x381bf0 >> 5] |= (_0xa4db63["charCodeAt"](_0x381bf0 / _0x49b45e) & _0x4a31ad) << 24 - _0x381bf0 % 32;
}
return _0x150ea6;
}
function _0x53d701(_0x334568) {
var _0x5aaafa = new RegExp("\n", "g");
_0x334568 = _0x334568["replace"](_0x5aaafa, "\n");
var _0xfe4485 = "";
for (var _0x2d348e = 0; _0x2d348e < _0x334568["length"]; _0x2d348e++) {
var _0x28ae49 = _0x334568["charCodeAt"](_0x2d348e);
if (_0x28ae49 < 128) {
_0xfe4485 += String["fromCharCode"](_0x28ae49);
} else {
if (_0x28ae49 > 127 && _0x28ae49 < 2048) {
_0xfe4485 += String["fromCharCode"](_0x28ae49 >> 6 | 192);
_0xfe4485 += String["fromCharCode"](_0x28ae49 & 63 | 128);
} else {
_0xfe4485 += String["fromCharCode"](_0x28ae49 >> 12 | 224);
_0xfe4485 += String["fromCharCode"](_0x28ae49 >> 6 & 63 | 128);
_0xfe4485 += String["fromCharCode"](_0x28ae49 & 63 | 128);
}
}
}
return _0xfe4485;
}
function _0x46713f(_0x4f4b2f) {
var _0x586e90 = "0123456789abcdef";
var _0xfa0926 = "";
for (var _0x3fc4b8 = 0; _0x3fc4b8 < _0x4f4b2f["length"] * 4; _0x3fc4b8++) {
_0xfa0926 += _0x586e90["charAt"](_0x4f4b2f[_0x3fc4b8 >> 2] >> (3 - _0x3fc4b8 % 4) * 8 + 4 & 15) + _0x586e90["charAt"](_0x4f4b2f[_0x3fc4b8 >> 2] >> (3 - _0x3fc4b8 % 4) * 8 & 15);
}
return _0xfa0926;
}
_0x598fff = _0x53d701(_0x598fff);
return _0x46713f(_0x5c597b(_0x233cde(_0x598fff), _0x598fff["length"] * _0x49b45e));
}
function go(data) {
var chars = data["chars"]["length"];
for (var i = 0; i < chars; i++) {
for (var j = 0; j < chars; j++) {
var cookie = data["bts"][0] + data["chars"]["substr"](i, 1) + data["chars"]["substr"](j, 1) + data["bts"][1];
if (hash(cookie) == data["ct"]) {
return cookie;
}
}
}
}
sha256.js
function hash(_0x2d4d71) {
var _0x4fa55c = 8;
var _0x47edc1 = 0;
function _0x2c9622(_0x29359d, _0x4ae66f) {
var _0xb605c0 = (_0x29359d & 65535) + (_0x4ae66f & 65535);
var _0x27744e = (_0x29359d >> 16) + (_0x4ae66f >> 16) + (_0xb605c0 >> 16);
return _0x27744e << 16 | _0xb605c0 & 65535;
}
function _0x19c666(_0xf7e020, _0x235055) {
return _0xf7e020 >>> _0x235055 | _0xf7e020 << 32 - _0x235055;
}
function _0x436381(_0xd2ec5, _0x5c392d) {
return _0xd2ec5 >>> _0x5c392d;
}
function _0x3f7e6a(_0x3df6f9, _0xb07891, _0x43446d) {
return _0x3df6f9 & _0xb07891 ^ ~_0x3df6f9 & _0x43446d;
}
function _0x20e775(_0x51df81, _0xeeb3b4, _0x2ebd5f) {
return _0x51df81 & _0xeeb3b4 ^ _0x51df81 & _0x2ebd5f ^ _0xeeb3b4 & _0x2ebd5f;
}
function _0x5450df(_0x155ce6) {
return _0x19c666(_0x155ce6, 2) ^ _0x19c666(_0x155ce6, 13) ^ _0x19c666(_0x155ce6, 22);
}
function _0x2d51c9(_0xc877f4) {
return _0x19c666(_0xc877f4, 6) ^ _0x19c666(_0xc877f4, 11) ^ _0x19c666(_0xc877f4, 25);
}
function _0x515e90(_0x16cf8f) {
return _0x19c666(_0x16cf8f, 7) ^ _0x19c666(_0x16cf8f, 18) ^ _0x436381(_0x16cf8f, 3);
}
function _0x57905d(_0x9b4d6e) {
return _0x19c666(_0x9b4d6e, 17) ^ _0x19c666(_0x9b4d6e, 19) ^ _0x436381(_0x9b4d6e, 10);
}
function _0x7dfc8(_0x10a4b0, _0x43831c) {
var _0x1d2989 = new Array(1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298);
var _0x5cb44b = new Array(1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225);
var _0x5a20f0 = new Array(64);
var _0x218e05, _0xe3c1e2, _0x107c4d, _0xf15343, _0x4e8165, _0x3d523b, _0x5552b2, _0x55b2d5, _0x8b0131, _0x4adfc9;
var _0x92e82e, _0x281f56;
_0x10a4b0[_0x43831c >> 5] |= 128 << 24 - _0x43831c % 32;
_0x10a4b0[(_0x43831c + 64 >> 9 << 4) + 15] = _0x43831c;
for (var _0x8b0131 = 0; _0x8b0131 < _0x10a4b0["length"]; _0x8b0131 += 16) {
_0x218e05 = _0x5cb44b[0];
_0xe3c1e2 = _0x5cb44b[1];
_0x107c4d = _0x5cb44b[2];
_0xf15343 = _0x5cb44b[3];
_0x4e8165 = _0x5cb44b[4];
_0x3d523b = _0x5cb44b[5];
_0x5552b2 = _0x5cb44b[6];
_0x55b2d5 = _0x5cb44b[7];
for (var _0x4adfc9 = 0; _0x4adfc9 < 64; _0x4adfc9++) {
if (_0x4adfc9 < 16) {
_0x5a20f0[_0x4adfc9] = _0x10a4b0[_0x4adfc9 + _0x8b0131];
} else {
_0x5a20f0[_0x4adfc9] = _0x2c9622(_0x2c9622(_0x2c9622(_0x57905d(_0x5a20f0[_0x4adfc9 - 2]), _0x5a20f0[_0x4adfc9 - 7]), _0x515e90(_0x5a20f0[_0x4adfc9 - 15])), _0x5a20f0[_0x4adfc9 - 16]);
}
_0x92e82e = _0x2c9622(_0x2c9622(_0x2c9622(_0x2c9622(_0x55b2d5, _0x2d51c9(_0x4e8165)), _0x3f7e6a(_0x4e8165, _0x3d523b, _0x5552b2)), _0x1d2989[_0x4adfc9]), _0x5a20f0[_0x4adfc9]);
_0x281f56 = _0x2c9622(_0x5450df(_0x218e05), _0x20e775(_0x218e05, _0xe3c1e2, _0x107c4d));
_0x55b2d5 = _0x5552b2;
_0x5552b2 = _0x3d523b;
_0x3d523b = _0x4e8165;
_0x4e8165 = _0x2c9622(_0xf15343, _0x92e82e);
_0xf15343 = _0x107c4d;
_0x107c4d = _0xe3c1e2;
_0xe3c1e2 = _0x218e05;
_0x218e05 = _0x2c9622(_0x92e82e, _0x281f56);
}
_0x5cb44b[0] = _0x2c9622(_0x218e05, _0x5cb44b[0]);
_0x5cb44b[1] = _0x2c9622(_0xe3c1e2, _0x5cb44b[1]);
_0x5cb44b[2] = _0x2c9622(_0x107c4d, _0x5cb44b[2]);
_0x5cb44b[3] = _0x2c9622(_0xf15343, _0x5cb44b[3]);
_0x5cb44b[4] = _0x2c9622(_0x4e8165, _0x5cb44b[4]);
_0x5cb44b[5] = _0x2c9622(_0x3d523b, _0x5cb44b[5]);
_0x5cb44b[6] = _0x2c9622(_0x5552b2, _0x5cb44b[6]);
_0x5cb44b[7] = _0x2c9622(_0x55b2d5, _0x5cb44b[7]);
}
return _0x5cb44b;
}
function _0x180a16(_0xf1fd6e) {
var _0xb0db85 = Array();
var _0x25f9c5 = 255;
for (var _0x2f8e7d = 0; _0x2f8e7d < _0xf1fd6e["length"] * _0x4fa55c; _0x2f8e7d += _0x4fa55c) {
_0xb0db85[_0x2f8e7d >> 5] |= (_0xf1fd6e["charCodeAt"](_0x2f8e7d / _0x4fa55c) & _0x25f9c5) << 24 - _0x2f8e7d % 32;
}
return _0xb0db85;
}
function _0x46ee98(_0x58c977) {
var _0x85a9a = new RegExp("\n", "g");
_0x58c977 = _0x58c977["replace"](_0x85a9a, "\n");
var _0x4bca3a = "";
for (var _0x1e7342 = 0; _0x1e7342 < _0x58c977["length"]; _0x1e7342++) {
var _0x5c7a8b = _0x58c977["charCodeAt"](_0x1e7342);
if (_0x5c7a8b < 128) {
_0x4bca3a += String["fromCharCode"](_0x5c7a8b);
} else {
if (_0x5c7a8b > 127 && _0x5c7a8b < 2048) {
_0x4bca3a += String["fromCharCode"](_0x5c7a8b >> 6 | 192);
_0x4bca3a += String["fromCharCode"](_0x5c7a8b & 63 | 128);
} else {
_0x4bca3a += String["fromCharCode"](_0x5c7a8b >> 12 | 224);
_0x4bca3a += String["fromCharCode"](_0x5c7a8b >> 6 & 63 | 128);
_0x4bca3a += String["fromCharCode"](_0x5c7a8b & 63 | 128);
}
}
}
return _0x4bca3a;
}
function _0x5fb598(_0x580622) {
var _0x11d2a4 = "0123456789abcdef";
var _0x180550 = "";
for (var _0x11bebf = 0; _0x11bebf < _0x580622["length"] * 4; _0x11bebf++) {
_0x180550 += _0x11d2a4["charAt"](_0x580622[_0x11bebf >> 2] >> (3 - _0x11bebf % 4) * 8 + 4 & 15) + _0x11d2a4["charAt"](_0x580622[_0x11bebf >> 2] >> (3 - _0x11bebf % 4) * 8 & 15);
}
return _0x180550;
}
_0x2d4d71 = _0x46ee98(_0x2d4d71);
return _0x5fb598(_0x7dfc8(_0x180a16(_0x2d4d71), _0x2d4d71["length"] * _0x4fa55c));
}
function go(data) {
var chars = data["chars"]["length"];
for (var i = 0; i < chars; i++) {
for (var j = 0; j < chars; j++) {
var cookie = data["bts"][0] + data["chars"]["substr"](i, 1) + data["chars"]["substr"](j, 1) + data["bts"][1];
if (hash(cookie) == data["ct"]) {
return cookie;
}
}
}
}
js的改造参考第二次请求中的JS改造,注意注释的部分
执行的结果:
- 没有触发反爬
- 正常访问,返回码200
200
更好的办法,读懂JS,改写成python版本
import requests
import re
import execjs
import hashlib
import json
from requests.utils import add_dict_to_cookiejar
def getCookie(data):
"""
通过加密对比得到正确cookie参数
:param data: 参数
:return: 返回正确cookie参数
"""
chars = len(data['chars'])
for i in range(chars):
for j in range(chars):
clearance = data['bts'][0] + data['chars'][i] + data['chars'][j] + data['bts'][1]
encrypt = None
if data['ha'] == 'md5':
encrypt = hashlib.md5()
elif data['ha'] == 'sha1':
encrypt = hashlib.sha1()
elif data['ha'] == 'sha256':
encrypt = hashlib.sha256()
encrypt.update(clearance.encode())
result = encrypt.hexdigest()
if result == data['ct']:
return clearance
# url = 'https://www.cnvd.org.cn/flaw/list.htm'
url = 'https://www.yidaiyilu.gov.cn/xwzx/gnxw/87373.htm'
# url = 'https://www.mps.gov.cn/'
header = {
# 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
# 'Accept-Encoding': 'gzip, deflate, br',
# 'Accept-Language': 'zh-CN,zh;q=0.9',
# 'Connection': 'keep-alive',
# 'Host': 'www.mps.gov.cn',
# 'Referer': 'https://www.mps.gov.cn/',
# 'sec-ch-ua': '"Chromium";v="94", "Google Chrome";v="94", ";Not A Brand";v="99"',
# 'sec-ch-ua-mobile': '?0',
# 'sec-ch-ua-platform': '"Windows"',
# 'Sec-Fetch-Dest': 'document',
# 'Sec-Fetch-Mode': 'navigate',
# 'Sec-Fetch-Site': 'same-origin',
# 'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36',
}
# 使用session保持会话
session = requests.session()
res1 = session.get(url, headers=header)
jsl_clearance_s = re.findall(r'cookie=(.*?);location', res1.text)[0]
# 执行js代码
print(execjs.eval(jsl_clearance_s))
jsl_clearance_s = str(execjs.eval(jsl_clearance_s)).split('=')[1].split(';')[0]
# add_dict_to_cookiejar方法添加cookie
add_dict_to_cookiejar(session.cookies, {'__jsl_clearance_s': jsl_clearance_s})
res2 = session.get(url, headers=header)
# 提取go方法中的参数
data = json.loads(re.findall(r';go\((.*?)\)', res2.text)[0])
jsl_clearance_s = getCookie(data)
# 修改cookie
add_dict_to_cookiejar(session.cookies, {'__jsl_clearance_s': jsl_clearance_s})
res3 = session.get(url, headers=header)
print(res3.status_code)
print(res3.content.decode())
总结
- 调试JS
- 模拟http请求
- selenium反检测
- 知道创宇的产品:加速乐(__jsl_clearance_s),云检测(反爬虫)
说明
参考了众多优秀的文章,如有侵权请联系我
本文如有不清楚的地方,可以联系我

