最近一直在研究edu漏洞的挖掘思路,首先很多人经常问到的问题就是为啥我感觉收集起来的资产真的很少,首先我们在挖掘一类漏洞的时候我们需要了解清楚当中的业务逻辑,每个业务可能存在一些功能上的特点,挖掘漏洞的思路也不一致。总体来说就是多动手,在实践中寻找真理
。
需要了解一般的常用的漏洞,如:sql注入,逻辑越权,文件上传,和fofa等黑暗搜索引擎语法的使用,但在edusrc的挖掘通常来说越权
和未授权
,api接口调用
构造会极大可能出现安全问题。但是一般来说可能很多师傅在挖掘漏洞的时候很多时候都想往着getshell,命令执行这些大洞方向去挖掘,然后空坐一天,一个洞都没出,导致信心下降,甚至放弃。
1. 直接获取重要服务器(客户端)权限的漏洞。包括但不限于远程任意命令执行、上传 webshell、可利用远程缓冲区溢出、可利用的 ActiveX 堆栈溢出、可利用浏览器 use after free 漏洞、可利用远程内核代码执行漏洞以及其它因逻辑问题导致的可利用的远程代码执行漏洞;
2. 直接导致严重的信息泄漏漏洞。包括但不限于重要系统中能获取大量信息的SQL注入漏洞;
3. 能直接获取目标单位核心机密的漏洞;
1. 直接获取普通系统权限的漏洞。包括但不限于远程命令执行、代码执行、上传webshell、缓冲区溢出等;
2. 严重的逻辑设计缺陷和流程缺陷。包括但不限于任意账号密码修改、重要业务配置修改、泄露;
3. 可直接批量盗取用户身份权限的漏洞。包括但不限于普通系统的SQL注入、用户订单遍历;
4. 严重的权限绕过类漏洞。包括但不限于绕过认证直接访问管理后台、cookie欺骗。
5. 运维相关的未授权访问漏洞。包括但不限于后台管理员弱口令、服务未授权访问。
1. 需要在一定条件限制下,能获取服务器权限、网站权限与核心数据库数据的操作。包括但不限于交互性代码执行、一定条件下的注入、特定系统版本下的getshell等;
2. 任意文件操作漏洞。包括但不限于任意文件写、删除、下载,敏感文件读取等操作;
3. 水平权限绕过。包括但不限于绕过限制修改用户资料、执行用户操作。
1. 能够获取一些数据,但不属于核心数据的操作;
2. 在条件严苛的环境下能够获取核心数据或者控制核心业务的操作;
3. 需要用户交互才可以触发的漏洞。包括但不限于XSS漏洞、CSRF漏洞、点击劫持;
接着上面内容说起,我们阅读规则,不难发现在漏洞评级的规则当中都离不开敏感信息的泄露
,意思就是我们在挖掘edu的时候不一定将偏重点放在getshell,命令执行这些高危的漏洞上,只要造成了严重的敏感信息泄露在评分的时候也会在中危和高危之间。
在很多师傅的观念里可能资产收集就是收集子域名,IP地址,端口扫描,目录和文件的扫描,js文件等等。但是仅不局限这些,我们接下来一一说来。
首先就是fofa
的使用技巧
因为在挖掘edu不比cnvd
的面那么广,在资产收集的时候可能也有所不同 首先确认目标,这里拿xx.edu.cn来简单举例,这是一个学校的官方网站 我一般将整个域名到fofa里面先进行一次整体的搜索,通过网站的标题来大致了解一下学习开设了哪些网站业务
一般在测试的时候可能我们没有账号,可以通过构造这些语句看看那些业务存在注册功能
host="xx.edu.cn"&&body="注册"
host="xx.edu.cn"&&body="申请"
host="xx.edu.cn"&&body="添加"
host="xx.edu.cn"&&body="申请"
host="xx.edu.cn"&&body="登记"
host="xx.edu.cn"&&body="报名"
host="xx.edu.cn"&&body="招聘"
host="xx.edu.cn"&&body="加入"
host="xx.edu.cn"&&body="入会"
等等,如果能够注册成功,就可以拿到一下基础权限的账号然后继续越权
,逻辑漏洞
测试。
当然也可以这样
通常还有一些比如有一些学习在他的子域名上开设了一下如问卷调查
,xx管理系统
这些我们可以通过js文件
寻找未授权接口
(这里要特别注意springboot),可能有可以利用插件Swagger-UI去进行一些利用,可能有一些接口没对token进行校验,可以去调用接口对用户的信息进行增删改查,文件上传等。
这里留一个插件的下载地址
https://www.crxsoso.com/webstore/detail/liacakmdhalagfjlfdofigfoiocghoej
还有就是web可能被大佬都刷完了,我们可以将目标放在小程序上面,将包转发到burp当中进行测试,一般的小程序功能点简单举例一下
球场预约——>0元购
个人信息查询——>越权(这里简单说一下,有时候可能小程序的个人主页在UI上面只显示了姓名,学号,性别这些信息,如果将这个包发到burp当中可能会有一些意外的收获如身份证,电话等等信息在数据包当中)
修改密码——>前端验证,sql注入,验证码回显
等等
APP端 但是这里大多需要账号,在学校一般都有请假,签到,提交作业这些功能也是大致举例
这些地方极有可能出现越权的漏洞在后面的漏洞演示会适当举例
这里使用的语法为
host="xx.edu.cn"&&body="招聘"
发现一个招聘网站,然后注册一个账号,这里抓包对每个参数都进行sql语句的测试
、 最后发现在身份证项存在sql注入
这个系统在后续的测当中又再次发现sql
第二个纯属侥幸,在测试最重要的还是考虑对每个可能对数据库进行交互
的都进行交互都可以进行测试,最后通过测试为root权限打包提交
APP端
在我的点击程序设计入门这门课程,将当前角色切换为助教
随便选择一个作业去批改,数据包如下:
这里需要注意GET的1000参数,将这个参数设置为可控变量进行遍历
这里大致测试了一下可以追溯到2021年同学的学号和姓名
如果遍历出来进行数据查重可以获取到全校同学的真实姓名和学号
然后点击设置,有一个密码设置
功能
然后随意设置一个密码然后进行抓包
然后修改密码进行抓包,通过测试发现修改密码存在sql
最后测试发现也是root权限
打开小程序
,主页下方”实习汇报“功能,点击”添加“,点击下方”汇报给“。
在这个页面发现上方出现了搜索框,在框中随意输入一个已知的教师名,然后抓包看看后面调用的是哪个接口
。
前端测试后发现输入名称搜索没反应,直接通过接口发包也是没有响应包
仔细再回头来观察请求头,经过比对发现,其中有个参数"Token"
是空的,再次抓包小程序其他功能点,发现都存在这个"Token"值。因此推测:此功能还没完善好,开发人员故意设置了请求头Token值为空,从而响应就是空的。
通过其他功能页面抓包得到的Token
,我们手动添加到这里,再次发包,发现成功回显了,通过仔细观察发现回显的数据为json
格式,并且数据中出现了大量的敏感数据例如:证件照、身份证号、手机号、工号等
推测此接口为查询接口,再加上请求包格式为json,所以推测可以直接通过其他的字段查询,直接试试:添加字段:"creator":null
通过返回包发现,已经返回了全校教师的信息,再将limit
参数改为最大,通过更改page
可以实现翻页
某系统post数据包为{"xh":"12345678
"}
我们尝试修改{"xh":"system
"}可返回所有数据
某支付系统
1.首先生成支付订单(将金额改为0),在这里看程序,优先选择余额支付,避免wx支付效验
{"status":"200","data":"生成订单成功"}
2.进行付款
{"status":"201","data":"效验不通过"}
返回包显示 ,可能很多人到这放弃
3.效验
通过观察
{"status":"200","data":"生成订单成功"}
修改为
{"status":"200","data":"支付成功"}
放包发现已经购买成功