记一次半途而弃的天翼校园网登陆分析

前言

最近有点摸鱼(穷),然后盯上了基友弃用下来的校园网账户,看看能不能整点活(狗头

由于最终并没有达成最初的目的(反编译出加密流程并整个第三方客户端),因此这里仅仅用于记录下过程和思路。(等待以后无聊时想起来还有这玩意的时候填坑)

一种正统解法

根据对其客户端文件的粗略浏览可以知道,PC 端用的是魔改拨号,而手机用的则是网页认证(虽然用户摸不到就是了)

抓包

因为不想在 PC 端安装天翼的流氓客户端,因此这里用的是官方提供的 Android 版客户端。

抓包过程,略

分析

通过对抓到的网络请求进行分析,可以发现下面几个接口

这些接口均限制内网访问,公网无法访问

获取公告

请求方式:POST

API:/announcement.do

参数:method=json

返回:

1
[忘记保存了]

检查客户端合法性

请求方式:POST

API:/client/queryannouncement

参数:

1
2
3
4
5
{
"schoolid":"0000",//学校 ID
"authenticator":"2197BF13B3AFC06977EB8AF40D82C0F9",//应该是某个动态校验值?
"timestamp":"1603560481546"//当时时间
}

返回

1
2
3
4
5
{
"content":[],
"rescode":"0",//合法客户端返回 0,非法客户端貌似会返回其他值
"resinfo":"success"
}

获取登录接口

请求方式:GET

API:/index.cgi

参数:

1
2
3
wlanuserip=[你获取到的IP]
wlanacip=[网关地址?]
portal_node=[portal认证地址]

返回

这里返回的是一串明文 text/html,太长了我就不贴了。

由于还有好多作业没写,也没啥兴趣继续分析下去了(其实是番剧更新了)。所以大概就到这好了(欸嘿

和一种另类的解法

从上面的登录接口中不难发现,系统用于认证的只有用户 IP 地址和所处网关 IP 地址,也没有发现存在心跳包等更加麻烦的东西(这个在 PC 端应该存在)。因此我们可以绕过反编译客户端等麻烦的步骤,直接让校园网支持路由器上网。

双路由器法

双路由器法顾名思义,是使用了两个路由器来完成登录流程的方法。

需要准备的东西:

  1. 路由器 A
  2. 路由器 B
  3. 手机 C
  4. 手机 C 的 MAC 地址(或分配到的 IP 地址)

他们的连接如下图所示

image-20201025150011556

一些细节:

  1. 路由器 B 的 WAN 口 MAC 地址修改为手机的 WiFi MAC 地址。
  2. 校园网 LAN 口连接路由器 A 的 LAN 口。
  3. 路由器 A 的 LAN 口与路由器 B 的 WAN 口相连。
  4. 其他上网设备均和路由器 B 连接,路由器 A 仅作为交换机使用。
  5. 手机 C 在登录完成后便可断开与路由器 A 的 WiFi 连接,不影响。

单路由器法

双路由器法虽然又好又稳,但终究需要俩路由器,学生党一般没这闲钱买多一个(吧)。单路由器法和双路由器法原理一致,只不过是让一台路由器又做交换机又做路由器罢了。

需要准备的东西:

  1. 路由器 A
  2. 手机 C
  3. 手机 C 的 MAC 地址(或分配到的 IP 地址)

(图片看上面的就好了,一样的。)

连接步骤:

  1. 先修改路由器 A 的 WAN 口 MAC 地址为手机 C 的 MAC 地址。
  2. 校园网 LAN 口连接路由器 A 的 LAN 口。
  3. 手机 C 连接路由器 A 的 WiFi 完成登录。
  4. 校园网 LAN 口连接路由器 A 的 WAN 口。(这个步骤可能需要把路由器断电重启)

总结

今天又是摸鱼的一天呢(实则在头疼实验报告)