某版本瑞数解决方案-爬虫

  • 前言
  • 工具
  • 分析过程
    • JS获取
    • js代码分析
  • 附代码

前言

本次采集的目标站点是江苏省农村产权交易信息平台,网址http://www.jsnc.gov.cn/jygg/tzgg/index.html。没想到这么小的网站都上瑞数了,爬虫真是越来越难了。回归正题,该网站的防御机制是在cookie上做了手脚,cookie名称为YwnBCHQI8xgWI5a

工具

  1. Chrome浏览器(方便调试)
  2. Node.js开发环境(JS代码运行)
  3. Python开发环境
  4. VSCode(代码阅读)

分析过程

JS获取


这段代码就是获取产生cookie的代码了,进去打断点调试,发现我还是想的太简单了,每次请求这个代码链接。代码都是动态的,打的断点都乱掉了。通过反复观察,代码内容都是一样的,只不过就是打乱了顺序而已。不像高级的版本,比如托福这个网站,版本比较高级。既然打乱了顺序,咱们就把代码复制下来自己搭建一个web服务慢慢调试。

  • 这里使用了 python -m http.server 这个功能,只要当前目录下有index.html文件即可,自己复制index.html 以及a6a1a7js文件,需要修改index.html 中js文件的路径。

js代码分析

  1. 该代码开始首先会将一些方法,对象进行混淆。
    var _$lz;var _$lE = window;var _$ks = {};var _$lf = Math;var _$bV = Math.ceil;var _$go = String;var _$kx = _$go.fromCharCode;var _$lD = document;var _$ac = location;var _$lp = _$lE.Array;var _$cB = eval
  1. 定位到 cookie生成的函数
    function _$kP() {if (_$jb - _$la() < 0) {return _$kN;}// cookie名称 YwnBCHQI8xgWI5avar _$a7 = _$gT();// kvar _$dh = _$ks._$gc();var _$iC = _$ai();var _$gi = _$h1();// 该方法会验证当前浏览器环境。以及计算出浏览器的唯一指纹var _$c1 = _$aU();// 拿着计算出来的一堆参数再去计算最终cookie值 哈哈哈好绕啊。var _$hp = _$dh + _$gI(_$gi[_$ks._$h5()](_$eO(_$c1, _$iC)));// 设置cookie_$ja(_$a7, _$hp, 7, _$ks._$gN(), _$ks._$gN());// cookie 名称和值进行拼接_$kN = _$a7 + _$ks._$fP() + _$hp;return _$kN;}
  1. 找到入口函数就好办了,扣出来用Node.js 执行
  2. 计算cookie 中还有一个坑就是他会根据js中的 _$g0 函数返回的一堆字符串的进行计算
    function _$g0() {// 其实是一些网站的信息,加密了。// 解密出来的值为 "`cookieKey:BTvo5JQ7qt6M3G1jLKRleWXwFuJvWI20fJ.j_LnK1E7`blackBlock:lpkqiYeztiqEjarN.AU.jG`refreshInterval:10`protectedSites:;http://221.226.99.21:80;http://221.226.99.22:80;http://221.226.99.23:8000;http://www.jsic.gov.cn:80;http://www.jsic.gov.cn:8000;http://www.jsnc.gov.cn:80;http://www.qunzh.com:80;`resPath:/mRnE3GFBhtb7/`tokenTimeout:1800`tokenUsedThreshold:50`switchFlags:06c"return "ujmyyuso3oaVx_5/6r6.n=)qJa:N6L5/5zT)7QrJ=u=ks+U1L?3swzOjlvkmu*vymuV-k6m6_0qLz7~8N8l2]+<b/j|op|o}r1x~o|^kvVMLjz|y~om~on;s~o}VWr~~zVKKNNMJNNRJUUJNMVTLWr~~zVKKNNMJNNRJUUJNNVTLWr~~zVKKNNMJNNRJUUJNOVTLLLWr~~zVKK___Jt}smJqy^JmxVTLWr~~zVKK___Jt}smJqy^JmxVTLLLWr~~zVKK___Jt}xmJqy^JmxVTLWr~~zVKK___J{]xbrJmywVTLWj|o}8k~rVKw:x-O/.*r~lSKj~yuox<swoy]~VMTLLj~yuox=}on<r|o}ryvnVQLj}_s~mr.vkq}VLPR";}
  1. 到这里算是差不多的坑都踩完了吧。最后就是调js哪里不行补哪里。

附代码

链接 https://github.com/xiaoweigege/botgate-RuiShu-Spider

有什么问题需要探讨的可以 + qq_vx: 240942649

某版本瑞数解决方案-爬虫相关推荐

  1. 爬虫破解瑞数js逆向动态混淆

    巧用selenium破解瑞数js逆向 实战站点:湖北省生态环境厅:http://sthjt.hubei.gov.cn/site/sthjt/search.html?searchWord=%E7%A2% ...

  2. 爬虫漫游指南:瑞数的反调试陷阱

    爬虫漫游指南 瑞数的反调试陷阱 遇上有反爬的网站,第一反应肯定是要先打开开发者工具调试一波,于是,反爬工程师们就在此处设下了第一道防线.初级一点的,例如监听F12,禁用鼠标右键,作为防线的一部分,这些 ...

  3. 瑞数信息的“狩猎术”

    科技云报道原创. 远古时代,弱小的人类常遭猛兽攻击,为了生存人类转身成为狩猎者.面对猛兽,人类学会了制作各种狩猎武器,发展出更为高级的狩猎策略,或围猎,或驱赶,或设陷阱诱惑,将曾经威力无比的猛兽变成了 ...

  4. 【​观察】以双引擎动态技术破局,瑞数信息再定义传统WAF市场

    申耀的科技观察 读懂科技,赢取未来! 毫无疑问,今天的网络安全已进入无边界阶段,安全威胁.安全危机无处不在.但传统的安全防御手段,却始终无法跟上安全威胁发展的速度,特别是对中小企业而言,其所面临的安全 ...

  5. js逆向之补环境过瑞数5.0某银河证券,你还在拿某药监局做案例?该换换啦.

    网址: aHR0cDovL3d3dy5jaGluYXN0b2NrLmNvbS5jbi9uZXdzaXRlL2Nncy1zZXJ2aWNlcy9zdG9ja0ZpbmFuY2UvYnVzaW5lc3NB ...

  6. 瑞数5维普期刊js逆向

    网址首页http://lib.cqvip.com/ 瑞数5跟瑞数4区别不大,检测的东西多了一点,不会补的话可以看前面的瑞数4补环境.瑞数五有几个小版本,加密入口隐藏了,正则匹配直接能找到入口.\S{4 ...

  7. JS逆向之补环境过瑞数详解

    JS逆向之补环境过瑞数详解 "瑞数" 是逆向路上的一座大山,是许多JS逆向者绕不开的一堵围墙,也是跳槽简历上的一个亮点,我们必须得在下次跳槽前攻克它!! 好在现在网上有很多讲解瑞数 ...

  8. JS逆向瑞数4算法专题一

    遇到无限Debugger怎么办 1.选择这个Never pause here 就可以了 或者 点击第三个 里面填上False 都是可以的 2. 使用本地替换 就可以了 3. 当我们遇到这种 异步的 就 ...

  9. 小试牛刀-利用AST平坦化一段瑞数代码

    文章目录 前言 第一式:鬼影迷踪 第二式:森罗万象 处理逻辑 Step1-处理if...else if... Step2-补全if...else... Step3-平坦化 小结 参考文章 前言 最近一 ...

最新文章

  1. 计算机三维作品说明,计算机三维技术
  2. oracle账户锁定解决方法
  3. [vue] vue-loader是什么?它有什么作用?
  4. Android input keyevent
  5. 一点一点学习Ubuntu
  6. 拓端tecdat|R语言GGPLOT2绘制KOLMOGOROV-SMIRNOV KS检验图ECDF经验累积分布函数曲线可视化
  7. plusgantt的项目管理系统实战开发最全课程
  8. c语言单片机秒表程序,单片机秒表程序
  9. 2018我们讲一下百度云BAE专业引擎的使用
  10. shift键计算机功能,shift键功能有哪些 shift键有哪些功能【详解】
  11. 北漂四年,25K,程序员,我依然单身!
  12. Java IO流详解和常用流的使用
  13. python输出课程表
  14. android 程序题期末,Android应用开发期末考试题
  15. IPFS-Cluster 集群安装与验证测试
  16. 【论文速递】-2022-金融研究-系统性金融风险文献综述:现状、发展与展望
  17. 滤镜功能针的萌翻了!Snapchat为狗狗配戴眼镜
  18. PVE+集客AC+K2T-AP
  19. 消息提示类控件使用之Toast(吐司)的简单使用
  20. 代码坏味道之代码臃肿

热门文章

  1. 如何把PPT文件压缩变小
  2. 【解决方案】智慧国土管理靠什么?EasyCVR综合性视频监控管理系统成支撑
  3. 单仓库设施选址决策方法(重心法,C语言代码)
  4. 配色分享|梵高的薄荷绿
  5. Web应用程序 [/XXX_war_exploded] 注册了JDBC驱动程序 [com.mysql.cj.jdbc.Driver],但在Web应用程序停止时无法注销它。
  6. 神兽归笼,又是一波斗智斗勇?这款QLED电视机让你带娃更省心
  7. DRAM的一些电压参数VDD VDDQ VPP剖析
  8. 古希腊神话故事:菲勒美拉
  9. java.io.InvalidClassException异常解决
  10. springboot @Value 读取数组,List, Map等配置文件