前提
- 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的運輸結(jié)果(值不同是因為第一次請求返回的JS是使用postman模擬的,瀏覽器看不到返回的JS祟偷,所以JS執(zhí)行的結(jié)果不同)
第二次請求返回值
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產(chǎn)生新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"
// });
執(zhí)行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)
結(jié)果
1640078441.015|0|jdfF4DzgF6cGJcfTYQMB7d2IV24%3D
知道創(chuàng)宇的檢測
-
瀏覽器直接打開
521 攻擊檢測.png -
postman 模擬
image.png
結(jié)論
- 瀏覽器訪問不是每次都會觸發(fā)
- 瀏覽器檢測完成后顯示正常頁面
- postman模擬requests不是每次都會觸發(fā)
- 使用selenium每次都會觸發(fā)此檢測
selenium每次都會觸發(fā)此檢測
原因
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()
這樣就可以了
知道創(chuàng)宇云防御
image.png
image.png
深度反爬蟲
第三次請求
image.png
第二次請求返回的 js 的主體邏輯就是go函數(shù)恰画,它主要完成的就是將__jsl_clearance_s分成兩個部分强挫,分別和傳入 go 方法中傳入的字符串進行拼接,然后根據(jù)ha中傳入的參數(shù)進行 hash,將 hash 的結(jié)果進行比對,比對正確返回 cookie
注意:這里的 hash 有幾種算法垫挨,md5、sha1触菜、sha256
接下來執(zhí)行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改造九榔,注意注釋的部分
執(zhí)行的結(jié)果:
- 沒有觸發(fā)反爬
- 正常訪問,返回碼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參數(shù)
:param data: 參數(shù)
:return: 返回正確cookie參數(shù)
"""
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]
# 執(zhí)行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方法中的參數(shù)
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())
總結(jié)
- 調(diào)試JS
- 模擬http請求
- selenium反檢測
- 知道創(chuàng)宇的產(chǎn)品:加速樂(__jsl_clearance_s)哲泊,云檢測(反爬蟲)
說明
參考了眾多優(yōu)秀的文章,如有侵權(quán)請聯(lián)系我
本文如有不清楚的地方催蝗,可以聯(lián)系我