Nday漏洞组合拳修改全校师生密码
很久以前写的文章了,发一下:)
本文是我真实的挖洞经历。撰写本文时相关学校已修复漏洞,相关漏洞也提交给了教育漏洞平台。纯粹是挖洞经验的总结和技术分享,由于敏感信息比较多,所以文章里面很多图片已经面目全非了,望理解。。
平时不怎么挖漏洞,前几周的某一个周末,为了兑换教育漏洞平台上的某学校的证书,对该学校官网进行测试,看能否发现漏洞。

登录界面超好看。
看到左下角有一个信息门户帮助手册(下载),我们下载来先看看。

这里我们可以看到有的情况是可以使用工号和学号进行登录了,所以我们有必要花一些时间用学号和工号作为密码测试能否登录。
为了省事我们可以直接看学校的信息公开位置或者谷歌语法一波(Google hack),有的学校因为没有安全意识,会将学生和老师的一些隐私信息放在信息公开网上,比如说奖学金获得者的学号信息这种,这就让我们有了可趁之机。
这里我们找到了一个老师的工号/工号 登录成功,涉及隐私信息的地方我就打码了。

在这个位置我们先看看信息门户网有漏洞不。

可以看到该大学信息门户网的系统使用的是金智教育2010版本的,嗷,这么老的版本,肯定以前是爆出来过漏洞的,继续使用谷歌大法。

大概看了一下,有两个漏洞引起了我的注意,漏洞链接如下:
https://shuimugan.com/bug/view?bug_no=87297
https://shuimugan.com/bug/view?bug_no=84779
接下来的渗透也借鉴了第一个漏洞作者的思路。
第一个漏洞简单来说,在登陆了老版本金智教育的系统之后,我们直接访问http://ip/authorizeUsers.portal?limit=20,可以返回一个json格式的数据,包含教职工的姓名和工号等信息。
这里我们检测一下该大学的信息门户有没有这个漏洞,回车出json。

这里由于我们limit后面设置的数字是20,所以返回了20条数据,同理,我们只要改变limit后面的数字,就可以增加获取到的教职工数据。
第二个漏洞是修改密码,我们访问该大学的修改密码的界面。

可以看出来,虽然说是可以通过两种方式新设密码,但是由于回答问题修改密码的途径之前爆出过漏洞(也就是上面的第二个链接),所以该大学网站的管理员已经删除了通过回答密保问题修改密码的途径。
我们通过查看用户信息的时候,发现用户在注册的时候也没有填写密保问题,可以看出来在这里这个漏洞是无法利用的了。
这时候换一个思路,虽然该大学将这个漏洞补上了,那应该会有大学没有补这个修改密码的漏洞,说干就干,还是谷歌大法,查找使用了这个系统的学校。

我们在找到时候其实就可以发现有的学校的网站已经因为这个系统被挂马变成了澳门赌场了。。。
接着我们挨个测试即可,果然找到了一个粗心的管理员。
访问http://ip/userAttributesView.portal?userId=portal

可以看到管理员设置的自己账户的密保问题的答案。
这里portal是门户管理员的意思,即管理员所对应的ID,如果不正确的话我们可以多试几次,像amAdmin这些,表示网站管理员没有修改自己的默认ID。
紧接着我们到修改密码的界面,修改的账号就是portal

我们在这里输入之前看到的管理员的密保问题答案即可,正确之后进入下一步。

这里的学校也填写刚才的看到的答案。
最后来到直接输入新密码界面

ok,可以看到我们已经可以直接重置管理员的密码了,这里对该学校的测试就到此为止,因为我们是未授权访问,网站管理员的权限可以随意修改学生成绩,并且查看全校师生的隐私信息,可以知道危害极大。
当然我们并不想止步于此,在这里我想到之前那个大学信息门户网有的那个遍历全部师生学号/工号的漏洞,我们只能修改管理员的原因主要是因为管理员账户是网站的关键,还有另外一个原因就是因为我们只知道管理员的id。如果我们知道了所有师生的ID,那么我们是否可以修改全校所有人的信息门户的密码呢?
当然也是想到就做。
只要登录过学校信息门户网的小伙伴应该都知道,登录id实际上就是教师的工号,学生的学号,所以在这里如果我们获得了一个学生的学号,先修改他的密码,利用其登录的cookie,遍历所有人的信息。
于是现在问题变成了如何找到一个登录过校园信息门户网的学号。
借鉴乌云大神的思路,在该学校的百度贴吧里面寻找学号的信息,出乎意料的是,啥也没找到,

很多都是一些兼职,还有快要毕业的PS学姐(懂的都懂)发布的消息,搜索的三十分钟之后我就放弃了。
第二个方法就是谷歌语法,直接 学校名称 学号 intype:xls,就可以找到很多的有学生学号的表格,这种信息大部分都是公开的,我们也可以利用里面的学号实现攻击。
但这里我换了一个思路,百度贴吧找不到,那我们可以用另外的社交工具,比如:QQ
所以在QQ里面直接搜索 学校名称表白墙,盲猜在学校的表白墙上面会有人发布捡到学生卡的信息,到时候借用一下该同学的学号。
果然这条思路也是可行的:

我们利用这位同学的学号进入信息门户网。
修改密码的过程之前讲过一次,这里就不再赘述,毫无悬念的改好密码之后登陆成功。

接着我们尝试读取学校学校师生的ID值,也是用跟之前的那个大学信息门户网相同的方法,读取成功。(随便截了一些图)

