JS逆向——借助playwright实现逆向

原理:

1.修改js文件,将加密方法设定为全局变量并调用。

2.使用playwright替换浏览器加载的js文件

3.在python中通过playwright实现js注入获取加密结果

实现:

以下面链接为例:

Scrape | Movie

1.首先,要知道页面的数据是通过ajax请求获取的,所以点击页码的时候,会有network数据

然后找到数据接口,当然也可用通过搜索页面上的数据来找

 url如下:https://spa2.scrape.center/api/movie/?limit=10&offset=20&token=MWIxNDMzYjQ3MzVkMzJiOTkxYzQ2OWVmMjhmYmYwYTFkZTdmZGNkMCwxNjg1NjI5OTQw我们的目的是用代码实现加密数据token的生成

2.在源文件中添加XHR断点,从而找到发起请求的位置

 3.通过查看堆栈信息,我们可以找到参数由无到有的地方,e就是token,也是在这里生成的,其生成过程传入了this.$store.state.url.index跟a ,通过查看得知this.$store.state.url.index就是/api/movie而a就是页码*10

 我们再追踪下i['a']方法,查看其中的FunctionLocation就是i['a']方法实现的位置

不难看出,此处使用了base64加密和sha1加密(如果按照以前的思路,需要用python代码去模拟加密生成加密数据)

 接下来我们要做的就是将i['a']方法定义为全局方法(实现全局挂载),修改js文件,插入

window.crypt = Object(i["a"]);

这样我们可以通过js注入来调用加密方法。

右键文件-在边栏中显示,可以查看文件位置:/js/chunk-10192a00.243cb8b7.js

playwright支持js文件替换,/js/chunk-10192a00.243cb8b7.js是源文件路径,chunk.js是我们本地路径

page.route(
    "/js/chunk-10192a00.243cb8b7.js",
    lamada route:route.fulfill(path="./chunk.js")
)

这样加载js文件时会被替换我们本地的js.

page是playwright的一个页面。可以通过如下实现js注入

offset = "90"
def get_token(offset):
    result = page.evaluate('''() => {
        return window.crypt("%s","%s")
    }'''% ('/api/movie',offset))
    return result

这样,result就是我们想要加密生成的token,只需要实现文件替换和js注入,就可以实现逆向

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
Playwright是一个用于浏览器自动化和测试的工具库,可以在各种浏览器上模拟用户的操作。通过使用Playwright,可以实现浏览器辅助逆向工程。要使用Playwright进行逆向,首先需要安装Playwright库和浏览器内核。可以使用以下命令进行安装: 引用: pip3 install playwright 引用: playwright install 安装完成后,Playwright会自动安装Chromium、Firefox和Webkit等浏览器内核,供Playwright直接使用。 在使用Playwright进行逆向的过程中,可以通过Request Interception功能来修改源码。可以利用Request Interception功能替换任意文件,从而改变源码的行为。 通过以上的步骤和功能,可以实现对浏览器的逆向操作,以便进行更深入的分析和研究。 请注意,逆向工程是一项复杂的技术,需要具备相关的知识和经验。在进行逆向操作时,请确保遵守法律和伦理规范,不要进行非法活动。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [简单方便的 JavaScript 逆向辅助模拟方法](https://blog.csdn.net/u010467643/article/details/117137130)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值