【渗透日记】半沉浸式用案例详解EDU的漏洞挖掘过程和技巧(1)

发布于 12 天前  220 次阅读


使用的软件:

  1. BurpSuite

使用的编程语言

  • ASP.NET

前言

在EDU的漏洞挖掘过程中,绝大部分资产都是关联的SSO登录或需要账密才能进入的,在我刚开始挖掘EDU的时候面对这种情况也算是束手无策,相信大部分刚刚开始学习渗透测试的萌新也可能面临相同的问题。本篇文章结合我这将近一年来的EDU挖掘经验,用一个案例来阐述在EDU漏洞挖掘中的其中一个思路方法。注意,本篇文章仅在渗透测试的过程中提供一种可行的思路,有其他看法欢迎讨论,本人也是萌新之一,有任何问题也欢迎指正。

文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!


1.信息收集

在渗透测试过程中,信息收集的作用相信不用我再过多赘述。在EDUSRC中个人认为信息收集的作用尤为重要,例如在EDU漏洞挖掘过程中,绝大部分资产都关联SSO登录或需要其他账密才能登录进入,但绝大部分的EDU站点都会存在默认密码,通常为学校简写字母+身份证后六位或就是单纯的身份证后六位,此时如果能收集到诸如学号或身份证信息,也就能通过默认密码登录系统。

在初步信息收集中,我个人习惯使用google语法来进行早期的信息收集

Google常用语法如下所示

需要注意一下,当关键词后的参数带有双引号时使用强制搜索,例如intext:"学号",这个表示网页中必须包含“学号”二字。并且搜索关键字是可以同时使用的,例如site:****.edu.cn intext:学号,这个就表示指定域名****.edu.cn的网页中需要包含“学号”的网页。活学活用,当然也可以搜索intext关键词“身份证”,也可以使用filetype指定pdf或excel格式来过滤信息,如下图所示。

大部分都是脱敏之后公布的信息,当然如果运气好的碰到为脱敏信息也不是不可能。

ok,了解了这个之后来看案例

如果在对目标站点进行信息收集的过程中没有收集到想要的诸如学号身份证等关键信息,也可以尝试搜索关键字“公示”,一些公示文件或页面也同样会存在身份证或学号信息,但是以图片形式存在所以无法通过关键词搜索获得。

但是依然存在大量的脱敏信息,此处可以分析一下。如果是未脱敏信息,可以直接交一个敏感信息泄露1分如果是脱敏信息,但是后六位信息未隐匿,可以尝试使用后六位对学校网站进行登录尝试,当然还需要知道对应的学号。

当然还有一种情况就是寻找是否存在诸如“账号找回”之类的功能点,找这个功能点有什么用处呢?首先如果泄露的信息不包含学号或账号信息,可以通过账号找回确定账号或学号从而登录系统。其次可以通过账号找回功能爆破出隐匿的身份证信息。如获得上述的脱敏身份信息之后,尝试寻找是否存在账号找回的功能点。

很幸运,该学校的学工系统存在一个找回功能,并且是通过身份证号进行找回的。另外在登录页也获取了另外一个关键信息,就是初始密码为身份证后六位+@Edu

接下来就是对这个接口进行爆破,就可以拿到完整的身份信息了。另外找到功能点之后还需要判断其是否存在验证码,如果存在验证码,还需要判断验证码是否存在复用或者返回包返回包显示验证码信息等漏洞。此处功能点不存在验证码,可以直接开始爆破,上述脱敏的身份证信息中隐匿了中间的出身年月日信息,针对出生年月日生成一个对应的字典,就可以用这个字典进行爆破了。

抓个包,爆破中间的年月日八位即可,这里以周同学为例

当中间八位为2001****时,返回包存在用户信息,并且确认学号为191507025,合并一下身份证即可拿到完整的身份证信息。此处可提交一个敏感信息泄露 +1分

我们已经拿到了学号、已知默认密码是身份证后六位+@Edu相当于已经拿到默认密码,接下来就是尝试登录,看进入系统能否拿到其他漏洞。

2.越权敏感信息泄露

在系统中发现一个贫困生申请的功能点,此处在新建认定时会自动获取本账号的基础信息

一般遇到这种类似自动读取用户信息的位置,可以爪一个包,观察发包是否存在类似“userid”、“id”等字样的参数,如果有可以尝试更改userid或相关参数的值,看能否实现平行越权

例如此处位置存在参数subjectId,这个就纯经验判断了,当然也可以获取一下这个包的返回包查看是否包含敏感信息,如果包含即可修改参数后查看是否能够查询别的用户信息

此处观察返回包信息,即上述自动获取的用户信息

尝试修改subjectId的值,即可越权获取其他用户的个人信息,此处将subjectId更改为999可以看到已经不是当前登录用户的信息了

经过尝试,此处可修改subjectId的值获取70107条个人敏感信息

此处可以尝试一下能否获取到权限用户的敏感信息,比如老师或管理员的信息,如果能获取到老师或者管理员的信息,就有可能可以登录老师或者管理员账号扩大危害

可以尝试将subjectId更改为一个较小的值,因为往往id这种东西会按照先后顺序排序,管理员有可能是是0或是1之类的

在此处找到一个subjectId为2的信息中心的老师用户,通过获取的身份证,尝试登录,发现使用的依然也是默认密码,成功登录

登录成功后通过教务系统又可以获取大量敏感信息

因为是教师用户,所以可以查看所有贫困生申请信息,抓一下包,尝试使用学生用户登录的cookie用学生用户调用该接口获取所有贫困生信息,发现完全可以,此处又是一个垂直越权。另外此处也与上述类似,可以通过修改参数遍历4837条贫困生申请信息,不过此处是无id的传参形式类似mvc架构。

这套越权+敏感信息,edusrc给了9分高危。

3.逻辑漏洞任意用户手机换绑、密码修改

进入该系统安全中心

存在解绑手机、邮箱的功能点。点击解绑邮箱或手机观察一下发包形式,发包中存在参数phonenumber,这个位置js构造的信息是将该用户的手机号带入phonenumber参数,可以尝试更改phonenumber参数的值为我们自己的手机号,看能否将短信发到自己的手机上接受验证码

修改为自己的手机号后果然可以收到验证码,此处邮箱同理。

换绑之后即可修改密码。

本次测试提交了6个漏洞,此处值列举了三项漏洞点,还有很多都大同小异。