嗷,我们通过修改limit后的数值就可以获取到更多的ID值,配合修改已知ID的账户密码漏洞,我们就可以修改学校内任意一个同学信息门户网的密码然后进行登录了,学生和老师的隐私也荡然无存了。
总结一下:
1,搜索引擎很重要,善于学会使用搜索引擎
2,信息搜集并不全是子域名搜集,敏感目录爆破这些,可以换很多种思路,比如QQ群,公司的github等等。
3,遇到问题的时候不要急躁,多反向思考,以及参考前人的意见,很可能你的问题以前的大神已经解决了,谦虚学习。
4,管理自己网站的时候要经常跟着版本更新和及时打补丁,不然很容易会被Nday漏洞打穿
一起加油吧
Nday漏洞组合拳修改全校师生密码的更多相关文章
- MySQL修改root账号密码
MySQL数据库中如何修改root用户的密码呢?下面总结了修改root用户密码的一些方法 1: 使用set password语句修改 mysql> select user(); +----- ...
- mac 安装mysql + 修改root用户密码 + 及报Access denied for user 'root'@'localhost' (using password:YES)解决办法
1.下载MySQL 到mysql的官网http://dev.mysql.com/downloads/mysql/然后在页面中会看到“MySQL Community Server”下方有一个“downl ...
- xampp修改mysql默认密码详解
在这里介绍xampp修改mysql默认密码的大概过程是先利用xampp的phpmyadmin进入修改mysql密码,修改之后我们再修改xampp中phpmyadmin的密码,这样就完整的修改mysql ...
- 修改linux用户密码
对于初学者来说,如何修改linux用户密码也不是件容易的事,其实非常简单,下面举例说明: 如果是以root身份登录,修改root密码.只要输入 passwd 就会出现: New password: ...
- 如何修改Oracle用户密码
大家如果不知道oracle数据库的密码的话,我们可以通过简单的命令行把密码进行修改. 1.打开cmd 2 在弹出的命令提示窗口输入 set oracle_sid=数据库名称(实例),回车.例如数据库名 ...
- 用phpMyAdmin修改mysql数据库密码
1初始数据库密码为空. 2第一步,点击phpMyAdmin里的用户选项. 3选择root localhost用户名,点击编辑权限. 4此时会出来修改权限的页面,里面可以设置的选项还是比较多的,暂时不管 ...
- MySQL忘记了密码登录不进去,用命令符修改新的密码重新登录的方法
MySQL忘记了密码登录不进去,用命令符修改新的密码重新登录的方法: 1.备份my.ini 2.在my.ini字段里 [mysqld] #socket=mysql skip-grant-tables ...
- Myeclipse SVN 修改用户名和密码
转自:http://blog.csdn.net/chow__zh/article/details/7731497 解决方案: 在Eclipse使用SVN的过程中大多数人往往习惯把访问SVN的用户名密码 ...
- 不重启修改mysql root密码
不重启修改mysql root密码 --------------------2014/09/28 一.一般忘记密码的解决办法,需要重启Mysql1.skip-grant-tables我们常用的方法是使 ...
随机推荐
- 依赖注入DI(IOC)容器快速入门
1.什么是IOC IOC是一种设计模式,全程控制翻转或叫依赖注入.更详细介绍见http://martinfowler.com/articles/injection.html 2.为什么用IOC 我们通 ...
- 使用Graph API 操作OneDrive 文件 权限 共享
(Get)列出默认驱动器下(获取items id) /me/drive/root/children 如果想找其他驱动器使用/Drives 列出后可以查看到驱动器下的文件,其中items id就是文件的 ...
- CEF避坑指南(一)——编译并自制浏览器
CEF即Chromium Embedded Framework,Chrome浏览器嵌入式框架.我们可以从自制浏览器入手,深入学习它.它提供了接口供程序员们把Chrome放到自己的程序中.许多大型公司, ...
- 浮动布局问题多,还是用inline-block吧
说说知识陈旧的问题. 目前我的前端开发知识积累最大的问题就是版本问题,也许我已经经历了很多,尝试了很多, 但是有些知识的版本已经过时了,而我还没有来得及更新它们.更悲剧的可能是有些部分我还没有意识到. ...
- 强迫自己学Jquery
Jquery 适合我吗? 里面有很多用不上的功能, 我需要什么,常用的判断,常用的扩展,来自Dojo的Hitch函数,事件绑定,样式处理(添加 删除 替换),Ajax,模块加载, 足够了,真心不想用这 ...
- binary hacks读数笔记(堆、栈 VMA的分布)
一.首先看一个简单的程序: #include<stdlib.h> int main() { while(1) { sleep(1000); } return 0; } gcc -stati ...
- rbd-mirror配置指南-单向备份
前言 RBD 的 mirroring 功能将在Jewel中实现的,这个Jewel版本已经发布了很久了,这个功能已经在这个发布的版本中实现了,本来之前写过一篇文章,但是有几个朋友根据文档配置后,发现还是 ...
- 精尽MyBatis源码分析 - MyBatis初始化(二)之加载Mapper接口与XML映射文件
该系列文档是本人在学习 Mybatis 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释(Mybatis源码分析 GitHub 地址.Mybatis-Spring 源码分析 GitHub ...
- Blazor入手教程(一)前言
Blazor入手教程(一)前言 结论 最近在学习blazor.得出了这么一个结论: Blazor是一门很值得学习的技术,未来.net下将会有相当多的 web应用使用blazor开发.十分看好这一技术, ...
- Win10 安装MySQL 5.7.32(解压版)
Win10 安装MySQL 5.7.32(解压版) MySQL 5.7.32 下载 官网下载(速度慢,不推荐使用):https://dev.mysql.com/downloads/mysql/ 清华镜 ...