Sun的逆向之路(二)——FiF口语训练的刷分剖析

阅读: 评论:0

Sun的逆向之路(二)——FiF口语训练的刷分剖析

Sun的逆向之路(二)——FiF口语训练的刷分剖析

  闲来无事看了看FiF口语中一些Task的排行榜,翻着翻着意外发现了一个101分的榜首,按理来说满分才只有100分,因此猜想这个分数一定是被动过手脚的,于是来了兴致,从POST请求与APK反编译两个角度分别尝试破解FiF。


方案一:APK反编译

  将FiF的apk文件拖入AndroidKiller,发现加载失败,于是拖入jadx,发现原来上了奇虎的加固壳,考虑到只是把玩娱乐,脱壳会大大增加复杂性,于是暂时放弃反编译的想法。

方案二:POST请求拦截

0x01 配置Fiddler

  因为自从用了新电脑就没有抓过包了,因此还是要做一些配置的。Java Jdk和环境变量的配置工作在此掠过了,但考虑到这次Fiddler的配置过程还有点不同寻常,所以这里做一下记录。
  运行Fiddler提示8888端口被占用了,询问是否随机取端口。考虑到不使用8888可能后面会造成一些不必要的麻烦,于是打开cmd输入netstat -ano|findstr “8888”,发现原来端口被PID为20348的应用占用了,打开任务管理器的详细信息选卡,发现是Matlab,于是结束进程。

  随后重启Fiddler,发现没有端口占用提示了。再次查看8888端口的状态,可以看到这个端口已经成功被Fiddler监听。接下来在手机浏览器访问“IP:8888”,安装Fiddler证书即可,IP可通过控制台ipconfig指令查看。至此环境配置结束。

0x02 POST请求拦截

  手机端对应设置好HTTP代理后,打开FiF,发现Fiddler这边的请求很杂乱,这是因为电脑和手机上所有的网络请求都被显示了,于是配置过滤器,只显示抓取Host为m.oral.fifedu的请求,同时通过命令al.fifedu来设置请求断点。随便进入一个Task,这里我进的是四级口语模拟题2的Task1。随便读两句。

  随后提交,在Fiddler上可以看到请求已经被拦截下来了,

  对应在右侧的WebForms中可以看到对应的jasonobject:

  {"recordPath" : "2811000026000000971/cc253a5178c44088b736bcb9386f324e/e7ba561752f34de683f6435e47ced8f6/t/0_0.mp3","score" : "0","ansDetail" : "word#0","learn_time" : "2","questionId" : "e7ba561752f34de683f6435e47ced8f6#0#0","accuracy" : "0","fluency" : "0","complete" : "0"}
]

  显然score代表的就是分数,我们将其修改为101,在Fiddler中单击Run To Completion放行修改过的请求,手机端对应有了相应,提示挑战失败,但我们返回列表并刷新,发现实际上数据已经上传成功并在排行榜上显示了。至此FiF口语的刷分就顺利实现了。

0x03 小结

  FiF口语虽然对应用加壳处理了,但是却忘记了对网络请求进行安全加固,导致了刷分的可行性。希望FiF口语官方对请求参数进行加密或组合加密,或利用sign值算法验证请求的合法性,尽快更新应用并修复此漏洞。

本文发布于:2024-02-04 09:44:04,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170704357654470.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:之路   口语   刷分   Sun   FiF
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23