0.前言
逆向PU校园口袋,逆向用时半天,写文章花了一天。
简单的抓包获取分析api而已。而且这个软件很草台,还是php写的。
相对比较考验对前后端分离软件架构的基本知识。
动机:广告太多,多社团报名,根本来不及签到。
最终网页二维码结果生成展示 (点击展开)
天天用这个软件,应该能看出一些端倪吧😋。用你尖利的眼神去找他的一些细节🤖
也算是运气好。
刚好发现:在PU中 “我的”-"学时"那里是H5页面嵌套。不然就要逆向apk了(更加复杂一些)
H5可比APP要逆向多了。(app可能还有加固什么的)

那么就很简单了,主要思路:直接抓包获取用户信息,去请求二维码接口就行。
1.抓包,获取相关API
为了图方便我直接在实体机(已root)直接抓包。
抓包,就是监听网络数据请求的数据包。L6层(比winshark4层好一些)。
一般用小黄鸟/reqable。伪造系统证书,做全局V**。探测解析SSL包内容数据。

为了方便演示我就用 近几年比较流行的Reqable 了 ,与还能电脑相互连接,就能直接在电脑上面大屏幕显示。
1.对接好后开启抓包后,打开PU校园,可指定页面(能导致那个H5页面刷新获取数据就行)
2.获取到对应数据包列表。很多很乱,主要的都是聚合广告的api。
3.去掉多余的api接口
因为我们已经知道是H5,所以直接保留类似H5资源的相关内容
清理后得到如下

可以看到mobile/apis二级域名,资源后缀是随机内容一猜就是现代化(vue/react)。
大概是mobile前端资源内容。apis就是api接口了。
很经典的前后端分离项目。(用Wappalyer浏览器插件查看)

直接把资源文件API工具里面去
(保持参数一致,不然可能会重定向/屏蔽浏览器用户UA)比如经典的(请在微信中打开就是检测UA实现的)


请求后渲染得到白屏。(看来并不能直接访问)
直接访问对应数据(看起来是一个内部页面)(其中就有二维码页面)


直接丢到API工具里面 发现API工具不支持哈希接口
查询后可知 用 %23 换成 # 就行

设置好参数。请求,发现,依旧不行。
那没办法了,继续找api吧。。。。。
一个一个去找咯。。。。
最终,发现api是靠authorization来验证的。
让API工具模拟请求一下。 (发现请求api成功,那么明确了,就一个authorization就能获验证取信息数据了)
不知道这个校验值的过期时间
那么API工具没办法模拟设置请求头/设备Cookie/Storage/session,该怎么办呢。
2.浏览器工具模拟请求头
网上搜一下,说使用 浏览器插件即可 header cookie qrCode caseRecording httpblock

1.设置浏览器请求头,成功显示二维码界面(我就设置了一个就正常显示了。。。这是不对 伏笔)

2.找二维码生成的代码。
很明显Vue的前后端架构,更好找了。
Ctrl+F 在 网路接口搜索。关键字“二维码 生成 / 限时 / 刷新 / 地址”等关键字。
找到对应代码文件。一眼看到加密密钥{长得猎奇一点就行}。
直接在浏览器开发者工具找对应js资源文件。直接打断点,实时运行获取js变量数据。

刷新,设置好请求头 , 很明确了 g() 就是加密函数 (可以看到这里变量:l是空对象Object肯定有问题)

发现就算简单的 DES ECB pkcs7 再看看返回类型,很想base64。直接手动加密。


至少我们知道思路了,把移动端正常的二维码,同样的思路解密。
很简单了直接拼接+加密=》二维码就行

$c $u 都是用户的信息,分别是id,username 都是固定值

那么直接用户信息数据一个api就能获取了。而且一次获取永久有效。。。。。。
太简单了。
最难蹦的是vue页面的$.value获取值都没加的低级bug
app主页生成二维码和h5里面二维码是不一样的,难蹦。
为了方便不要每次都抓包,就直接抓登录接口了。。。。。。
3.抓登录接口
然后抓取登录页面。获取用户的id和username。
对应层次是 $.data.baseUserInfo.id
$.data.baseUserInfo.username
$.data.baseUserInfo.nickname

4.获取到所有数据后,直接ai写在线网页就行。


ai生成页面有bug,那么就多生成几次,这样就得到

这样签到管理员就能直接远程签到了。
抓到的一些的API,其他的自己抓。
ai生成的pu自动二维码的php网站的源码
下载
这个老壁灯软件广告那么多


评论