今年大一,不小心黑进学校的迎新系统怎么办,急,在线等

admin 2026-02-02 00:37:42 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 大一新生通过目录爆破发现学校迎新系统隐藏路径,利用工号规律爆破登录后,发现三种用户类型权限差异,并确认存在越权修改漏洞。测试中发现系统仅验证LoginStatus登录状态而未校验操作权限,导致可任意修改班主任信息。文章提醒渗透测试前务必备份数据,避免造成不可逆的数据损坏。 综合评分: 85 文章分类: 渗透测试,实战经验,WEB安全,漏洞分析,安全意识


cover_image

今年大一,不小心黑进学校的迎新系统怎么办,急,在线等

原创

隐雾安全 隐雾安全

隐雾安全

2022年10月3日 22:47 北京

前言

cicici 师傅先是找到个普通用户的弱口令,我进去测了一下,找到个越权修改信息的点。其中有一些不容易注意到的点,望大家有所收获。

一切的开始

一切的一切都源自于22届新生的到来…

新生入校后,会有一个迎新系统,在入住宿舍的时候,舍管阿姨会扫系统里的二维码,根据信息分配宿舍

于是乎,我查了查,发现了这个网页

这是专为新生开放的迎新网站,只会在特定时间段开放(别问我怎么知道的,问就是测过…)

可以看到,这里实际上只需要新生的身份证就可以进入系统,可新生的身份证我哪知道呢?

开测!

我先是用 Sheen 师傅推荐给我的火狐插件—— FindSomething 尝试找下接口,结果发现几乎没有裸的接口…

于是乎,我就缴械投降了……

等我转过头去看看 cicici 师傅的进展如何时,发现cicici 师傅已经进去了…虽然权限不高….

我接过手来简单测了下接口,发现好像没啥越权的,都是通过某一串加密的值(感觉应该是是Token)来获取数据的,我决定自己从头测测

一开始我尝试去 FindSomething 中找下有没有cicici 师傅测的那个路径,但是发现找不到…

想了好一会,才想起有个东东没试,就是简单通俗的目录爆破

这里 cicici 师傅教了我一个小技巧:爆破路径的时候是可以保留部分路径再爆破的

像 http://api.xxx.edu.cn/api/getUserInfo 这种URL 是可以考虑保留 /api/ 这个路径去爆破的

此处URL是:http://yx.xxx.edu.cn/xxxxYX/Web/Account/StuLogin

我选择保留 /xxxxYX/ 进行爆破,跑出了一个路径 /phone/ 拼接后访问,发现是空白的URL:http://yx.xxx.edu.cn/xxxxYX/phone

这个时候,我第一反应还是找接口

所幸的是,此时 FindSomething 终于给力了一回

一开始我打算拿去 bp 去跑这些接口看看哪些是能用的

结果一个都没有……

不应该啊???

后来我又跑去看看cicici 师傅之前给我看的那个数据包发现是带着 # 爆破的…

喵喵喵???有点超出我认知了

当我企图用 bp 带上 # 再次尝试爆破接口时发现是 Bad Request…

这个请求包有问题

我觉得应该是 URL 中的 # 这个特殊字符的原因导致的,所以后来我又去查了下 URL 中 # 号的含义

解释:

一般来说,# 是一个锚点的标志位,这样URL 打开之后会将访问者的视线定位在特定位置上,令访问者直接看到网页中间的一段内容。

发现好像没办法直接批量爆,那我只能选看上去有价值的了,测了在裸露的接口中,这个接口引起了我的注意

于是我尝试直接访问一下这个接口

结果出来一个登陆页面,正是cicici 师傅之前拿到弱口令的那个页面

URL:http://yx.xxx.edu.cn/xxxxYX/phone/#/YX/login

这里允许使用工号进行登陆,而我又恰好知道这个学校的工号规律

于是乎使用 bp 的Battering ram (攻城锤) 模块进行爆破,然后出来了一堆登陆成功的账号

其中返回的数据中有个字段吸引了我,UserType 的值为 T ?我翻了翻登陆成功的账号中,UserType   的值只出现了三种分别为 C、T 和 F

接下来就打算尝试下这三种类型的用户会有啥不一样…

登进去之后发现页面很难看,可能是因为没做 Web 适配的原因

这里教大家一个小技巧,可以让手机端的页面在 PC 也能看得舒服

首先,打开 F12,点下如图所示的按钮就可以以手机端的样式来看啦

画面一下子就变得好看了!

此处测的是 UserType 为 T 的用户

发现只有个空空的 “首页”和带着一点点个人信息的 “我的”

继续测测

咦!UserType 为 C 的首页看上去多了很多东西,看来权限应该是比 T 的高一些

接口的话待会再测,先看看 UserType 为 F 的有啥权限

发现 “首页” 依旧很干净,但在 “我的” 中多了一个信息展示

感觉好像这好像是个班主任啊….

F12 看了看请求的接口,证实了我的想法

GetEduPersonInfoByBZR ?

BZR 不就是 班主任的拼音首字母吗??

但可惜的是这里的接口是需要 LoginStatus 的这串加密了的值来获取数据的,我测了测之前 UserType 为 C 暴露出来的接口,发现都是需要这个参数… 这样就不能简单的通过更改参数的值来获取数据了

于是,我打算测测越权

这里面只有 UserType 为 F 的班主任的信息展示中可以直接更改,我就拿了另外一个 UserType 为 F 的账号来尝试越权更改

我擦,直接所有信息被覆盖了??

我靠我靠我靠!!!我忘记给被覆盖信息的那个老师备份了!!无语了…..为什么就直接成功了….

现在这两个老师这个账户的手机号变成一样的了….

由于是必填字段我还没办法通过前端直接删除…

所以我只能通过接口将数据替换为空了…

(PS:大家在测越权修改/删除之前一定要备份啊啊啊啊啊啊!!!)

不过可以知道的是,这个接口应该只校验了更改信息展示的用户是否登录… 而没有校验是否修改的是该用户的操作

不过也很符合它这个参数的名字,LoginStatus….

然后,这个班主任账户好像就没啥好测的了,先去看看 C 权限的账户吧

经过测试发现,好像没啥东东可以整的,看上去满满的菜单实际上也没啥东西…

后来尝试在登录的时候改一下响应包的 UserType 的值,发现 B、S 都是代表学生,但是页面展示的会有很大的不同

但由于我用的是老师的号,所以也没啥信息,不过可以看到里面有个上传头像的点,我试了下好像传不上去… 就这样吧,懒得测了

也不知道这个系统啥时候关…

真想把学校所有班主任的手机号都改成 110 啊

毕竟……新生看到自己班主任的电话是这个,一定会很惊喜吧~


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:隐雾安全 隐雾安全 隐雾安全《今年大一,不小心黑进学校的迎新系统怎么办,急,在线等》

评论:0   参与:  0