今天在群里和沙雕网友唠嗑,正好聊到了网络安全上面。于是打算展示点与网络安全相关的东西给群友们看看。就拿群友的学校开刀试试。
所有漏洞已提交给edu-src。
0x02 信息搜集
首先收集一下子域名,为了方便起见,直接使用在线子域名查询,https://phpinfo.me/domain/
逐个查看,找到了三个具有登录功能的地址。简单测试一下,不能用万能密码进入。这时候发现其中有一个登录地址存在注册功能。
0x03 漏洞挖掘
一、存储型XSS
注册一个账号,进去之后发现可以编辑个人信息
测一下有没有存储型xss
打入xss的payload,保存输入的信息,可以看到成功触发payload,申请项目的时候管理员会查看申请者的个人信息,这时候就可以利用存储型xss来窃取管理员的cookie了
二、逻辑漏洞
一个存储型XSS显然是不够在群里吹水的,在这个平台上面翻来覆去的看看有没有什么漏掉的功能。
这时候突然在burp看到一个数据包
在忘记密码这个功能这里,程序会发送验证码到注册用的手机号上面,于是想把数据包里面的手机号码改成其他手机号。会不会把验证码发到其他手机上?
又去注册了一个测试用的账号,这下就有两个帐号了,两个账号分工一下:
- 目标账号(188xxxxx519)
- 攻击者账号(173xxxxx676)
理一下攻击思路:
- 利用忘记密码的功能,尝试更改目标账号(188xxxxx519)的密码
- 开启burp,点击发送验证码,拦截该数据包。
- 将数据包中的目标账号(188xxxxx519)修改为攻击者账号(173xxxxx676)然后发送数据包
- 原本应该发送给目标账号(188xxxxx519)的验证码信息有可能直接发送到攻击者账号(173xxxxx676)的手机上
- 利用收到的验证码,就可以更改目标账号(188xxxxx519)的用户密码
说干就干,首先输入我们要攻击的目标账号
然后利用burp拦截发送验证码的数据包,将phone处的数据修改为攻击者账号之后发送数据包。
可以看到成功将验证码发送到攻击者手机上,这是个好兆头
等待一会儿,从攻击者手机上收到发送过来的验证码。到这里基本已经成功了
然后利用收到的验证码,去更改目标账户的验证码
利用更改过后的密码尝试登录,可以看到成功登录进去
0x04 后记
我个人用的一个简单的挖掘思路,从收集子域名,到找寻敏感功能点(诸如登录,教务处,项目管理平台,微信小程序),再到测试输入点看看会不会有常见的web漏洞。然后猜测程序背后的逻辑关系来挖掘逻辑漏洞。多想一想如果这个网站是自己写的,可能会在哪里出现逻辑问题。
另外,在edu-src上看到一位前辈的挖掘思路无比牛。他直接想办法寻找网站的源代码。开源的框架就直接官方找,不开源的框架就用fofa查询与目标站点采用相同框架的其他站点,然后看看这些站点里面有没有开发者忘记删掉的备份文件。拿到代码之后,直接审计源代码挖掘0day,然后写POC批量打。