js逆向不用扣代码系列(4)—3分钟快速破解猿人学第10题(重放攻击对抗之偷梁换柱)

网址:http://match.yuanrenxue.com/match/10

在这里插入图片描述

1.加密参数分析

打开控制台,直接被反调试了
在这里插入图片描述
调试堆栈
在这里插入图片描述
花里胡哨的, 不用管,再往上翻翻看看
在这里插入图片描述
这不就是著名的某x的变种吗,过掉反调试,抓下包看看
在这里插入图片描述
在这里插入图片描述
发现加密参数为m,再看这长度,基本坐实某x变种,到这已经基本确认几分钟内能拿下本题了

2.工具准备:SwitchyOmega,mitmdump

两个工具使用大概介绍下

SwitchyOmega新建情景模式,端口设置为mitmdump的默认端口8080,如下图所示
在这里插入图片描述
mitmdump使用前需要先下载证书,不明白的自行百度,然后新建一个py文件,命名为mitm_demo.py,内容如下:

# -*- coding:utf-8 -*-
def request(flow):
    pass

cmd打开文件所在目录,执行mitmdump -q -s mitm_demo.py,然后SwitchyOmega插件选择mitmdump,地址栏输入百度地址,如果能够正常访问,则证明两个插件使用正常。

最终确认能够使用的效果图如下
在这里插入图片描述

3.偷梁换柱

截获第一页或第二页或第三页的m参数和headers参数给第四页、第五页使用,更改mitm_demo.py为下面代码

# -*- coding: utf-8 -*-
import re
import requests


url_list = []


def request(flow):
    if 'api/match/10?page' in flow.request.url:
        url = flow.request.url
        if url not in url_list:
            url_list.append(url)
            m = re.findall('&m=(.+)', url)[0]

            headers = flow.request.headers
            new_headers = {}
            for k, v in headers.items():
                new_headers[k] = v

            new_headers['User-Agent'] = "yuanrenxue.project"
            page_4_url = 'http://match.yuanrenxue.com/api/match/10?page=4&m={}'.format(m)
            print(page_4_url)
            resp = requests.get(url=page_4_url, headers=new_headers)
            print(resp.text)
            flow.kill()

下面我们重新打开第10题地址,随便点击前三页中的一页,查看cmd内的打印内容,实际为访问第四页的响应,如下:
在这里插入图片描述
同理可以获取第五页数据。

总结:不要为了做题而做题,思路能够扩展到实际项目中才是真本领
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值