栏目导航

侠客岛

【JS 逆向百例】cnki 学术翻译 AES 加密分析

更新时间:2021-11-22

  本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!

  本期逆向素材来源于K哥爬虫交流群里某位群友的求助,目标是 cnki 学术翻译,粉丝想实现两个功能:1、突破英文1000个字符的限制;2、逆向加密过程。

  来到翻译首页,抓包定位到翻译接口,可以看到 Request Payload 里,待翻译文本会被加密处理,如下图所示:

  这里如果直接搜索关键字 words,会发现结果非常多,不太好找,注意到 Payload 参数里还有个 translateType,那么就可以直接搜索 translateType,因为这两个参数一般都是挨着的,当然也可以使用 XHR 断点的方式来找,只不过麻烦一些,搜索结果都在 app.9fb42bb0.js 里,注意到最后一个结果里有 encrypto,加密的意思,基本上就是加密的地方了:

  知道了加密算法,key 等关键参数,那么直接引用 crypto-js 模块来实现就 OK 了,JavaScript 代码如下:

  粉丝还有一个问题就是字符数限制问题,看能不能突破,实测英文限制1000字符,中文限制500字符,如下图所示:

  这种限制其实大概率不仅仅是前端的限制,服务端应该也是有限制的,我们可以携带超过500字符的中文去请求一下,前面的字符是“测试1”,最后三个字符是“测试2”,此时已超过了500个字符,我们看到翻译结果里并没有出现 Test 2,所以想要翻译很多字符串,只能将其分割成几份来处理了。人气漫画《火影忍者》的精神续作《火影博人传



友情链接:

Copyright 2018-2021 主页 版权所有,未经授权,禁止转载。