​一、js逆向简介
我们都知道,作为一个爬虫程序员来说,我们就是要有抓取各种网站公开数据的实力和能力,然而,随着网站数据的自我安全保护,大部分网站就开始在前端JS代码上做出相对的反爬措施。到目前为止,对于JS代码的安全保护方式有很多种。几年前,小网站大部分还都是静态为主,中型网站会掺杂少量的原生加密,大网站也只是在原生加密上做一些变种,加密的代码不是没有,不过也都是一些变量的加密(常规的一些加密算法:MD系列、AES系列、3DES系列、RSA系列等等)。但是这些简单的JS保护很难保持网站的安全性,于是前端开发者借助H5的崛起,开发了很多工具用来进行语法转换,浏览器兼容,而这些工具大部分都是AST的产物。直到现在 ,js攻防成为了目前市场的一大看点。那么,现在的爬虫程序员就不只是说会一些xpath等简单的爬虫就行了,掌握js逆向本领也是势在必行
二、教学实战(基础篇)
那么我们今天就以**学第12题的入门级别的js加密搞起。
点击翻页,可以看到数据就在请求接口里面
然后查看接口信息,就会发现两个动态请求参数,分别是page和m
当然,page我们可以直接循环请求时生成,但是m的话,给我们第一感觉就是做了加密或者编码处理。那么到底是什么加密方式或者是什么编码方式,需要我们做进一步分析
我们先全局搜索一下参数m或者m:,我们会发现会搜出来好多,毕竟该加密参数只是一个字母
所以我们采用启动器启动进入js文件,我们点击如下。可以清晰地看出来数据响应的大概堆栈结构顺序,那么这么多的栈,我们要点哪个呢?首先,我们知道jquery是属于js官方的一个包,网站也很少会在这里面做修改,所以我们可以先排除这些栈,那么就剩以12开头的栈了,也就是说这几个栈都是在12.js这一个js文件中的。所以,我们点击request,可以直接跳到最后请求时的数据结果
利用启动器启动的方式,我们进到了加密的js文件中,如图。我们在733行打上断点,并点击翻页,就会在最终请求接口前停下来,那么我们就可以看到他所请求时的参数值page和m,如图
可以很清楚的看出来,page参数就是你要加载的页数,而m参数则是经过了一个btoa方法生成。并且m进行btoa前的原值是'yuanrenxue'和page页数两个字符串的拼接值。那么,我们就把该网站的参数加密过程做好了分析,接下来 ,我们就需要模仿网站加载参数的形式去生成加密参数,并且发起请求和响应数据结果
我们知道,js中的btoa方法也就是python中的base64编码,那么,以下实现程序如下
[Python] 纯文本查看 复制代码
请求结果如下
那么,这道入门的js加密就被我们轻松攻克了
我们都知道,作为一个爬虫程序员来说,我们就是要有抓取各种网站公开数据的实力和能力,然而,随着网站数据的自我安全保护,大部分网站就开始在前端JS代码上做出相对的反爬措施。到目前为止,对于JS代码的安全保护方式有很多种。几年前,小网站大部分还都是静态为主,中型网站会掺杂少量的原生加密,大网站也只是在原生加密上做一些变种,加密的代码不是没有,不过也都是一些变量的加密(常规的一些加密算法:MD系列、AES系列、3DES系列、RSA系列等等)。但是这些简单的JS保护很难保持网站的安全性,于是前端开发者借助H5的崛起,开发了很多工具用来进行语法转换,浏览器兼容,而这些工具大部分都是AST的产物。直到现在 ,js攻防成为了目前市场的一大看点。那么,现在的爬虫程序员就不只是说会一些xpath等简单的爬虫就行了,掌握js逆向本领也是势在必行
二、教学实战(基础篇)
那么我们今天就以**学第12题的入门级别的js加密搞起。
点击翻页,可以看到数据就在请求接口里面
然后查看接口信息,就会发现两个动态请求参数,分别是page和m
当然,page我们可以直接循环请求时生成,但是m的话,给我们第一感觉就是做了加密或者编码处理。那么到底是什么加密方式或者是什么编码方式,需要我们做进一步分析
我们先全局搜索一下参数m或者m:,我们会发现会搜出来好多,毕竟该加密参数只是一个字母
所以我们采用启动器启动进入js文件,我们点击如下。可以清晰地看出来数据响应的大概堆栈结构顺序,那么这么多的栈,我们要点哪个呢?首先,我们知道jquery是属于js官方的一个包,网站也很少会在这里面做修改,所以我们可以先排除这些栈,那么就剩以12开头的栈了,也就是说这几个栈都是在12.js这一个js文件中的。所以,我们点击request,可以直接跳到最后请求时的数据结果
利用启动器启动的方式,我们进到了加密的js文件中,如图。我们在733行打上断点,并点击翻页,就会在最终请求接口前停下来,那么我们就可以看到他所请求时的参数值page和m,如图
可以很清楚的看出来,page参数就是你要加载的页数,而m参数则是经过了一个btoa方法生成。并且m进行btoa前的原值是'yuanrenxue'和page页数两个字符串的拼接值。那么,我们就把该网站的参数加密过程做好了分析,接下来 ,我们就需要模仿网站加载参数的形式去生成加密参数,并且发起请求和响应数据结果
我们知道,js中的btoa方法也就是python中的base64编码,那么,以下实现程序如下
[Python] 纯文本查看 复制代码
import requestsimport base64 def btoa(text): return base64.b64encode(text.encode('utf-8')).decode('utf-8').replace("=", "%3D") def myspider(pages): total_count = 0 for page in range(1, pages+1): text = "yuanrenxue" + str(page) btoa_str = btoa(text) print(f"第{str(page)}页的m值为{btoa_str}") # 请求 headers = { 'User-Agent': 'yuanrenxue.project', } cookies = { 'sessionid': 'lnhlwq35v5bgtcjvk6stu98ku9e5g0bo', } url = f"https://match.yuanrenxue.com/api/match/12?page={str(page)}&m={btoa_str}" response = requests.get(url, cookies=cookies, headers=headers) print(response.text) # 解析 res_json_list = response.json().get('data', '') if res_json_list == '': continue per_page_count = 0 for item in res_json_list: value0 = item.get('value', '') value = 0 if value0 == '' else int(value0) per_page_count += value print(f"第{page}页的和为:{per_page_count}") total_count += per_page_count return total_count if __name__ == "__main__": total_count = myspider(5) print(f"五页数字总和为:{total_count}")
请求结果如下
那么,这道入门的js加密就被我们轻松攻克了
标签:
JS逆向基础实战
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“JS逆向基础实战”评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新动态
2024年11月24日
2024年11月24日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]