hephyr / UJN-Lib-Seat-API

济南大学图书馆座位预约系统API
Apache License 2.0
66 stars 17 forks source link

新版本APP逆向讨论issue #19

Open GhostLee opened 5 years ago

GhostLee commented 5 years ago

新版本的APP使用了Flutter进行开发,目前我找到的信息如下:

本人时间精力有限,请有能力实现的朋友一起进行逆向,将分析结果添加到该issue下.

hephyr commented 5 years ago

感谢提供信息,采用透明代理的方式也无法抓包?

GhostLee commented 5 years ago

感谢提供信息,采用透明代理的方式也无法抓包?

没做测试,😂你要是有空的话做一下,麻烦贴上抓包结果

hephyr commented 5 years ago

新版 APP 添加了 SSL Pinning 来防止抓包,破解后抓包发现后台接口并没有发生什么变化。

GhostLee commented 5 years ago

新版 APP 添加了 SSL Pinning 来防止抓包,破解后抓包发现后台接口并没有发生什么变化。

API版本没有变更,而且我在逆向APK时发现了检查违约记录的API。 检查参数或请求头你有没有发现有什么变化? -57897d06a5bb11bf.png

hephyr commented 5 years ago

等明天旧接口无法使用后再弄

hephyr commented 5 years ago

HTTP 头部多了 x-hmac-request-key x-request-id x-request-date,应该就是进行了签名认证。

xsh857104167 commented 5 years ago

之前还在嘲笑,这么垃圾连个加密都没有,这下倒好了。最近没空搞这个呀!

GhostLee commented 5 years ago

HTTP 头部多了 x-hmac-request-key x-request-id x-request-date,应该就是进行了签名认证。

能不能发我一下你抓到的明文结果,我方便对比查源代码,尽可能要两到三个api的请求过程,麻烦了

GhostLee commented 5 years ago

关于https校验的相关信息可以看这里Dio证书校验

yukiiiteru commented 5 years ago

抓包还是挺容易的吧,电脑开个Android模拟器,然后上Wireshark,抓到的都是TLS包,在8443端口,登录过程只访问了一次HTTP但是404了

GhostLee commented 5 years ago

抓包还是挺容易的吧,电脑开个Android模拟器,然后上Wireshark,抓到的都是TLS包,在8443端口,登录过程只访问了一次HTTP但是404了

所以明文请求体解出来了吗

hephyr commented 5 years ago

capture.zip

hephyr commented 5 years ago

抓包还是挺容易的吧,电脑开个Android模拟器,然后上Wireshark,抓到的都是TLS包,在8443端口,登录过程只访问了一次HTTP但是404了

签名不对,客户端会拒绝响应

yukiiiteru commented 5 years ago

请求没解出来,但是看你们说接口没变,如果是这样的话我觉得只要搞到证书的话,直接在原来代码上套一层加密就能用了吧

GhostLee commented 5 years ago

别搞了,dart产物是arm代码,逻辑短时间弄不出来,剩下的只能靠猜了

hafrans commented 5 years ago

抓包已经解决

API确实没啥变化,响应包带了个400,不知道是啥问题,八成是我写的BUG。

hafrans commented 5 years ago

其他的都不重要,重要的是那个hmac

FIlN commented 5 years ago

官方说微信端预约不受影响,是不是可以在微信上还可以?

GhostLee commented 5 years ago

微信预约是在API的外层套了个小程序

FIlN commented 5 years ago

微信端也已经不行了。。

FIlN commented 5 years ago

怎么这里没动静了,你们搞的咋样了兄弟们

tensorflowerx commented 5 years ago

https://www.52pojie.cn/forum.php?mod=viewthread&tid=838967&page=1#pid23155977

这个逆向我看着挺像的...有没有参考价值

这个是Android的逆向,如果是android的逆向那好搞了,不幸的是这个APP是flutter做的,用的dart,目前市面上尚无这个语言的decompiler

GhostLee commented 5 years ago

用一个废旧手机部署上,运行在内网就行。只是每天都要充电就不是很方便。另外这个公司三次APP开发换了两个框架,像是临时搭起来的队伍的感觉…

hephyr commented 5 years ago

进一步测试发现签到功能仍然可以使用

kuiv587 commented 5 years ago

进一步测试发现签到功能仍然可以使用

需要内网吗?

hafrans commented 5 years ago

进一步测试发现签到功能仍然可以使用

需要内网吗?

不需要。

hephyr commented 5 years ago

目前来看项目已经恢复到和以前一样可用的状态了。

kuiv587 commented 5 years ago

感谢各位大佬的努力🙏,小弟发现在服务器端运行会出现“由于连接方在一段时间没有正确答复或连接”,是因为服务器的设置原因吗

hephyr commented 5 years ago

感谢各位大佬的努力🙏,小弟发现在服务器端运行会出现“由于连接方在一段时间没有正确答复或连接”,是因为服务器的设置原因吗

另开 issue,具体操作描述详细点。

GhostLee commented 5 years ago

失效了

GhostLee commented 5 years ago

有思路请到电报里讨论,hmac生成出来的是64位hex(截断个锤子 sha256生成出来能不是64位的嘛),应届考生求你们不要再大大方方的公布了好嘛???

woqkjda commented 5 years ago

你倒是给个tg的群连接啊

GhostLee commented 5 years ago

https://t.me/joinchat/NV8bIhYKeF1BnOE6VUfNhQ

hafrans commented 5 years ago

签到的FF挂了。

Optimusruan commented 5 years ago

抓包抓出来的也也没有用,利用包数据进行在次请求也是invalid request,核心问题就是要知道签名的生成逻辑是什么

kaiyuner commented 5 years ago

老哥,电报群再发一下,不存在了咋

GhostLee commented 5 years ago

https://t.me/joinchat/NV8bIhYKeF2Zdz5jxP26wQ