当前位置: 首页 > news >正文

招聘网站做销售淘客怎么做自己的网站

招聘网站做销售,淘客怎么做自己的网站,微网站主机注册免费,上海网站建设友汇网站背景 当用代码或者postman访问一个网站的时候#xff0c;访问他的任何地址都会返回script src/_guard/auto.js/script#xff0c;但是从浏览器中访问显示的页面是正常的#xff0c;这种就是网站做了反爬虫策略。本文就是带大家来破解这种策略访问他的任何地址都会返回script src/_guard/auto.js/script但是从浏览器中访问显示的页面是正常的这种就是网站做了反爬虫策略。本文就是带大家来破解这种策略也就是反反爬虫。 思路 寻找关键参数 既然在浏览器中访问没问题那我们就把浏览器的请求复制下来看是哪些参数让请求可以正常访问将curl复制到postman中把请求头一个个去掉看去掉哪些请求头会让请求无法正常访问 最终发现是Cookie和User-Agent一起使得请求合法如下 CookieguardretBQgG; __51vcke__K1rw5p3uprPRftXo21f5dde6-91d9-520b-a429-4a6e99d44523; __51vuft__K1rw5p3uprPRftXo1720509084853; guardok9DltyP8ERJnWJaolNInDWV03ft30EOzKt4tqyEk7ovRpuYeNMKAWDqyyT9DwacZaxy9brXjs8Mk2pbxhhWw; PHPSESSIDkhol0nbd4esktf48ddmecbidb6; __vtins__K1rw5p3uprPRftXo%7B%22sid%22%3A%20%22045d7540-b7de-543b-830f-f3cb437c85bd%22%2C%20%22vd%22%3A%201%2C%20%22stt%22%3A%200%2C%20%22dr%22%3A%200%2C%20%22expires%22%3A%201721135512843%2C%20%22ct%22%3A%201721133712843%7D; __51uvsct__K1rw5p3uprPRftXo7User-AgentMozilla/xxx 可以看到Cookie中有好几项我们继续在Cookie中删除发现只有guardok有用其他的都没用所以最终有用的请求头如下 Cookieguardok9DltyP8ERJnWJaolNInDWV03ft30EOzKt4tqyEk7ovRpuYeNMKAWDqyyT9DwacZaxy9brXjs8Mk2pbxhhWwUser-AgentMozilla/xxx js混淆 这么看来关键的东西就是这个guardok那我们看看这个是什么时候生成的把浏览器的cookie删除再打开开发者模式 但是发现在开发者模式下这个js在无限的debug这是一个很常见的防debug的代码就是定时循环执行含有debugger的代码如果没在开发者模式那么debug就不会生效遇到debugger断点不会停但如果是在开发者模式下就会停到断点处并且这个方法还会不断的自己调自己直到下一次定时时间所以即使我们调试通过这个断点也会立刻到这个断点处。 由于这个代码的存在我们不能查看network因为会一直卡在debuger。那我们就直接用postman访问这个js看看guardok是不是在这个js中生成的。 但是这个js返回的内容还是混淆过的直接看是看不懂的比如他会把 location 混淆成 _0x10a691(0x215, lIIz)其实这个的意思是将一个初始值_0x10a691 进行位偏移偏移后就变成了另一个值location 并且这个在浏览器上运行也是能正常运行只不过加大了我们的翻译成本。 分析关键参数guardok生成过程 既然翻译成本大那我就先确认这个guardok是否和这个js有关别翻译了半天发现跟他没关系那心态就崩了。这个也好确认在浏览器上访问一次看这个guardok是什么时候生成的就行但因为这个debbuger的问题我们不能直接在浏览器上访问所以就抓个包看看这个接口就行比如使用Charles。 通过抓包可以看到同一个接口访问了两次 第一次访问在响应头中的cookie里返回了guard并且返回的报文体中返回了那个js文件第二次访问在响应头中的cookie里返回了guardok并且返回的报文体中返回了正常的页面数据 可以看到第二次访问的请求中并没有任何地方携带guardok但是在响应头中有guardok。那么就说明第二次的请求中有参数会传给后端由后端生成guardok并放到Set-Cookie中后续的请求就都携带了guardok。 查看第二次的请求只是在请求的cookie中多了guardret和guard这两项。由此可以知道是根据guardret和guard去服务端换取guardok而guard会在第一次请求的响应中返回到Set-Cookie无需客户端手动生成。而guardret则只可能会由第一次请求返回的那个js中生成那我们只需在js中把生成guardret的算法找出来就行了 反js混淆 到这里也就只能对js进行反混淆了只有知道生成guardret的算法那一切就都通了。我试过好多反混淆工具都无法解析出实际的代码。没办法只能花时间一点点的还原了。重头戏来了还原的方法其实并不难相反还很简单就是苦力活。比如这个方法 var _0xd750ee _0x5391;function setRet(_0x34d4ed) {var _0x10a691 _0xd750ee, WtHInZ {GIeQp: function (callee, _0xf9e2d4) {return callee(_0xf9e2d4);}, LYVKf: undefined, fOOLQ: function (_0x396e94, _0x39a709) {return _0x396e94 - _0x39a709;}, FARua: function (_0x4be905, _0x42316e) {return _0x4be905 * _0x42316e;}, ascvk: function (callee, _0x10b8fa, _0x4313da) {return callee(_0x10b8fa, _0x4313da);}, wqePU: function (callee, _0x1a7786) {return callee(_0x1a7786);}, dYcOv: _0x10a691(0x201, 0TB)}, _0x3a9f4b _0x34d4ed[_0x10a691(0x1ee, 6%cq)](0x0, 0x8), time_num_plain _0x34d4ed[substr](0xc),_0x305bd1 WtHInZ[_0x10a691(0x1c8, 2qE2)](parseInt, time_num_plain[substr](0xa));typeof window WtHInZ[_0x10a691(0x1dd, WPXd)] (_0x305bd1 0x2);var _0x552e00 WtHInZ[_0x10a691(0x1da, QiI*)](WtHInZ[_0x10a691(0x1d2, p7[8)](_0x305bd1, 0x2) 0x11, 0x2),encrypted WtHInZ[_0x10a691(0x25a, !koh)](x, _0x552e00[_0x10a691(0x275, 6f6c)](), _0x3a9f4b),guard_encrypted WtHInZ[_0x10a691(0x24e, lIIz)](b, encrypted);document[_0x10a691(0x1f7, hlsZ)] WtHInZ[_0x10a691(0x1eb, sPw2)] guard_encrypted, window[_0x10a691(0x215, lIIz)][reload](); } 里面的很多代码都看不出是啥东西不过没关系我们可以让浏览器帮我们翻译首先把无限debug的代码先去掉改成空方法即可如下 function debuggerProtection(counter) {} 然后在一个文本里加入script标签 script typetext/javascript /script再把修改后的js代码复制到标签中间另存为.html文件。双击该html文件再使用开发者工具即可。 然后我们就一步步的用浏览器debug即可比如 WtHInZ[_0x10a691(0x1d2, p7[8)](_0x305bd1, 0x2)  1.文本翻译 首先翻译 _0x10a691(0x1d2, p7[8)因为var _0x10a691 _0xd750ee所以_0x10a691(0x1d2, p7[8)也就是_0xd750ee(0x1d2, p7[8)那我们只需要在浏览器中把它打印出来即可alert、debug、console打印都行在这里我们用debug随便找个地方执行如下打印个断点查看 可以看到_0x10a691(0x1d2, p7[8)为FARua 2.文本替换  WtHInZ[_0x10a691(0x1d2, p7[8)](_0x305bd1, 0x2) 就等于 WtHInZ[FARua](_0x305bd1, 0x2) 3.方法替换  WtHInZ是一个字典值里面的key对应里各种方法或者文本key为FARua所对应的是一个方法如下 function (_0x4be905, _0x42316e) {return _0x4be905 * _0x42316e;} 可以看出也就是一个简单的两个数相乘所以WtHInZ[FARua](_0x305bd1, 0x2)  _0x305bd1*0x2。 4.最终替换 到这里就完成了对WtHInZ[_0x10a691(0x1d2, p7[8)](_0x305bd1, 0x2)的翻译。即WtHInZ[_0x10a691(0x1d2, p7[8)](_0x305bd1, 0x2) _0x305bd1*0x2  其中的_0x305bd1是一个变量名由上一步计算出来的不用管 这样一步步把需要的代码就还原出来了其实里面大部分代码是没用的就是为了混淆我们所以我们不用都翻译只要翻译自己感觉像的那几个方法就行。翻译完就是这样的 function setRet(_0x34d4ed) {var _0x10a691 _0xd750ee, WtHInZ {GIeQp: function (callee, _0xf9e2d4) {return callee(_0xf9e2d4);}, LYVKf: undefined, fOOLQ: function (_0x396e94, _0x39a709) {return _0x396e94 - _0x39a709;}, FARua: function (_0x4be905, _0x42316e) {return _0x4be905 * _0x42316e;}, ascvk: function (callee, _0x10b8fa, _0x4313da) {return callee(_0x10b8fa, _0x4313da);}, wqePU: function (callee, _0x1a7786) {return callee(_0x1a7786);}, dYcOv: guardret}_0x3a9f4b _0x34d4ed[substr](0x0, 0x8)time_num_plain _0x34d4ed[substr](0xc)_0x305bd1 parseInt(time_num_plain[substr](0xa));var _0x552e00 _0x305bd1 * 0x2 0x11 - 0x2encrypted x(_0x552e00[toString](), _0x3a9f4b)guard_encrypted btoa(encrypted);document[cookie] guardret guard_encrypted, window[location][reload](); } 可以看到guardret确实是在这个js中生成的并且生成的算法也比较简单就是一些加减乘除加上异或操作等生成后就可以使用guardret和guard去服务端换guardok了。由此这个破解反爬虫策略也就完成了 完整破解实战 下一篇文章我会实战破解两个这种反爬虫策略的网站并用java实现
http://www.dnsts.com.cn/news/234737.html

