这次分享的漏洞主要来自之前的EDUSRC和企业SRC挖掘经历,所有漏洞均已被修复。同时,我也会分享几个近期的有意思的众测案例。最近参与的几次众测收获尚可,但由于漏洞尚未修复,赏金也未发放,所以暂时不做详细分享。
我观察到很多师傅分享的企业SRC漏洞,其实技术点未必非常高级,却能获得可观的赏金。这很大程度上得益于他们对细节的极致追求和勤奋的测试态度。许多我们容易忽略的边角,他们都会逐一验证。此外,在EDUSRC方面,近期也有不少师傅提交了影响范围广泛的通杀漏洞,例如SQL注入、接口未授权、鉴权绕过以及敏感信息泄露接口等。

有意思的众测案例
以下分享的众测案例中漏洞均已修复。这两个漏洞都被评定为高危(在众测环境中评级较高)。漏洞本身并不复杂,核心思路是我之前常分享的挖掘微信小程序漏洞的手法——寻找sessionkey泄露并进行数据包分析。但这次的情况并非一目了然,如果不够细心,很容易错过。
该众测目标主要涉及酒店、旅游等服务行业。这类资产的App和微信小程序通常功能丰富,功能点多意味着潜在的测试点也多。本次测试直接从微信小程序入手。

小程序中非常常见的“手机号一键登录”功能,是sessionkey等三要素泄露、进而导致伪造用户信息未授权登录漏洞的高发区。

这个目标小程序也不例外,存在此类信息泄露。

通过解密抓取到的数据,获得了一个182开头的手机号明文信息。

按照常规思路,将解密出的手机号改为我自己其他号码(例如166开头),重新加密,然后退出当前182账号,在“一键登录”时抓包,替换请求中的加密字段。然而,直接放行数据包后登录失败了。推测可能已有其他测试人员提交过类似漏洞,后端增加了校验机制。
峰回路转的是,在重新测试并查看返回包时,发现响应中明文返回了以下两个参数,这通常意味着存在逻辑漏洞的可能。
{"phoneNumber":"xxxxxxxxx",
"purePhoneNumber":"xxxxxxxxxx"}

随后,我尝试直接修改登录接口返回包中的这两个参数,将其值改为我166开头的手机号,然后放行。这次成功实现了登录。


EDUSRC案例分享
一、接口未授权访问
这个漏洞是通过分析JS文件发现的一个接口(目前已修复)。该接口在未授权的情况下,可通过遍历学号获取学生的详细学籍信息。

接口格式如下:
xxxxxx/xxxxx/Student/RecommendationForm.aspx?Xsxh=学号

由于能够轻易从网上找到相关奖学金名单(包含学号),利用此接口即可批量获取敏感信息,这在EDUSRC中通常被判定为高危漏洞。

二、SQL注入漏洞
该漏洞存在于网站的一个搜索功能处。

在搜索框中输入 1',页面报错并暴露出绝对路径,初步判断为POST型注入。随后使用Burp Suite抓取搜索请求数据包,并保存为TXT文件供后续工具使用。

使用 sqlmap 对保存的请求数据进行注入测试,成功获取数据库名、表名等信息。

最终从数据库中获取了管理员 admin 的账号密码,并成功登录后台管理系统。

总结
本文分享了几个来自众测和EDUSRC的实战漏洞案例,虽然数量不多,但其中涉及的细节值得关注。个人感觉,挖掘企业SRC(包括众测)与EDUSRC存在一些区别。例如,对于“敏感信息泄露”的界定,两者的标准可能不同,EDUSRC通常对此类涉及学生个人信息的漏洞评级更高。
希望以上分享的渗透测试案例和安全漏洞挖掘思路能对大家有所启发。无论是企业SRC还是教育行业SRC,细致的观察和持之以恒的测试都是成功的关键。最后,祝愿各位师傅在云栈社区的交流与学习中获得更多灵感,挖到更多漏洞,收获更多赏金!