前言

前阵子,无聊时打开了王者农药,鼓捣着一些活动,然后看看背包里的东西,当看着背包里 20 多个改名卡时陷入了沉思,心想:自己这个游戏昵称半年多都没改过了,就改一下昵称吧。但此时又不知道改成啥昵称,什么空白昵称、花样昵称的都玩过了,于是乎“苦思”一会儿后,决定改成一个不一样的昵称,真巧最近碰到了 SQL 注入,故……(大家懂的),于是乎豪掷一张改名卡,将自己的昵称改成了经典的 SQL 注入昵称。

image-20221102194927710

改完昵称后,自己悠哉悠哉的打着娱乐局,全然不知道接下来的王者七周年活动的一些“系列问题”。

网络错误!

过了几天,在近乎"没有预热"的王者七周年庆活动悄悄的开启了之后,自己登录上去,看看今年的活动力度有没有去年的力度相当。然后,当我打开了活动页,第一个跳出来的不是满满当当的活动,而是一句话:网络错误,请重新登录后再试~

image-20221102195553353

上图是活动开启了两三天后截的,可以看到王者星路和星辰证书活动都没有,活动页全部活动一个页面皆显示完了。

由于安卓区的号在手 Q1 区,活动一开始时心想:可能活动刚开始,手 Q1 区的数据还没计算完吧,就没在意了。但直到现在活动过了两三天后仍是如此,相关活动仍未开启,于是猜测是自己的手机原因(手机给 Root 了),检测到环境有问题或自己的操作改了某些设置,故为了逃过检查,隐藏 Root 、隐藏框架、隐藏模块应用等等措施皆用了,支付宝在这一通操作下都可以进行刷脸了,然而再次登录王者时,仍是这个提示,仍是那几个活动,活动也没增多……

卸载王者

本着问题出在了自己手机上,自己还没意识到主要问题时,于是将王者卸载了重新安装,安装后第一时间将所有的隐藏手段都用上了,这才悠哉悠哉的点开游戏,随着一声 TiMi 后,游戏开始下载额外的资源。待资源下载完后,再次登录手 Q1 区的号进入了游戏,便打开了活动页,仍然是网络错误提示……

这下就彻底激起了我的好奇心了,就退出了手 Q1 区的号去登录上微信区的号,发现微信区的活动全都显示出来了,然后退出微信区,登录了手 Q 的另一个区,活动页正常显示,这才慢慢打消了是我手机环境的问题,猜测是我号的问题了,这时我也在室友手机上登陆了一下 手 Q1 区的号,也是同样的“网络错误”提示,便确定是自己号的问题了。

昵称啊昵称

接下来简单的分析排查,初步定位到了最近修改的游戏昵称上,因为昵称的字段对防火墙来说太“敏感”了,导致相关的请求被阻断了,也就无活动数据下来,手游接收不到活动的数据,也就不显示相关活动了。

于是在晚上,自己洗完澡在床上研究倒腾了起来,打开手机上的抓包工具,打开王者,相关设置一气呵成,便抓起王者的请求包分析起来,在打开活动页时,有一个明显的 API 请求数据包,包里的数据是与活动相关的,但是该包的服务器端的响应代码是 501 ……

image-20221102202335283

计算机世界中, 5xx 的响应代码在 HTTP 的状态码中默认属于服务器端的问题。故打开包记录,查看服务器的响应数据,发现给我返回的是腾讯的防火墙页面:

image-20221102202510779

但我分析请求内容时,发现它携带了我的游戏昵称,然而我的昵称对防火墙来说太过敏感,被阻断请求也是情有可原

image-20221102202827963

为了证明一下是该昵称字段的请求致使的阻断,故对该请求包进行了编辑重发,替换了"敏感"的游戏昵称字段为正常字段值,果其不然,服务器端返回了正常的内容数据,状态码也是 200 。于是得到真相的我今晚就先折腾到此,去睡觉了~

睡觉睡觉,狗命要紧

对不起,我骗了你

在昨晚已完全确定了是游戏昵称导致的请求阻断,但是离我下一次修改昵称还有 10 天左右,10 天一过,星辰证书活动早没了 -_-! 。

既然现在改不了昵称,活动无法打开,那就小小发挥下,思绪一转,便有了应对之策,那就是修改请求数据了,将敏感字段修改成正常内容,防火墙一看是正常的请求,也就放过了,同时下发活动开启的数据,本地接收到返回的活动数据后,也就加载了活动,从而使得参与活动(只要服务器端不严格校验游戏昵称字段,那就可以绕过)。

说干就干,打开 BurpSuite ,将代理整上(经测试直接设置代理可能抓包不全或抓不到农药的包,故将手机使用 Root 设置成透明代理方式 + Fiddler + BurpSuite,其中 BurpSuite 设为 Fiddler 的上游服务器),然后上号!

上号,BurpSuite

这时去 BurpSuite 的代理---选项处找到搜索与替换,将自己 Request 请求包里 Body 里的游戏昵称字段值替换成一个正常的字段值,再将服务器返回的 Response 数据包 Body 里的被“修改替换”了的游戏昵称值换成自己的原有的游戏昵称值(前面已经过简单测试,服务器返回数据字段的值是被自己修改了的值,故需要替换回来),以至于本地数据校验通过,最后设置结果如下:

image-20221102205039392

这时打开王者,打开活动页,没有了网络错误的提示了,而 BurpSuite 的自动替换也正常操作着,这时去活动页打开王者星路活动,成功开启活动,附一张聊天图:

image-20221102205429603

然而接下来无论怎么点击活动页,就是没有星辰证书活动,于是先关闭代理,注销登录,重新登录王者,在进入游戏前开启代理,让 BurpSuite 在进游戏前对昵称字段的值进行替换修改,于是进入游戏后,星辰证书活动也成功开启:

image-20221102205927377

再经历此次重新登录后,之前没有加载出来的活动此时也都成功加载了,至此王者的所有活动皆显示正常并可参与其中。

然而,经过测试,后续要继续参与活动的话,必须要将代理开着实时对请求包的数据修改替换,才能参与,代理一关,又显示“网络错误,请重新登录后再试~”字样了,但是这次的目的就是领取一个 7 周年的玩家称号,其余活动无就无了吧,溜~

End

本文标题:记一次王者荣耀的昵称引发的那些事

本文链接:https://www.isisy.com/1393.html

除非另有说明,本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

声明:转载请注明文章来源。

最后修改:2022 年 11 月 05 日
如果觉得我的文章对你有用,请随意赞赏