相关文章:

  • 个人电脑可以做网站服务器wordpress底部排
  • 网站如何进行网络推广网站备案拍照幕布
  • 合肥网站推广 公司网页制作论文范例
  • 嘉兴网站建设低价推荐企业年报系统
  • 公司网站建设制度佳匠网站建设
  • 成都市网站建设哪家好wordpress简单易懂的网站
  • 做网站提供服务器吗中小企业上市公司名单
  • 做甜品网站栏目手机网站开发语言选择
  • 做网站公司需要什么条件网站建设优化公司哪家好
  • 做二手货车都做什么网站wordpress怎么修改关键字
  • 如何做营销型网站凡科建站是永久的吗
  • wordpress 建网站东莞网站建设外包
  • 建设书局 网站中小企业网络工程建设
  • 网站开发的项目流程校园网网络设计
  • 域名向谁申请兰州新站seo
  • 网站制作一个人可以做吗wordpress 评论分页排序
  • 企业官网建站的流程室内设计师资格证书
  • 哔哩哔哩网站开发图片wordpress菜单选项如何链接
  • 没网站怎么做二维码扫描连接西宁市建设网站价格低
  • 岳阳市城市建设投资公司网站网页翻译器在线翻译
  • dw做网站怎么替换字体wordpress 煎蛋网插件
  • 福建省百川建设发展有限公司网站企业主页的特点包括
  • 设计和建设一个网站要多少钱中国建造师人才网官网
  • 虚拟机做实验的网站百度电脑版下载安装
  • 做外贸网站需要注意什么首都博物馆 网站建设
  • 深圳网站建设黄浦网络 骗钱专业团队什么梗
  • 问答网站建设怎么提问wordpress加统计代码
  • 多种语言网站服务器销售网站源码
  • 成品网站的安装教程做平面设计用哪个素材网站好
  • 惠州网站建设咨询dede响应式网站模板