文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

以羊了个羊为例,浅谈小程序抓包与响应报文篡改

2024-12-01 15:18

关注

本来是想以天眼查小程序作为抓包主体的,但是这两天羊了个羊实在是太火了,没办法,咱们也来追一追热点,今天我们的目标程序就是羊了个羊了!

而且从9月20号的某个时刻开始,羊了个羊的接口正式进入到V2时代,也就是相关的通关接口进行了加密处理,请求时需要携带参数MatchPlayInfo,而该参数又是通过JavaScript的混淆代码来处理的,所以导致一键通过程序都失效了,那么咱们只能另寻出路了,修改 response 响应消息的方法也就应运而生!

MitmProxy 的使用

我们这里使用的抓包程序是 MitmProxy,这是一个用 Python 编写的工具,其安装使用简单,而且通过与自定义的 Python 脚本相结合,可以非常方便的篡改 request 和 response 内容

安装配置 MitmProxy

安装非常简单,直接 pip 即可

pip install mitmproxy

完成安装之后,我们就可以通过命令 mitmdump  来启动了

可以看到,以上面的命令启动之后,会在本地启动一个监听了8080端口的程序,这个就是我们的抓包代理进程了

设置手机代理

这里我们需要保证手机与电脑处于同一个 WiFi 网络之中,我们通过命令 ipconfig 获取电脑的 IP 地址

然后我们进入手机的无线局域网设置当中,选择当前连接的 WiFi,进行 HTTP 代码设置

在代理设置中,服务器填写电脑的 IP 地址,端口填写 8080。

这样代理就设置好了。

安装证书

为了让手机信任我们的代理,还需要安装证书,通过手机浏览器访问地址:http://mitm.it/。

我们选择对应的设备证书下载,比如 Apple 证书。

下载完成后,通过设置,“已下载描述文件”进入安装即可。

至此,MitmProxy 以及手机侧的配置都已经完成,我们可以进行抓包操作了。

抓包操作

我们通过手机打开《羊了个羊》小程序,如果我们运行 mitmdump 命令的界面有数据包打印,那么就说明我们的配置是成功的

下面我们来编写 Python 脚本,来修改 response 内容。

修改 response

通过抓包信息分析,我们知道返回地图的接口是 map_info_ex 接口,其响应消息体的内容为:

{"err_code":0,"err_msg":"","data":
{"map_md5":["046ef1bab26e5b9bfe2473ded237b572","046ef1bab26e5b9bfe2473ded237b572"],
"map_seed":[3622853803,3053757364,32667028,3621470055]}}

我们只需要把 map_md5 中的第二个值改为与第一个值一致就可以达到第二关的难度与第一关一样的效果,下面就开始干吧~

对于 MitmProxy 工具而言,我们有如下事件可以截取。

针对 HTTP 生命周期的事件:

这里我们主要用到了响应事件,代码如下

def response(flow):
tmp_txt = {"err_code":0,"err_msg":"","data":
{"map_md5":["046ef1bab26e5b9bfe2473ded237b572","046ef1bab26e5b9bfe2473ded237b572"],
"map_seed":[3622853803,3053757364,32667028,3621470055]}}
if "map_info_ex" in flow.request.url:
info(str(response.text))
print(type(tmp_txt))
print(type(json.dumps(tmp_txt)))
response.set_text(json.dumps(tmp_txt))
info(str(response.text))

我们判断请求 url 中是否包含 map_info_ex,如果包含,则篡改 response 信息。

下面我们以如下命令重新启动代理程序。

这样,当我通过第一关之后,进入第二关时,其难度还是与第一关一样的,怎么样,开心吧!

当然我们还可以篡改其他接口,比如 rank 接口,话题接口等等,都可以轻松达到我们想要的目的,就不再一一赘述了

好了,这就是今天分享的全部内容。

来源:萝卜大杂烩内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